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 the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
application programming interface that allows applications such as
VLC media player
VLC media player (previously the VideoLAN Client and commonly known as simply VLC) is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for d ...
or
GStreamer
GStreamer is a 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 format, processes the ...
to use hardware video acceleration capabilities, usually provided by the
graphics processing unit
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mo ...
(GPU). It is implemented by the
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
, 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 provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting ...
on
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser 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, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s (including
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
,
Solaris), 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. Moder ...
and graphics sub-systems for video output. Accelerated processing includes support for
video decoding
A video decoder is an electronic circuit, often contained within a single integrated circuit chip, that converts base-band analog video signals to digital video. Video decoders commonly allow programmable control over video characteristics such a ...
,
video encoding, 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, Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the devel ...
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. 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,
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 d ...
,
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 aims ...
) 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, w ...
,
MPEG-4 ASP
MPEG-4 Part 2, MPEG-4 Visual (formally ISO/ IEC 14496-2) is a video compression format developed by the Moving Picture Experts Group (MPEG). It belongs to the MPEG-4 ISO/IEC standards. It uses block-wise motion compensation and a discrete cosine ...
/
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.
Supported hardware and drivers
As of 2019, VA-API is natively supported by:
*
Intel Quick Sync open-source drivers for Linux
*
Mesa
A mesa is an isolated, flat-topped elevation, ridge or hill, which is bounded from all sides by steep escarpments and stands distinctly above a surrounding plain. Mesas characteristically consist of flat-lying soft sedimentary rocks 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
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
Xvid (formerly "XviD") is a video codec library following the MPEG-4 video coding standard, specifically MPEG-4 Part 2 Advanced Simple Profile (ASP). It uses ASP features such as b-frames, global and quarter pixel motion compensation, lumi ma ...
) 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 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 d ...
*
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
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting ...
, 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. Moder ...
, 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

*
Clutter
Clutter and its derivations may refer to any of the following:
Excessive physical disorder
* Clutter, a confusing, or disorderly, state or collection, and possible symptom of compulsive hoarding
* Clutter (marketing), numerous advertisements, ...
toolkit
*
Jellyfin media server
datarhei Restreamerreal-time live video streaming
*
Emby media server (starting from release 3.0.6400)
*
Helix media player (
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
)
* ''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 of ...
project, supports VA-API encoding through CLI with version starting from 3.1 and also
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 u ...
(also part of the FFmpeg project) does contain code that other applications use to support hardware accelerated decoding, including VA-API.
Fluendo*
Gnash Flash /
SWF player
*
GStreamer
GStreamer is a 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 format, processes the ...
through
*
Kodi
KODI (1400 AM) is a radio station broadcasting a news/talk format. Licensed to Cody, Wyoming, United States, the station is currently owned by the Big Horn Radio Network, a division of Legend Communications of Wyoming, LLC, and features prog ...
(formerly XBMC Media Center) (
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
)
*
Kodibuntu (formerly XBMC Live) (Linux Live CD/USB operating-system)
*
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, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for ...
(v1 with 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 dig ...
(starting from release 0.25)
OpenShot*
VLC media player
VLC media player (previously the VideoLAN Client and commonly known as simply VLC) is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for d ...
(starting from release 1.1.0)
* Bluecherry DVR client (starting from release 2.2.6)
*
Xine (via "''xine-lib-vaapi''" library) since Version 1.2.3
*
OBS Studio
*
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 current and ...
(On Wayland since release 78 and on X11 since release 80)
See also
*
Distributed Codec Engine
Distributed Codec Engine (DCE) is an API and its implementation as software library ("''libdce''") by Texas Instruments. The library was released under the Revised BSD License and some additional terms.
It enables and provides remote access to h ...
(libdce) — Texas Instruments API for the video codec engine in OMAP based embedded systems
*
OpenMAX
OpenMAX (Open Media Acceleration), often shortened as "OMX", is a non-proprietary and royalty-free cross-platform set of C-language programming interfaces. It provides abstractions for routines that are especially useful for processing of audio, ...
— 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