Video Acceleration API (VA-API) is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
application programming interface
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
that allows applications such as
VLC media player
VLC media player (previously the VideoLAN Client) is a free and open-source software, free and open-source, software portability, portable, cross-platform media player software and streaming media Server (computing), server developed by the Vide ...
or
GStreamer
GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
to use hardware video acceleration capabilities, usually provided by the
graphics processing unit
A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
(GPU). It is implemented by the
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
, 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
The Direct Rendering Infrastructure (DRI) is the framework comprising the modern Linux graphics stack which allows unprivileged user-space programs to issue commands to graphics hardware without conflicting with other programs. The main use ...
(DRI) in
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
on
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
-like
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s (including
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
,
Solaris
Solaris is the Latin word for sun.
It may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Sol ...
), and
Android, however it can potentially also be used with direct
framebuffer
A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
and graphics sub-systems for video output. Accelerated processing includes support for
video decoding,
video encoding
In information theory, data compression, source coding, or bit-rate reduction is the process of encoding information using fewer bits than the original representation. Any particular compression is either lossy or lossless. Lossless compression ...
, subpicture blending, and rendering.
The VA-API specification was originally designed by
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
for its
GMA (Graphics Media Accelerator) series of
GPU
A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
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. 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.
Overview

The main motivation for VA-API is to enable hardware-accelerated video decode at various entry-points (
VLD,
IDCT
A discrete cosine transform (DCT) expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. The DCT, first proposed by Nasir Ahmed in 1972, is a widely used transformation technique in ...
,
motion compensation
Motion compensation in computing is an algorithmic technique used to predict a frame in a video given the previous and/or future frames by accounting for motion of the camera and/or objects in the video. It is employed in the encoding of video ...
,
deblocking
A deblocking filter is a video filter applied to decoded compressed video to improve visual quality and prediction performance by smoothing the sharp edges which can form between macroblocks when block coding techniques are used. The filter aim ...
) for the prevailing coding standards today (
MPEG-2
MPEG-2 (a.k.a. H.222/H.262 as was defined by the ITU) is a standard for "the generic coding of moving pictures and associated audio information". It describes a combination of lossy video compression and lossy audio data compression methods ...
,
MPEG-4 ASP/
H.263
H.263 is a video compression standard originally designed as a low-bit-rate compressed format for videotelephony. It was standardized by the ITU-T Video Coding Experts Group (VCEG) in a project ending in 1995/1996. It is a member of the H.26x fa ...
,
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
GPU
A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
s.
Supported hardware and drivers
As of 2022, VA-API is natively supported by:
*
Intel Quick Sync
Intel Quick Sync Video is Intel's brand for its dedicated Video codec, video encoding and decoding hardware Semiconductor intellectual property core, core. Quick Sync was introduced with the Sandy Bridge CPU microarchitecture on 9 January 2011 and ...
open-source drivers for Linux
*
Mesa
A mesa is an isolated, flat-topped elevation, ridge, or hill, bounded from all sides by steep escarpments and standing distinctly above a surrounding plain. Mesas consist of flat-lying soft sedimentary rocks, such as shales, capped by a ...
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
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
* VP9 8-bit and 10-bit decode acceleration
*
AV1
AOMedia Video 1 (AV1) is an open, royalty-free video coding format initially designed for video transmissions over the Internet. It was developed as a successor to VP9 by the Alliance for Open Media (AOMedia), a consortium founded in 2015 tha ...
8-bit and 10-bit encode acceleration
* AV1 8-bit and 10-bit decode acceleration
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
Motion compensation in computing is an algorithmic technique used to predict a frame in a video given the previous and/or future frames by accounting for motion of the camera and/or objects in the video. It is employed in the encoding of video ...
*
Inverse discrete cosine transform
* In-loop
deblocking filter
A deblocking filter is a video filter applied to decoded compressed video to improve visual quality and prediction performance by smoothing the sharp edges which can form between macroblocks when block coding techniques are used. The filter ai ...
* 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
Context-adaptive binary arithmetic coding (CABAC) is a form of entropy encoding used in the H.264/MPEG-4 AVC and High Efficiency Video Coding (HEVC) standards. It is a lossless compression technique, although the video coding standards in which it ...
)
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
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
, such as direct with
framebuffer
A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
, 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
A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
for
decoding or encoding a
compressed bit-stream.
Software supporting VA-API

*
Chromium
Chromium is a chemical element; it has Symbol (chemistry), symbol Cr and atomic number 24. It is the first element in Group 6 element, group 6. It is a steely-grey, Luster (mineralogy), lustrous, hard, and brittle transition metal.
Chromium ...
* Bluecherry DVR client (starting from release 2.2.6)
* datarhei Restreamer real-time live video streaming
*
Emby media server (starting from release 3.0.6400)
* ''ffmpeg'', a command line tool from the
FFmpeg
FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing vide ...
project (starting from 3.1)
*
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
(On Wayland since release 78 and on X11 since release 80)
* Fluendo
* Frigate NVR
*
Gnash Flash /
SWF player
*
GStreamer
GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
through
*
Helix media player (
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
)
*
Jellyfin
Jellyfin is a free and open-source media server and suite of multimedia applications designed to organize, manage, and share digital media files to networked devices. Jellyfin consists of a server application installed on a machine running Lin ...
media server
*
Kodi
Kodi may refer to:
Arts, entertainment, and media
* KODI, a radio station in Cody, Wyoming, USA
* Kodi (film), ''Kodi'' (film), India, 2016
* Kodi, a dog in the 2004 film ''Balto III: Wings of Change''
Other uses
* Kodi (software), an open sour ...
(formerly XBMC Media Center) (
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
)
*
Kodibuntu (formerly XBMC Live) (Linux Live CD/USB operating-system)
*
libavcodec
libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data.
libavcodec is an integral part of many open-source multimedia applications and frameworks. The popular MPV, xine and VLC media players use ...
*
MPlayer
MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
with custom patches and its fork
mpv (native)
*
MythTV
MythTV is a free and open-source home entertainment application with a simplified "10-foot user interface" design for the living room TV. It turns a computer with the necessary hardware into a network streaming digital video recorder, a digital ...
(starting from release 0.25)
*
OBS Studio
OBS Studio (also Open Broadcaster Software or OBS, for short) is a free and open-source, cross-platform screencasting and live streaming app. It is available for Windows, macOS, Linux distributions, and BSD. The OBS Project raises funds on Open ...
* OpenShot
*
VLC media player
VLC media player (previously the VideoLAN Client) is a free and open-source software, free and open-source, software portability, portable, cross-platform media player software and streaming media Server (computing), server developed by the Vide ...
(starting from release 1.1.0)
*
Xine
xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries fr ...
(via "''xine-lib-vaapi''" library) since Version 1.2.3
See also
*
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
External links
*
Intel Media and Audio for Linuxmobile-hw-decode"VA API slowly -- but surely -- making progress"– an overview from 2009
"MPlayer, FFmpeg Gain VA-API Support"– from 2008
{{freedesktop.org
Application layer protocols
Application programming interfaces
Freedesktop.org
Video acceleration
Video acceleration APIs available on Linux
X Window extensions