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.