Windows

Running

VAAPI

DXVA2 / D3D11VA

libmfx

The library has a large number of options to set, the possible valid values of are dependent on the version and hardware. libavcodec attempts to map common options sensibly to the libmfx options, but the mapping is crude and has holes, especially around rate control.

Using an invalid combination is likely to provoke the message: "Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode." Usually this message is accurate, but it can also refer to other issues like the lack of a usable device.

Installing the Media SDK on Linux

Note that the kernel patches and modified system libraries are all required. It is recommended not to install this on any machine also used for other purposes, as it does not use normal distribution mechanisms and may break / be broken by other packages unexpectedly.

Build machine:

Build and install the packaged dispatcher: <​https://github.com/lu-zero/mfx_dispatch>. (It is also possible to extract the necessary files from the Media SDK installation as described in the install manual - this is not recommended, just use the package instead.)

Build ffmpeg with --enable-libmfx.

Target machine:

Ensure the target machine has a supported CPU. Current versions only support gen8/gen9 graphics on expensive CPUs ("Xeon"/"Core i" branding). The same graphics cores on cheaper CPUs ("Pentium"/"Celeron"/"Atom" branding) are explicitly disabled, presumably for commercial reasons.

Run the Media SDK install script to install the proprietary components.

Reboot.

Licence status of i965 VAAPI driver

All of the user source code is available, but it includes proprietary blobs of compiled GPU code. Since the complete human-readable source is not available, this certainly renders it GPL-incompatible and is likely to cause issues with other copyleft licences. Using the libva dynamic-loading shim mostly sidesteps this, and therefore is encouraged.