VA-API
Video Acceleration API is a specification and open source library to provide hardware accelerated video encoding and decoding.
Contents
Supported hardware
Open source drivers:
- AMD Radeon 9500 and newer GPUs are supported by the libva-vdpau-driver package together with the mesa package.
- Intel GMA 4500 series and newer GPUs are supported by the libva-intel-driver package together with the mesa package.
- NVIDIA GeForce 8 series and newer GPUs are supported by the libva-vdpau-driver package together with the mesa package. It uses the nouveau-fwAUR package, which contains the required firmware to operate that is presently extracted from the NVIDIA binary driver.
Proprietary drivers:
- AMD Radeon HD 4000 series and newer GPUs are supported by the libva-xvba-driverAUR package. It uses the catalyst-utilsAUR driver for Radeon HD 5000 series and newer, and catalyst-total-hd234kAUR for Radeon HD 4000 series.
- NVIDIA GeForce 8 series and newer GPUs are supported by the libva-vdpau-driver package together with the nvidia-utils driver.
Supported formats
| Open source | Proprietary | ||||
|---|---|---|---|---|---|
| AMD | Intel | Nvidia | AMD | Nvidia | |
| MPEG2 decoding | Radeon 9500 and newer | GMA 4500 and newer | GeForce 8 and newer | Radeon HD 4000 and newer | GeForce 8 and newer |
| MPEG4 decoding | Radeon HD 6000 and newer | |
GeForce 200 and newer | Radeon HD 6000 and newer | GeForce 200 and newer |
| H264 decoding | Radeon HD 4000 and newer | GMA 45001, Ironlake Graphics and newer | GeForce 8 and newer | Radeon HD 4000 and newer | GeForce 8 and newer |
| VC1 decoding | Radeon HD 4000 and newer | Sandy Bridge Graphics and newer | GeForce 8200, 8300, 8400, 9300, 200 and newer | Radeon HD 4000 and newer | GeForce 8 and newer |
| MPEG2 encoding | |
Ivy Bridge Graphics and newer | |
|
|
| H264 encoding | |
Sandy Bridge Graphics and newer | |
|
|
1Supported by the libva-intel-driver-g45-h264AUR package. See H.264 decoding on GMA 4500 for instructions and caveats.
In order to check what profiles (features) are supported by your GPU, you may want to read the #Verifying section.
Configuration
The driver used by VA-API is autodetected, but sometimes it may be necessary to configure it manually by setting the environment variable LIBVA_DRIVER_NAME, for example:
export LIBVA_DRIVER_NAME=vdpau
Verifying
Verify the settings for VAAPI by running vainfo, which is provided by the libva package:
$ vainfo
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'vdpau'
libva info: Trying to open /usr/lib/dri/vdpau_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.1)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG4Simple : VAEntrypointVLD
VAProfileMPEG4AdvancedSimple : VAEntrypointVLD
VAProfileH264Baseline : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAEntrypointVLD means that your card is capable to decode this format, VAEntrypointEncSlice means that you can encode to this format.
Supported software
- GStreamer based players - VA-API is used automatically, if supported format found.
- See more at http://docs.gstreamer.com/display/GstSDK/Playback+tutorial+8%3A+Hardware-accelerated+video+decoding.
- VLC media player: see VLC media player#Hardware acceleration support.
- Mpv: see Mpv#Hardware Decoding.
- MPlayer: see MPlayer#Enabling VA-API.