FFmpeg hardware transcoding

Jan Beich jbeich at FreeBSD.org
Wed Feb 20 22:56:59 UTC 2019

<driesm.michiels at gmail.com> writes:

> What is the minimum requirements for being able to utilize quick sync on my
> intel chip for ffmpeg hardware transcoding?

I don't configure my system(s) daily to remember such things. ;)

Quick Sync Video is exposed via MediaSDK (high-level) and libva (low-level).
MediaSDK hasn't been ported yet but media-driver (its backend) has.
FFmpeg and GStreamer support both MediaSDK and libva.

> 1.	DRM module loaded
> 2.	Correct permission for the application on /dev/dri/renderD128
> 3.	FFmpeg build with libva support (VAAPI on)

  4.    Either libva-intel-driver or libva-intel-media-driver

> Are there any more I am missing?

Probably not. Try and report your issues.

> I saw another driver in ports as "multimedia/libva-intel-media-driver"?

Try both. ;) Some examples from https://trac.ffmpeg.org/wiki/Hardware/VAAPI
don't work on iHD e.g., "Burn subtitles into the video while transcoding".

i965 (libva-intel-driver) advantages:
- VP8 encoding on Skylake
- Partial VP8 encoding on Haswell/Broadwell
- Partial VP9 decoding on Haswell/Broadwell/Skylake
- H264 encoding profiles for Multiview and Stereo

iHD (libva-intel-media-driver) advantages:
- Decoding on console framebuffer (e.g, mpv --gpu-context=drm)
- Better encoding performance (even without MediaSDK)
- FEI (Flexible Encoding Infrastructure) for HEVC
- JIT (Just-In-Time) compilation of media kernels (needs intel-graphics-compiler)
- Icelake support (and maybe Xe in future)
- Actively developed upstream

More information about the freebsd-multimedia mailing list