Video Acceleration API
Page Module:Message box/ambox.css has no content.
This article may be too technical for most readers to understand. (November 2021) |
Page Module:Infobox/styles.css has no content.
| libva | |
|---|---|
| [[Programmer|Original authorTemplate:Pluralize from text]] | Intel |
| Initial release | {{#statements:inception}} |
| Written in | {{#statements:programmed in}} |
| Engine | Page Template:Plainlist/styles.css has no content.Template:EditAtWikidata |
| Operating system | Linux, Android, BSD, Windows 10, Windows 11 |
| Type | API |
| License | {{#statements:copyright license}} |
| Website | Script error: No such module "WikidataIB". |
| Repository | Page Template:Plainlist/styles.css has no content.
|
Script error: No such module "Check for conflicting parameters".
Video Acceleration API (VA-API) is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities, usually provided by the graphics processing unit (GPU). It is implemented by the free and open-source library Page Template:Mono/styles.css has no content.libva, combined with a hardware-specific driver, usually provided together with the GPU driver.
VA-API video decode/encode interface is platform and window system independent but is primarily targeted at Direct Rendering Infrastructure (DRI) in X Window System on Unix-like operating systems (including Linux, FreeBSD, Solaris), and Android, however it can potentially also be used with direct framebuffer and graphics sub-systems for video output. Accelerated processing includes support for video decoding, video encoding, subpicture blending, and rendering.[1]
The VA-API specification was originally designed by Intel for its GMA (Graphics Media Accelerator) series of GPU hardware with the specific purpose of eventually replacing the XvMC standard as the default Unix multi-platform equivalent of Microsoft Windows DirectX Video Acceleration (DxVA) API, but today the API is no longer limited to Intel-specific hardware or GPUs.[2] Other hardware and manufacturers can freely use this open standard API for hardware accelerated video processing with their own hardware without paying a royalty fee.[3]
Overview

The main motivation for VA-API is to enable hardware-accelerated video decode at various entry-points (VLD, IDCT, motion compensation, deblocking[4]) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, H.265/HEVC, and VC-1/WMV3). Extending XvMC was considered, but due to its original design for MPEG-2 MotionComp only, it made more sense to design an interface from scratch that can fully expose the video decode capabilities in today's GPUs.[5]
Supported hardware and drivers
As of 2022, VA-API is natively supported by:[6]
- Intel Quick Sync open-source drivers for Linux
- Mesa open-source drivers for AMD and Nvidia graphics cards
- AMDGPU-PRO drivers for AMD graphics cards on Linux
- libva-vdpau-driver for cards supported by VDPAU
- Direct3D 12 implementations with the VAOn12 driver[7]
Supported video codecs
VA-API currently supports these video codecs in the official mainline version, but note that exactly which video codecs are supported depends on the hardware and the driver's capabilities.
- MPEG-2 decode acceleration Main Profile
- VC-1 / WMV3 decode acceleration Advanced Profile
- MPEG-4 Part 2 (H.263) (a.k.a. MPEG-4 SP / MPEG-4 ASP, more commonly known as Xvid) decode acceleration
- H.264 AVC encode acceleration Main Profile
- H.264 AVC decode acceleration High Profile
- H.264 / AVC Hardware Variable Length Decoding (VLD) - CABAC
- H.264 / AVC Hardware Variable Length Decoding (VLD) - CAVLC
- H.264 / AVC Hardware Inverse Transform (IT)
- H.264 / AVC Hardware Motion Compensation (HWMC)
- H.264 / AVC Hardware In-Loop Deblocking (ILDB)
- H.265/HEVC encode acceleration
- H.265/HEVC decode acceleration
- VP9 8-bit encode acceleration[8]
- VP9 8-bit and 10-bit decode acceleration[8]
- AV1 8-bit and 10-bit encode acceleration
- AV1 8-bit and 10-bit decode acceleration[6]
Processes that can be accelerated with VA-API
Video decoding and post-processing processes that can be offloaded and accelerated if both the device drivers and GPU hardware supports them:
- Motion compensation
- Inverse discrete cosine transform
- In-loop deblocking filter
- Intra-frame prediction
- variable-length decoding, more commonly known as slice-level acceleration
- Bitstream processing (Context-adaptive variable-length coding/Context-adaptive binary arithmetic coding)
Software architecture
The current interface is window system independent, so that it can potentially be used with graphics sub-systems other than the DRI (Direct Rendering Infrastructure) in X Window System, such as direct with framebuffer, and it can work with third-party DRM (Direct Rendering Manager) libraries. In a nutshell, it is a scheme to pass various types of data buffers from the application to the GPU for decoding or encoding a compressed bit-stream.
Software supporting VA-API

- Chromium
- Bluecherry DVR client (starting from release 2.2.6)[9]
- datarhei Restreamer[10] real-time live video streaming
- Emby media server (starting from release 3.0.6400)[11]
- ffmpeg, a command line tool from the FFmpeg project (starting from 3.1)[12]
- Firefox (On Wayland since release 78 and on X11 since release 80)[13][14]
- Fluendo[15][16]
- Frigate NVR[17]
- Gnash Flash / SWF player[18]
- GStreamer through Page Template:Mono/styles.css has no content.gstreamer-vaapi[19]
- Helix media player (Linux)[20][21]
- Jellyfin media server[22]
- Kodi (formerly XBMC Media Center) (Linux)[23]
- Kodibuntu (formerly XBMC Live) (Linux Live CD/USB operating-system)[23]
- libavcodec[24]
- MPlayer with custom patches[25] and its fork mpv (native)
- MythTV (starting from release 0.25)[26]
- OBS Studio[27]
- OpenShot[28]
- VLC media player (starting from release 1.1.0)[29]
- Xine (via "xine-lib-vaapi" library) since Version 1.2.3[30]
- Eranol v1.2.0 (via nextjs)[31]
See also
Lua error in mw.title.lua at line 404: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
- Distributed Codec Engine (libdce) — Texas Instruments API for the video codec engine in OMAP based embedded systems
- OpenMAX — a royalty-free cross-platform media abstraction API from the Khronos Group
References
Page Template:Reflist/styles.css has no content.
- ^ Page Module:Citation/CS1/styles.css has no content."VA-API Video Acceleration On Intel Medfield - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."Video4Linux2: Path to a Standardized Video Codec API" (PDF). Events.linuxfoundation.org. Archived from the original (PDF) on 6 January 2014. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content.Nathan Willis (2009-07-01). "VA API slowly, but surely, making progress". Lwn.net.
- ^ Page Module:Citation/CS1/styles.css has no content."Mplayer, FFmpeg Gain VA-API Support - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."vaapi". Freedesktop.org. Retrieved 23 February 2019.
- ^ a b Page Module:Citation/CS1/styles.css has no content."Hardware video acceleration". wiki.ArchLinux.org.
- ^ Page Module:Citation/CS1/styles.css has no content.Vilerino, Sil (2023-02-15). "Video acceleration API (VA-API) now available on Windows!". DirectX Developer Blog. Retrieved 2023-03-08.
- ^ a b Page Module:Citation/CS1/styles.css has no content."Hardware/vaapi". wiki.libav.org. Archived from the original on 2017-02-01. Retrieved 2017-01-20.
- ^ Page Module:Citation/CS1/styles.css has no content."[Client] 2.2.6 Released – Significant CPU usage reductions included". Bluecherrydvr.com. 2 March 2017. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."datarhei Restreamer".
- ^ Page Module:Citation/CS1/styles.css has no content."Emby Server 3.0.6400 Released". Emby.media. 29 August 2016. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."Archived copy". Archived from the original on 2016-09-16. Retrieved 2016-08-31.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ Page Module:Citation/CS1/styles.css has no content."Firefox on Fedora finally gets VA-API on Wayland". mastransky.wordpress.com. 3 June 2020. Retrieved 2020-08-19.
- ^ Page Module:Citation/CS1/styles.css has no content."Firefox 80 Available With VA-API On X11, WebGL Parallel Shader Compile Support". www.phoronix.com. Retrieved 2020-08-25.
- ^ Page Module:Citation/CS1/styles.css has no content."Fluendo".
- ^ Page Module:Citation/CS1/styles.css has no content."Fluendo's New Codecs Support VDPAU, VA-API - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."Hardware Acceleration".
- ^ Page Module:Citation/CS1/styles.css has no content."H.264 VA-API GPU Video Acceleration For Flash - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."Hardware-accelerated video decoding, encoding and processing on Intel graphics through VA-API". Cgit.freedesktop.org. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."Mailing list entry that describes uses of VA-API". Lists.moblin.org. Archived from the original on 30 April 2010. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."RealPlayer for MID & Intel/Linux FAQ". HelixCommunity.org. Archived from the original on 2012-03-24. Retrieved 2011-05-12.
- ^ Page Module:Citation/CS1/styles.css has no content."Intel GPU". jellyfin.org. Retrieved 2024-12-02.
- ^ a b Page Module:Citation/CS1/styles.css has no content."XBMC Gets Working Intel VA-API Support - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."This gist contains instructions on setting up FFmpeg and Libav to use VAAPI-based hardware accelerated encoding (on supported platforms) for H.264 (and H.265 on supported hardware) video formats". Gist. Retrieved 2024-12-02.
- ^ Page Module:Citation/CS1/styles.css has no content."gbeauchesne / mplayer-vaapi". GitHub.
- ^ Page Module:Citation/CS1/styles.css has no content."Release Notes - 0.25 - MythTV Official Wiki". Mythtv.org. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."OBS Studio Now Supports VA-API For Video Encoding - Phoronix". www.phoronix.com. Retrieved 2020-08-06.
- ^ Page Module:Citation/CS1/styles.css has no content."OpenShot Library | libopenshot".
- ^ Page Module:Citation/CS1/styles.css has no content."VLC 1.1.0 release - VideoLAN". Videolan.org. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content."the xine project - News Feed". Xine-project.org. Retrieved 23 February 2019.
- ^ Page Module:Citation/CS1/styles.css has no content.Service, FFmpeg API. "FFmpeg API Service". FFmpeg API Service. Retrieved 2026-02-09.
External links
- Official website
- Intel Media and Audio for Linux
- mobile-hw-decode
- "VA API slowly -- but surely -- making progress" – an overview from 2009
- "MPlayer, FFmpeg Gain VA-API Support" – from 2008
Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found. Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.