L'interface de décodage/encodage vidéo VA-API est indépendante de la plateforme et du système de fenêtrage, mais elle est principalement destinée à l'infrastructure de rendu direct (DRI) du système X Window sur les systèmes d'exploitation de type Unix (notamment Linux , FreeBSD , Solaris ) et Android . Elle peut toutefois potentiellement être utilisée avec les sous-systèmes de mémoire tampon d' images et graphiques directs pour la sortie vidéo. Le traitement accéléré comprend la prise en charge du décodage vidéo , de l'encodage vidéo , du mélange de sous-images et du rendu.
La spécification VA-API a été initialement conçue par Intel pour sa gamme de GPU GMA (Graphics Media Accelerator), dans le but précis de remplacer à terme la norme XvMC comme équivalent multiplateforme Unix par défaut de l'API d'accélération vidéo DirectX (DxVA) de Microsoft Windows. Cependant, cette API n'est plus limitée aux matériels ou GPU spécifiques à Intel. D'autres fabricants de matériel peuvent librement utiliser cette API ouverte pour le traitement vidéo accéléré par le matériel, sans avoir à payer de redevances.
L'objectif principal de VA-API est de permettre le décodage vidéo accéléré par le matériel à différents points d'entrée ( VLD , IDCT , compensation de mouvement , déblocage ) pour les normes de codage actuelles ( MPEG-2 , MPEG-4 ASP / H.263 , MPEG-4 AVC/H.264 , H.265/HEVC et VC-1/WMV3 ). L'extension de XvMC a été envisagée, mais étant donné sa conception initiale limitée à la compensation de mouvement MPEG-2 , il s'est avéré plus judicieux de concevoir une interface entièrement nouvelle capable d'exploiter pleinement les capacités de décodage vidéo des GPU actuels .
Matériel et pilotes pris en charge
En 2022, VA-API est pris en charge nativement par :
- Pilotes open source Intel Quick Sync pour Linux
- Pilotes open source Mesa pour cartes graphiques AMD et Nvidia
- Pilotes AMDGPU-PRO pour cartes graphiques AMD sous Linux
- libva-vdpau-driver pour les cartes prises en charge par VDPAU
- Implémentations Direct3D 12 avec le pilote VAOn12
Codecs vidéo pris en charge
VA-API prend actuellement en charge ces codecs vidéo dans sa version principale officielle, mais veuillez noter que les codecs vidéo pris en charge dépendent du matériel et des capacités du pilote.
- Profil principal d'accélération du décodage MPEG-2
- Profil avancé d'accélération du décodage VC-1 / WMV3
- Accélération du décodage MPEG-4 Part 2 (H.263) (également appelé MPEG-4 SP / MPEG-4 ASP, plus communément connu sous le nom de Xvid )
- Accélération de l'encodage H.264 AVC Profil principal
- Accélération du décodage H.264 AVC à profil élevé
- Décodage matériel à longueur variable H.264/AVC (VLD) - CABAC
- Décodage matériel à longueur variable H.264/AVC (VLD) - CAVLC
- Transformation inverse matérielle H.264 / AVC (IT)
- Compensation matérielle de mouvement H.264 / AVC (HWMC)
- Déblocage matériel en boucle H.264/AVC (ILDB)
- Accélération de l'encodage H.265/HEVC
- Accélération du décodage H.265/HEVC
- Accélération de l'encodage VP9 8 bits
- Accélération du décodage VP9 8 bits et 10 bits
- Accélération de l'encodage AV1 8 bits et 10 bits
- Accélération du décodage AV1 8 bits et 10 bits
Processus pouvant être accélérés grâce à l'API VA
Les processus de décodage et de post-traitement vidéo peuvent être déportés et accélérés si les pilotes de périphériques et le matériel GPU les prennent en charge :
- Compensation de mouvement
- Transformée en cosinus discrète inverse
- Filtre de déblocage en boucle
- Prédiction intra-image
- décodage à longueur variable , plus communément appelé accélération au niveau des tranches
- Traitement de flux binaire ( codage à longueur variable adaptatif au contexte / codage arithmétique binaire adaptatif au contexte )
architecture logicielle

L'interface actuelle est indépendante du système de fenêtrage, ce qui permet son utilisation potentielle avec des sous-systèmes graphiques autres que l' infrastructure de rendu direct (DRI) du système X Window , comme le rendu direct avec le framebuffer . Elle est également compatible avec les bibliothèques DRM (Direct Rendering Manager) tierces . En résumé, il s'agit d'un mécanisme permettant de transmettre différents types de tampons de données de l'application au GPU pour le décodage ou l'encodage d'un flux binaire compressé .
Logiciel prenant en charge l'API VA

- Chrome
- Client DVR Bluecherry (à partir de la version 2.2.6)
- datarhei Restreamer diffusion vidéo en direct en temps réel
- Serveur multimédia Emby (à partir de la version 3.0.6400)
- ffmpeg , un outil en ligne de commande du projet FFmpeg (à partir de la version 3.1)
- Firefox (sur Wayland depuis la version 78 et sur X11 depuis la version 80)
- Fluendo
- Frégate NVR
- Lecteur Gnash Flash / SWF
- GStreamer via gstreamer-vaapi Lecteur multimédia Helix ( Linux )
- Serveur multimédia Jellyfin
- Kodi (anciennement XBMC Media Center) ( Linux )
- Kodibuntu (anciennement XBMC Live) (système d'exploitation Linux Live CD/USB)
- libavcodec
- MPlayer avec des correctifs personnalisés et son fork mpv (natif)
- MythTV (à partir de la version 0.25)
- OBS Studio
- OpenShot
- Lecteur multimédia VLC (à partir de la version 1.1.0)
- Xine (via la bibliothèque " xine-lib-vaapi ") depuis la version 1.2.3
- Eranol v1.2.0 (via nextjs)