VA-API H.264 Encoder installation guide
This guide details the minimal package requirements to enable hardware-accelerated H.264 encoding via VA-API with DRM display support.
1. PACKAGE REFERENCE TABLE
Identify the driver package required for your specific GPU hardware.
* INTEL USERS: The "Non-Free" packages are highly recommended. They unlock CBR
mode, which is recommended for NoMachine (available in RPMFusion and Packman).
* AMD do not use separate non-free VA-API packages.
* NVIDIA doesn't provide encoding via VA-API.
| DISTRO | VERIFICATION | BASE PACKAGES |
INTEL (Modern /Legacy) |
AMD |
| Debian/Ubuntu | vainfo | libva2 libdrm2 |
Free: intel-media-va-driver/i965-va-driver Non-free: intel-media-va-driver-non-free/i965-va-driver-shaders |
Free: mesa-va-drivers Non-free: standard
|
| Fedora / RHEL | libva-utils |
libva libdrm |
Free: intel-media-driver/libva-intel-driver Non-free: intel-media-driver (requires RPMFusion) |
Free: mesa-va-drivers Non-free: standard |
| Arch Linux | libva-utils | libva libdrm |
Free: intel-media-driver/libva-intel-driver Non-free: Same pkg, check deps |
Free: libva-mesa-driver Non-free: standard |
| OpenSUSE | libva-utils | libva2 libdrm2 |
Free: intel-media-driver/vaapi-intel-driver Non-free: intel-media-driver (requires Packman) |
Free: Mesa-libva-driver Non-free: standard |
2. INSTALLATION COMMANDS
Run the command for your distribution. Replace [DRIVER_PACKAGE] with the
specific package name from the table above.
UBUNTU / DEBIAN / MINT (apt):
sudo apt update && sudo apt install libva2 libdrm2 vainfo [DRIVER_PACKAGE]
FEDORA / RHEL (dnf):
sudo dnf install libva libdrm libva-utils [DRIVER_PACKAGE]
ARCH LINUX (pacman):
sudo pacman -S libva libdrm libva-utils [DRIVER_PACKAGE]
OPENSUSE (zypper):
sudo zypper install libva2 libdrm2 libva-utils [DRIVER_PACKAGE]
3. VERIFICATION
To verify that the H.264 encoder is correctly exposed via the DRM display backend, run:
vainfo --display drm -a
Success criteria:
Look for the output block under VAProfileH264ConstrainedBaseline. You MUST see one of the following encoding entrypoints listed:
* VAProfileH264ConstrainedBaseline/VAEntrypointEncSlice
* VAProfileH264ConstrainedBaseline/VAEntrypointEncSliceLP
NOTE:
If you only see "VAEntrypointVLD", you have decoding support but NO encoding support.
