La API de aceleración de video ( VA-API ) es una interfaz de programación de aplicaciones de código abierto que permite que aplicaciones como el reproductor multimedia VLC o GStreamer utilicen las capacidades de aceleración de video de hardware, generalmente proporcionadas por la unidad de procesamiento gráfico (GPU). Se implementa mediante la biblioteca libre y de código abierto libva , combinada con un controlador específico de hardware, generalmente proporcionado junto con el controlador de GPU.
La interfaz de decodificación/codificación de video VA-API es independiente de la plataforma y del sistema de ventanas, pero está orientada principalmente a la Infraestructura de Representación Directa (DRI) en el Sistema X Window en sistemas operativos tipo Unix (incluidos Linux , FreeBSD , Solaris ) y Android ; sin embargo, también puede usarse potencialmente con subsistemas de gráficos y framebuffer directo para salida de video. El procesamiento acelerado incluye soporte para decodificación de video , codificación de video , combinación de subimágenes y representación. [2]
La especificación VA-API fue diseñada originalmente por Intel para su serie GMA (Graphics Media Accelerator) de hardware de GPU con el propósito específico de eventualmente reemplazar el estándar XvMC como el equivalente multiplataforma Unix predeterminado de la API Microsoft Windows DirectX Video Acceleration (DxVA) , pero hoy la API ya no está limitada al hardware o GPU específicos de Intel. [3] Otros fabricantes y hardware pueden usar libremente esta API estándar abierta para el procesamiento de video acelerado por hardware con su propio hardware sin pagar regalías. [4]
Descripción general

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 prevalecientes 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]
Hardware y controladores compatibles
A partir de 2022, VA-API cuenta con soporte nativo de: [7]
- Controladores de código abierto Intel Quick Sync para Linux
- Controladores de código abierto Mesa para tarjetas gráficas AMD y Nvidia
- Controladores AMDGPU-PRO para tarjetas gráficas AMD en Linux
- libva-vdpau-driver para tarjetas compatibles con VDPAU
- Implementaciones de Direct3D 12 con el controlador VAOn12 [8]
Códecs de vídeo compatibles
VA-API actualmente admite estos códecs de video en la versión principal oficial, pero tenga en cuenta que exactamente qué códecs de video son compatibles depende del hardware y de 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
- Aceleración de decodificación MPEG-4 Parte 2 (H.263) (también conocido como MPEG-4 SP / MPEG-4 ASP, más comúnmente conocido como Xvid )
- Perfil principal de aceleración de codificación AVC H.264
- Aceleración de decodificación H.264 AVC de alto perfil
- Decodificación de longitud variable por hardware (VLD) H.264/AVC - CABAC
- Decodificación de longitud variable por hardware (VLD) H.264/AVC - CAVLC
- Transformada inversa de hardware (IT) H.264/AVC
- 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 [9]
- Aceleración de decodificación VP9 de 8 y 10 bits [9]
- Aceleración de codificación AV1 de 8 y 10 bits
- Aceleración de decodificación AV1 de 8 y 10 bits [7]
Procesos que se pueden acelerar con VA-API
Procesos de decodificación de video y posprocesamiento que se pueden descargar y acelerar si tanto los controladores del dispositivo como el hardware de la GPU los admiten:
- Compensación de movimiento
- Transformada discreta inversa del coseno
- Filtro de desbloqueo en bucle
- Predicción intra-cuadro
- decodificación de longitud variable , más comúnmente conocida como aceleración a nivel de segmento
- Procesamiento de flujo de bits ( codificación de longitud variable adaptativa al contexto / codificación aritmética binaria adaptativa al contexto )
Arquitectura de software

La interfaz actual es independiente del sistema de ventanas, por lo que potencialmente puede usarse con subsistemas gráficos distintos de la DRI (Infraestructura de renderizado directo) en X Window System , como Direct con framebuffer , y puede funcionar con bibliotecas DRM (Direct Rendering Manager) de terceros . En pocas palabras, es un esquema para pasar varios tipos de buffers de datos desde la aplicación a la GPU para decodificar o codificar un flujo de bits comprimido .
Software compatible con VA-API

- Cromo
- Cliente DVR de Bluecherry (a partir de la versión 2.2.6) [10]
- datarhei Restreamer [11] transmisión de video en vivo en tiempo real
- Servidor multimedia Emby (a partir de la versión 3.0.6400) [12]
- ffmpeg , una herramienta de línea de comandos del proyecto FFmpeg (a partir de la versión 3.1) [13]
- Firefox (en Wayland desde la versión 78 y en X11 desde la versión 80) [14] [15]
- Fluendo [16] [17]
- Fragata NVR [18]
- Reproductor Gnash Flash/ SWF [19]
- GStreamer a través de gstreamer-vaapi [20]
- Reproductor multimedia Helix ( Linux ) [21] [22]
- Servidor multimedia Jellyfin [23]
- Kodi (anteriormente XBMC Media Center) ( Linux ) [24]
- Kodibuntu (anteriormente XBMC Live) (sistema operativo Linux Live CD/USB) [24]
- código libav [25]
- MPlayer con parches personalizados [26] y su bifurcación mpv (nativo)
- MythTV (a partir de la versión 0.25) [27]
- Estudio OBS [28]
- Toma abierta [29]
- Reproductor multimedia VLC (a partir de la versión 1.1.0) [30]
- Xine (a través de la biblioteca " xine-lib-vaapi ") desde la versión 1.2.3 [31]
Véase 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 del Grupo Khronos
Referencias
- ^ "libva 2.22.0". 2 de julio de 2024. Consultado el 2 de julio de 2024 .
- ^ "Aceleración de video VA-API en Intel Medfield - Phoronix". Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Video4Linux2: Camino hacia una API de códec de vídeo estandarizada" (PDF) . Events.linuxfoundation.org . Archivado desde el original (PDF) el 6 de enero de 2014 . Consultado el 23 de febrero de 2019 .
- ^ Nathan Willis (1 de julio de 2009). "VA API avanza lentamente, pero con seguridad". Lwn.net .
- ^ "Mplayer y FFmpeg obtienen compatibilidad con VA-API - Phoronix". Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "vaapi". Freedesktop.org . Consultado el 23 de febrero de 2019 .
- ^ ab "Aceleración de vídeo por hardware". wiki.ArchLinux.org .
- ^ Vilerino, Sil (15 de febrero de 2023). "¡La API de aceleración de video (VA-API) ya está disponible en Windows!". Blog para desarrolladores de DirectX . Consultado el 8 de marzo de 2023 .
- ^ ab "Hardware/vaapi". wiki.libav.org . Archivado desde el original el 2017-02-01 . Consultado el 2017-01-20 .
- ^ "[Cliente] Lanzamiento de la versión 2.2.6: se incluyen reducciones significativas en el uso de la CPU". Bluecherrydvr.com . 2 de marzo de 2017 . Consultado el 23 de febrero de 2019 .
- ^ "datos Restreamer".
- ^ "Emby Server 3.0.6400 Released". Emby.media . 29 de agosto de 2016 . Consultado el 23 de febrero de 2019 .
- ^ "Copia archivada". Archivado desde el original el 16 de septiembre de 2016. Consultado el 31 de agosto de 2016 .
{{cite web}}: CS1 maint: copia archivada como título ( enlace ) - ^ "Firefox en Fedora finalmente obtiene VA-API en Wayland". mastransky.wordpress.com . 3 de junio de 2020 . Consultado el 19 de agosto de 2020 .
- ^ "Firefox 80 disponible con VA-API en X11, compatibilidad con compilación de sombreadores paralelos WebGL". www.phoronix.com . Consultado el 25 de agosto de 2020 .
- ^ "Fluendo".
- ^ "Los nuevos códecs de Fluendo son compatibles con VDPAU, VA-API - Phoronix". Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Aceleración de hardware".
- ^ "Aceleración de video de GPU VA-API H.264 para Flash - Phoronix". Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Decodificación, codificación y procesamiento de vídeo acelerado por hardware en gráficos Intel a través de VA-API". Cgit.freedesktop.org . Consultado el 23 de febrero de 2019 .
- ^ "Entrada de 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 .
- ^ "GPU Intel". jellyfin.org . Consultado el 2 de diciembre de 2024 .
- ^ ab "XBMC obtiene compatibilidad con Intel VA-API - Phoronix". Phoronix.com . Consultado el 23 de febrero de 2019 .
- ^ "Este resumen contiene instrucciones sobre cómo configurar FFmpeg y Libav para utilizar la codificación acelerada por hardware basada en VAAPI (en plataformas compatibles) para formatos de video H.264 (y H.265 en hardware compatible)". Resumen . Consultado el 2 de diciembre de 2024 .
- ^ "gbeauchesne / mplayer-vaapi".
- ^ "Notas de la versión 0.25 - Wiki oficial de MythTV". Mythtv.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 .
- ^ "Biblioteca OpenShot | libopenshot".
- ^ "Lanzamiento de VLC 1.1.0 - VideoLAN". Videolan.org . Consultado el 23 de febrero de 2019 .
- ^ "El proyecto Xine - Noticias". Xine-project.org . Consultado el 23 de febrero de 2019 .
Enlaces externos
- Sitio web oficial
- Intel Media y audio para Linux
- decodificación de hardware móvil
- "VA API avanza lentamente, pero con seguridad": una visión general desde 2009
- "MPlayer y FFmpeg obtienen compatibilidad con VA-API" – de 2008