FFmpeg is a set of open source tools for audio and video processing, such as creating, converting/transcoding, and publishing media content.
The FFmpeg (n4.4.3) docker images are compiled with the following audio and video codecs:
Codec | Version | Codec | Version |
---|---|---|---|
fdk-acc | 2.0.2 | x265 | 3.4 |
vpx | 1.12.0 | opus | 1.3.1 |
dav1d | 0.9.2 | ogg | 1.3.5 |
SVT-HEVC | v1.5.1 | vorbis | 1.3.7 |
SVT-AV1 | v1.3.0 | x264 | stable |
SVT-VP9* | v0.3.0 |
* SVT-VP9 encoder app only. SVT-VP9 not yet available as a FFmpeg plugin.
The FFmpeg builds included the following patches for feature enhancement, better performance or bug fixes:
Patch | Description |
---|---|
11625 | Enhance 1:N transcoding performance. |
SVT-HEVC | Enable FFmpeg SVT-HEVC plugin |
SVT-AV1 | Enable FFmpeg SVT-AV1 plugin |
In GPU images, the FFmpeg docker images are accelerated through VAAPI
and/or qsv
(Intel® Media SDK). For Flex Series GPUs, oneVPL is used for acceleration. Note that VAAPI
or qsv
requires special setup for X11 authentication. Please see each platform README for setup details.
- Transcode raw yuv420 content to SVT-HEVC and mp4:
ffmpeg -f rawvideo -vcodec rawvideo -s 320x240 -r 30 -pix_fmt yuv420p -i test.yuv -c:v libsvt_hevc -y test.mp4
- 1:N Transcoding:
ffmpeg -i input.h264 -vf "scale=1280:720" -pix_fmt nv12 -f null /dev/null -vf "scale=720:480" -pix_fmt nv12 -f null /dev/null -abr_pipeline
- Encoding/decoding with
VAAPI
:
ffmpeg -y -vaapi_device /dev/dri/renderD128 -f rawvideo -video_size 320x240 -r 30 -i test.yuv -vf 'format=nv12, hwupload' -c:v h264_vaapi -y test.mp4
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -i test.mp4 -f null /dev/null
- Encoding/decoding with
qsv
(Intel Media SDK):
ffmpeg -y -init_hw_device qsv=hw -filter_hw_device hw -f rawvideo -pix_fmt yuv420p -s:v 320x240 -i test.yuv -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -b:v 5M test.mp4
ffmpeg -hwaccel qsv -c:v h264_qsv -i test.mp4 -f null /dev/null