Video Acceleration API ( VA-API ) es una API de código abierto que permite que aplicaciones como VLC media player o GStreamer utilicen capacidades de aceleración de video por hardware, generalmente proporcionadas por la unidad de procesamiento de gráficos (GPU). Se implementa mediante la biblioteca gratuita y de código abierto libva , combinada con un controlador específico de hardware, que generalmente se proporciona junto con el controlador de la GPU.
Autor (es) original (es) | Intel |
---|---|
Versión inicial | 2008 |
Lanzamiento estable | 2.11.0 [1] / 2 de abril de 2021 |
Repositorio | ![]() |
Escrito en | C |
Sistema operativo | Linux , Android , BSD |
Tipo | API |
Licencia | Licencia MIT |
Sitio web | www ![]() |
La interfaz de decodificación / codificación de video VA-API es independiente de la plataforma y el sistema de ventanas, pero está dirigida principalmente a la infraestructura de representación directa (DRI) en el sistema X Window en sistemas operativos similares a Unix (incluidos Linux , FreeBSD , Solaris ) y Android , sin embargo, puede potencialmente también se puede usar con subsistemas de gráficos y framebuffer directo para salida de video. De procesamiento acelerado incluye soporte para decodificación de vídeo , codificación de vídeo , la mezcla a pie de imagen, y la representación. [2]
La especificación VA-API fue diseñada originalmente por Intel para su serie GMA (Graphics Media Accelerator) de hardware GPU con el propósito específico de eventualmente reemplazar el estándar XvMC como el equivalente multiplataforma de Unix predeterminado de Microsoft Windows DirectX Video Acceleration (DxVA) API. , pero hoy la API ya no se limita a hardware o GPU específicos de Intel. [3] Otros fabricantes y hardware pueden utilizar libremente esta API estándar abierta para el procesamiento de vídeo acelerado por hardware con su propio hardware sin pagar derechos de autor. [4]
Descripción general
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/4/4a/Vainfo_screenshot.png/502px-Vainfo_screenshot.png)
La principal motivación para VA-API es permitir la decodificación de video acelerada por hardware en varios puntos de entrada ( VLD , IDCT , compensación de movimiento , desbloqueo [5] ) para los estándares de codificación vigentes en la actualidad ( MPEG-2 , MPEG-4 ASP / H .263 , MPEG-4 AVC / H.264 , H.265 / HEVC y VC-1 / WMV3 ). Se consideró extender XvMC, pero debido a su diseño original solo para MPEG-2 MotionComp , tenía más sentido diseñar una interfaz desde cero que pueda exponer completamente las capacidades de decodificación de video en las GPU actuales . [6]
Controladores y hardware compatibles
A partir de 2019, VA-API es compatible de forma nativa con: [7]
- Controladores de código abierto Intel Quick Sync para Linux
- Controladores de código abierto Mesa para tarjetas gráficas AMD e Intel
- Controladores AMDGPU-PRO para tarjetas gráficas AMD en Linux
- Controlador propietario de Nvidia para tarjetas gráficas Nvidia en Linux
- libva-vdpau-driver para tarjetas compatibles con VDPAU
Códecs de video compatibles
VA-API actualmente admite estos códecs de video en la versión oficial de la línea principal, pero tenga en cuenta que exactamente qué códecs de video son compatibles depende del hardware y las capacidades del controlador.
- Perfil principal de aceleración de decodificación MPEG-2
- Perfil avanzado de aceleración de decodificación VC-1 / WMV3
- MPEG-4 Part 2 (H.263) (también conocido como MPEG-4 SP / MPEG-4 ASP, más comúnmente conocido como Xvid ) decodificación de aceleración
- Perfil principal de aceleración de codificación H.264 AVC
- Aceleración de decodificación AVC H.264 de alto perfil
- Decodificación de longitud variable (VLD) por hardware H.264 / AVC - CABAC
- Decodificación de longitud variable (VLD) por hardware H.264 / AVC - CAVLC
- Transformación inversa de hardware H.264 / AVC (IT)
- Compensación de movimiento por hardware H.264 / AVC (HWMC)
- Desbloqueo en bucle de hardware H.264 / AVC (ILDB)
- Aceleración de codificación H.265 / HEVC
- Aceleración de decodificación H.265 / HEVC
- Aceleración de codificación VP9 de 8 bits [8]
- Aceleración de decodificación VP9 de 8 y 10 bits [8]
Procesos que se pueden acelerar con VA-API
Procesos de decodificación y posprocesamiento de video que se pueden descargar y acelerar si tanto los controladores del dispositivo como el hardware de la GPU los admiten:
- Compensación de movimiento (mocomp)
- Transformada de coseno discreta inversa (iDCT)
- Filtro de desbloqueo en bucle
- Predicción intracuadro
- Decodificación de longitud variable (VLD), más comúnmente conocida como aceleración de nivel de corte
- Procesamiento de flujo de bits ( CAVLC / CABAC )
Arquitectura de software
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/5/5f/Vaapi_illustration.svg/350px-Vaapi_illustration.svg.png)
La interfaz actual es independiente del sistema de ventanas, por lo que potencialmente se puede usar con subsistemas gráficos distintos de DRI (Infraestructura de renderizado directo) en el sistema X Window , como directo con framebuffer , y puede funcionar con DRM de terceros ( Direct Rendering Manager) bibliotecas. En pocas palabras, es un esquema para pasar varios tipos de búferes de datos de la aplicación a la GPU para decodificar o codificar un flujo de bits comprimido .
Software compatible con VA-API
- Desorden (kit de herramientas)
- Servidor de medios Jellyfin
- Servidor de medios Emby (a partir de la versión 3.0.6400) [9]
- Reproductor multimedia Helix ( Linux ) [10] [11]
- ffmpeg , una herramienta de línea de comandos del proyecto FFmpeg , admite la codificación VA-API a través de CLI con la versión a partir de 3.1 y también libavcodec (también parte del proyecto FFmpeg) contiene código que otras aplicaciones usan para admitir la decodificación acelerada por hardware, incluido VA- API. [12]
- Fluendo [13]
- Gnash Flash / SWF jugador [14]
- GStreamer a través de gstreamer-vaapi [15]
- Kodi (anteriormente XBMC Media Center) ( Linux ) [16]
- Kodibuntu (anteriormente XBMC Live) (sistema operativo Linux Live CD / USB) [16]
- MPlayer (v1 con parches) [17] y su bifurcación mpv (nativo)
- MythTV (a partir de la versión 0.25) [18]
- Reproductor multimedia VLC (a partir de la versión 1.1.0) [19]
- Cliente Bluecherry DVR (a partir de la versión 2.2.6) [20]
- Xine (a través de la biblioteca " xine-lib-vaapi ") desde la versión 1.2.3 [21]
- Software Open Broadcaster [22]
- Firefox (en Wayland desde el lanzamiento 78 y en X11 desde el lanzamiento 80) [23] [24]
Ver también
- Motor de códec distribuido (libdce): API de Texas Instruments para el motor de códec de video en sistemas integrados basados en OMAP
- OpenMAX : una API de abstracción de medios multiplataforma libre de regalías de Khronos Group
Referencias
- ^ "Versión 2.11.0" . 2 de abril de 2021 . Consultado el 20 de abril de 2021 .
- ^ "Aceleración de vídeo VA-API en Intel Medfield - Phoronix" . Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Video4Linux2: Ruta a una API de códec de video estandarizado" (PDF) . Events.linuxfoundation.org . Consultado el 23 de febrero de 2019 .
- ^ Nathan Willis (1 de julio de 2009). "VA API de forma lenta, pero segura, progresando" . Lwn.net .
- ^ "Mplayer, FFmpeg Gain Soporte VA-API - Phoronix" . Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "vaapi" . Freedesktop.org . Consultado el 23 de febrero de 2019 .
- ^ "Aceleración de video por hardware" . wiki.ArchLinux.org .
- ^ a b "Hardware / vaapi" . wiki.libav.org . Archivado desde el original el 1 de febrero de 2017 . Consultado el 20 de enero de 2017 .
- ^ "Emby Server 3.0.6400 lanzado" . Emby.media . 29 de agosto de 2016 . Consultado el 23 de febrero de 2019 .
- ^ "Entrada de la lista de correo que describe los usos de VA-API" . Lists.moblin.org . Consultado el 23 de febrero de 2019 .
- ^ "Preguntas frecuentes sobre RealPlayer para MID e Intel / Linux" . HelixCommunity.org . Archivado desde el original el 24 de marzo de 2012 . Consultado el 12 de mayo de 2011 .
- ^ "Copia archivada" . Archivado desde el original el 16 de septiembre de 2016 . Consultado el 31 de agosto de 2016 .CS1 maint: copia archivada como título ( enlace )
- ^ "Los nuevos códecs de Fluendo admiten VDPAU, VA-API - Phoronix" . Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Aceleración de video H.264 VA-API GPU para Flash - Phoronix" . Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Decodificación, codificación y procesamiento de video acelerado por hardware en gráficos Intel a través de VA-API" . Cgit.freedesktop.org . Consultado el 23 de febrero de 2019 .
- ^ a b "XBMC obtiene soporte Intel VA-API en funcionamiento - Phoronix" . Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Copia archivada" . Archivado desde el original el 3 de agosto de 2013 . Consultado el 10 de febrero de 2014 .CS1 maint: copia archivada como título ( enlace )
- ^ "Notas de la versión - 0.25 - Wiki oficial de MythTV" . Mythtv.org . Consultado el 23 de febrero de 2019 .
- ^ "Lanzamiento de VLC 1.1.0 - VideoLAN" . Videolan.org . Consultado el 23 de febrero de 2019 .
- ^ "[Cliente] 2.2.6 Publicado - Se incluyen reducciones significativas en el uso de CPU" . Bluecherrydvr.com . 2 de marzo de 2017 . Consultado el 23 de febrero de 2019 .
- ^ "el proyecto xine - News Feed" . Xine-project.org . Consultado el 23 de febrero de 2019 .
- ^ "OBS Studio ahora es compatible con VA-API para codificación de video - Phoronix" . www.phoronix.com . Consultado el 6 de agosto de 2020 .
- ^ "Firefox en Fedora finalmente obtiene VA-API en Wayland" . mastransky.wordpress.com . Consultado el 19 de agosto de 2020 .
- ^ "Firefox 80 disponible con VA-API en X11, compatibilidad con WebGL Parallel Shader Compile" . www.phoronix.com . Consultado el 25 de agosto de 2020 .
enlaces externos
- Página web oficial
- Intel Media and Audio para Linux
- decodificación-hw-móvil
- "La API de VA avanza de forma lenta, pero segura" : una descripción general de 2009
- "MPlayer, FFmpeg Gain VA-API Support" - desde 2008