Original author(s) | Intel |
---|---|
Initial release | 2008 |
Stable release | |
Repository | |
Written in | C |
Operating system | Linux, Android, BSD |
Type | API |
License | MIT license |
Website | www.freedesktop.org/wiki/Software/vaapi/ |
Video Acceleration API (VA-API) is an open sourceAPI 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-sourcelibrarylibva, combined with a hardware-specific driver, usually provided together with the GPU driver.
Not crashing with -vo=gpu or -vo=xv Worth to add other video players like VLC not crashing wit VAAPI. Details: Linux OpenMandriva Lx 4 x8664 Kernel 5.1.5 Mesa 19.1rc2/3 libva 2.4.0/2.4.1 Tested on two computers with R600, one PC with Radeon HD5850 and notebook with Radeon HD5650m. In attachment output of xorg log. H264 encoder using VAAPI. So hardware encoding with VAAPI on the RK3399 may exist to this day in the kernel, but what is the path to get it to work with the OrangePi RK3399? Other tracks are using VDPAU, which is another acceleration, this time coming from the NVIDIA world.
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. How to download stremio on xbox one. Accelerated processing includes support for video decoding, video encoding, subpicture blending, and rendering.[2]
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.[3] 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.[4]
Overview[edit]
The main motivation for VA-API is to enable hardware-accelerated video decode at various entry-points (VLD, IDCT, motion compensation, deblocking[5]) 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.[6]
Supported hardware and drivers[edit]
As of 2019, VA-API is natively supported by:[7]
RanbooLive Popularity. Most Popular #293. Born on December 27 #2. 17 Year Old #14. RanbooLive Is A Member Of. RanbooLive Fans Also Viewed. Ranboolive's official website powered by Streamlabs. Ranboolive's official website powered by Streamlabs. RanbooLive Live. Login English Store Purchase high quality branded apparel and accessories from your favourite streamers. Just a guy doing something. Feel free to stop! Just a guy doing something. Feel free to stop! I thought my thumbs were weird before seeing this and I can now confirm my thumbs are still kinda weird but not as much. This is honestly just bad ideas put on the internet for all to see. Have fun!Business email is ranboobusiness@gmail.com. Ranboo twitter.
- Intel Quick Sync open-source drivers for Linux
- Mesa open-source drivers for AMD and Intel graphics cards
- AMDGPU-PRO drivers for AMD graphics cards on Linux
- Nvidia proprietary driver for Nvidia graphics cards on Linux
- libva-vdpau-driver for cards supported by VDPAU
Supported video codecs[edit]
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]
Processes that can be accelerated with VA-API[edit]
Video decoding and post-processing processes that can be offloaded and accelerated if both the device drivers and GPU hardware supports them:
- Motion compensation (mocomp)
- Inverse discrete cosine transform (iDCT)
- In-loop deblocking filter
- Intra-frame prediction
- Variable-Length Decoding (VLD), more commonly known as slice-level acceleration
- Bitstream processing (CAVLC/CABAC)
Software architecture[edit]
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[edit]
- Jellyfin media server
- Emby media server (starting from release 3.0.6400) [9]
- Helix media player (Linux)[10][11]
- ffmpeg, a command line tool from the FFmpeg project, supports VA-API encoding through CLI with version starting from 3.1 and also libavcodec (also part of the FFmpeg project) does contain code that other applications use to support hardware accelerated decoding, including VA-API.[12]
- Fluendo [13]
- Gnash Flash / SWF player[14]
- GStreamer through gstreamer-vaapi[15]
- Kodi (formerly XBMC Media Center) (Linux)[16]
- Kodibuntu (formerly XBMC Live) (Linux Live CD/USB operating-system)[16]
- MPlayer (v1 with patches)[17] and its fork mpv (native)
- MythTV (starting from release 0.25)[18]
- VLC media player (starting from release 1.1.0)[19]
- Bluecherry DVR client (starting from release 2.2.6)[20]
- Xine (via 'xine-lib-vaapi' library) since Version 1.2.3 [21]
- Open Broadcaster Software[22]
- Firefox (On Wayland since release 78 and on X11 since release 80) [23][24]
See also[edit]
Not crashing with -vo=gpu or -vo=xv Worth to add other video players like VLC not crashing wit VAAPI. Details: Linux OpenMandriva Lx 4 x8664 Kernel 5.1.5 Mesa 19.1rc2/3 libva 2.4.0/2.4.1 Tested on two computers with R600, one PC with Radeon HD5850 and notebook with Radeon HD5650m. In attachment output of xorg log. H264 encoder using VAAPI. So hardware encoding with VAAPI on the RK3399 may exist to this day in the kernel, but what is the path to get it to work with the OrangePi RK3399? Other tracks are using VDPAU, which is another acceleration, this time coming from the NVIDIA world.
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. How to download stremio on xbox one. Accelerated processing includes support for video decoding, video encoding, subpicture blending, and rendering.[2]
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.[3] 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.[4]
Overview[edit]
The main motivation for VA-API is to enable hardware-accelerated video decode at various entry-points (VLD, IDCT, motion compensation, deblocking[5]) 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.[6]
Supported hardware and drivers[edit]
As of 2019, VA-API is natively supported by:[7]
RanbooLive Popularity. Most Popular #293. Born on December 27 #2. 17 Year Old #14. RanbooLive Is A Member Of. RanbooLive Fans Also Viewed. Ranboolive's official website powered by Streamlabs. Ranboolive's official website powered by Streamlabs. RanbooLive Live. Login English Store Purchase high quality branded apparel and accessories from your favourite streamers. Just a guy doing something. Feel free to stop! Just a guy doing something. Feel free to stop! I thought my thumbs were weird before seeing this and I can now confirm my thumbs are still kinda weird but not as much. This is honestly just bad ideas put on the internet for all to see. Have fun!Business email is ranboobusiness@gmail.com. Ranboo twitter.
- Intel Quick Sync open-source drivers for Linux
- Mesa open-source drivers for AMD and Intel graphics cards
- AMDGPU-PRO drivers for AMD graphics cards on Linux
- Nvidia proprietary driver for Nvidia graphics cards on Linux
- libva-vdpau-driver for cards supported by VDPAU
Supported video codecs[edit]
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]
Processes that can be accelerated with VA-API[edit]
Video decoding and post-processing processes that can be offloaded and accelerated if both the device drivers and GPU hardware supports them:
- Motion compensation (mocomp)
- Inverse discrete cosine transform (iDCT)
- In-loop deblocking filter
- Intra-frame prediction
- Variable-Length Decoding (VLD), more commonly known as slice-level acceleration
- Bitstream processing (CAVLC/CABAC)
Software architecture[edit]
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[edit]
- Jellyfin media server
- Emby media server (starting from release 3.0.6400) [9]
- Helix media player (Linux)[10][11]
- ffmpeg, a command line tool from the FFmpeg project, supports VA-API encoding through CLI with version starting from 3.1 and also libavcodec (also part of the FFmpeg project) does contain code that other applications use to support hardware accelerated decoding, including VA-API.[12]
- Fluendo [13]
- Gnash Flash / SWF player[14]
- GStreamer through gstreamer-vaapi[15]
- Kodi (formerly XBMC Media Center) (Linux)[16]
- Kodibuntu (formerly XBMC Live) (Linux Live CD/USB operating-system)[16]
- MPlayer (v1 with patches)[17] and its fork mpv (native)
- MythTV (starting from release 0.25)[18]
- VLC media player (starting from release 1.1.0)[19]
- Bluecherry DVR client (starting from release 2.2.6)[20]
- Xine (via 'xine-lib-vaapi' library) since Version 1.2.3 [21]
- Open Broadcaster Software[22]
- Firefox (On Wayland since release 78 and on X11 since release 80) [23][24]
See also[edit]
- 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[edit]
Mpv Vaapi Results
- ^'Release 2.11.0'. 2 April 2021. Retrieved 20 April 2021.
- ^'VA-API Video Acceleration On Intel Medfield - Phoronix'. Phoronix.com. Retrieved 23 February 2019.
- ^'Video4Linux2: Path to a Standardized Video Codec API'(PDF). Events.linuxfoundation.org. Retrieved 23 February 2019.
- ^Nathan Willis (2009-07-01). 'VA API slowly, but surely, making progress'. Lwn.net.
- ^'Mplayer, FFmpeg Gain VA-API Support - Phoronix'. Phoronix.com. Retrieved 23 February 2019.
- ^'vaapi'. Freedesktop.org. Retrieved 23 February 2019.
- ^'Hardware video acceleration'. wiki.ArchLinux.org.
- ^ ab'Hardware/vaapi'. wiki.libav.org. Archived from the original on 2017-02-01. Retrieved 2017-01-20.
- ^'Emby Server 3.0.6400 Released'. Emby.media. 29 August 2016. Retrieved 23 February 2019.
- ^'Mailing list entry that describes uses of VA-API'. Lists.moblin.org. Retrieved 23 February 2019.
- ^'RealPlayer for MID & Intel/Linux FAQ'. HelixCommunity.org. Archived from the original on 2012-03-24. Retrieved 2011-05-12.
- ^'Archived copy'. Archived from the original on 2016-09-16. Retrieved 2016-08-31.CS1 maint: archived copy as title (link)
- ^'Fluendo's New Codecs Support VDPAU, VA-API - Phoronix'. Phoronix.com. Retrieved 23 February 2019.
- ^'H.264 VA-API GPU Video Acceleration For Flash - Phoronix'. Phoronix.com. Retrieved 23 February 2019.
- ^'Hardware-accelerated video decoding, encoding and processing on Intel graphics through VA-API'. Cgit.freedesktop.org. Retrieved 23 February 2019.
- ^ ab'XBMC Gets Working Intel VA-API Support - Phoronix'. Phoronix.com. Retrieved 23 February 2019.
- ^'Archived copy'. Archived from the original on 2013-08-03. Retrieved 2014-02-10.CS1 maint: archived copy as title (link)
- ^'Release Notes - 0.25 - MythTV Official Wiki'. Mythtv.org. Retrieved 23 February 2019.
- ^'VLC 1.1.0 release - VideoLAN'. Videolan.org. Retrieved 23 February 2019.
- ^'[Client] 2.2.6 Released – Significant CPU usage reductions included'. Bluecherrydvr.com. 2 March 2017. Retrieved 23 February 2019.
- ^'the xine project - News Feed'. Xine-project.org. Retrieved 23 February 2019.
- ^'OBS Studio Now Supports VA-API For Video Encoding - Phoronix'. www.phoronix.com. Retrieved 2020-08-06.
- ^'Firefox on Fedora finally gets VA-API on Wayland'. mastransky.wordpress.com. Retrieved 2020-08-19.
- ^'Firefox 80 Available With VA-API On X11, WebGL Parallel Shader Compile Support'. www.phoronix.com. Retrieved 2020-08-25.
External links[edit]
Mpv Vaapi 2020
- 'VA API slowly -- but surely -- making progress' – an overview from 2009
- 'MPlayer, FFmpeg Gain VA-API Support' – from 2008