VA-API
| Summary |
|---|
| Explains VA-API support in various hardware and software components |
| Related |
| VDPAU |
| XvMC |
Video Acceleration API is a specification and open source library to provide hardware accelerated video decode/encode.
Contents |
Supported hardware
Open source drivers:
- AMD Radeon 9500 and newer GPUs are supported by the libva-vdpau-driver package (available in the official repositories) together with the ati-dri driver.
- Intel GMA 4500 series and newer GPUs are supported by the libva-intel-driver package, available in the official repositories.
- NVIDIA GeForce 400 series and newer GPUs are supported by the libva-vdpau-driver package (available in the official repositories) together with the nouveau-dri driver. It uses the nouveau-fw 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-driver package, available in the AUR. It uses the catalyst-utils driver for Radeon HD 5000 series and newer, and catalyst-legacy-utils for Radeon HD 4000 series.
- NVIDIA GeForce 8 series and newer GPUs are supported by the libva-vdpau-driver package (available in the official repositories) together with the nvidia-utils driver.
Supported formats
| libva-vdpau-driver with ati-dri | libva-intel-driver | libva-vdpau-driver with nouveau-dri | libva-xvba-driver | libva-vdpau-driver with nvidia-utils | |
|---|---|---|---|---|---|
| MPEG2 decoding | AMD Radeon 9500 and newer | Intel GMA 4500 and newer | Nvidia GeForce 400 and newer | AMD Radeon HD 4000 and newer | Nvidia GeForce 8 and newer |
| MPEG4 decoding | AMD Radeon HD 6000 and newer | - | Nvidia GeForce 400 and newer | AMD Radeon HD 6000 and newer | Nvidia GeForce 200 and newer |
| H264 decoding | AMD Radeon HD 4000 and newer | Intel GMA 45001, Ironlake Graphics and newer | Nvidia GeForce 400 and newer | AMD Radeon HD 4000 and newer | Nvidia GeForce 8 and newer |
| VC1 decoding | AMD Radeon HD 4000 and newer | Intel Sandy Bridge Graphics and newer | Nvidia GeForce 400 and newer | AMD Radeon HD 4000 and newer | Nvidia GeForce 8 and newer |
| MPEG2 encoding | - | Intel Sandy Bridge Graphics and newer | - | - | - |
| H264 encoding | - | Intel Sandy Bridge Graphics and newer | - | - | - |
1Supported by the libva-driver-intel-g45-h264 package. See H.264 decoding on GMA 4500 for instructions and caveats.
In order to check what profiles (features) are supported by your GPU, run the following command, which provided by the libva package:
$ vainfo
VAEntrypointVLD means that your card is capable to decode this format, VAEntrypointEncSlice means that you can encode to this format.
Supported software
GStreamer
Install gst-vaapi package, available in the official repositories.
$ gst-launch-1.0 playbin uri=file:///path/to/foobar.mpeg
VA-API is used automatically, if supported format found.
GStreamer based players:
- totem: no configuration needed.
MPlayer
Install mplayer-vaapi package, available in the official repositories.
$ mplayer -vo vaapi -va vaapi foobar.mpeg
- -vo - Select vaapi video output driver
- -va - Select vaapi video decoder driver
MPlayer based players:
- gnome-mplayer: to enable hardware acceleration:
Edit -> Preferences -> Player, then set Video Output to "vaapi". - smplayer: to enable hardware acceleration:
Options -> Preferences -> General -> Video, then set Output driver to "vaapi".
VLC media player
Install vlc package, available in the official repositories.
To enable hardware acceleration: Tools -> Preferences -> Input & Codecs, then check "Use GPU accelerated decoding".