Accueil / Tech News / FFmpeg 9.0 met de nouveau Vulkan à l’honneur

FFmpeg 9.0 met de nouveau Vulkan à l’honneur

Petit pimousse

FFmpeg 9.0 met de nouveau Vulkan à l’honneur

Un an après la version 8.0, l’équipe du projet FFmpeg passe à la mouture majeure suivante. Avec FFmpeg 9.0, Vulkan est particulièrement à l’honneur avec plusieurs améliorations importantes, notamment avec certains codecs orientés production et/ou post-production.

La nouvelle version, nommée « Lei », propose ainsi le décodage matériel d’APV (Advanced Professional Video) via Vulkan. APV est un codec royalties-free (sans redevance) créé par Samsung et pensé comme alternative ouverte à des formats comme le ProRes d’Apple. Comme toujours avec le décodage matériel, cela signifie que le travail est déchargé du CPU vers le GPU, indépendamment du constructeur, Vulkan étant une API multiplateforme.

Puisque l’on parle du ProRes, FFmpeg 9.0 a également du neuf sur le codec. Une accélération Vulkan est là aussi proposée, en complément d’un support ProRes RAW via VideoToolbox. Les flux ProRes RAW, très lourds et jusqu’ici majoritairement décodés au format logiciel ou via des chemins propriétaires Apple, obtiennent ainsi une voie d’accélération GPU générique, ce qui devrait là aussi avoir des répercussions importantes.

Ces deux ajouts, en plus du nouveau filtre v360_vulkan pour la reprojection vidéo 360° et/ou équirectangulaire, positionnent encore un peu plus FFmpeg comme pipeline GPU indépendant. Il fonctionne à l’identique sur les puces Intel, AMD ou encore NVIDIA, sur tous les systèmes d’exploitation, sans dépendre de SDK (kits de développement) propriétaires comme CUDA, NVENC, AMF ou encore VideoToolbox.

Invisible et omniprésent

Parmi les autres nouveautés, on peut noter la lecture native des WebP animés, des améliorations liées au cadre AMF d’AMD, l’arrivée d’un filtre transpose_cuda (rotation/retournement d’image accéléré CUDA, pour éviter les allers-retours GPU > CPU > GPU), le support et le passthrough des métadonnées dynamiques SMPTE 2094 - 50 pour améliorer la gestion des flux de travail HDR, le décodage HE-AAC 960 pour le contenu DAB+ côté audio, ou encore un nettoyage du code avec la suppression de plusieurs éléments obsolètes, dont le décodeur CELT et le parseur Ogg/CELT.

Comme toujours avec les nouvelles versions de FFmpeg, de nombreux composants sont mis à jour, comme libavutil 61.1.100, libavcodec 63.1.100, libavformat 63.1.100, libavdevice 63.1.100, libavfilter 12.1.100, libswscale 10.1.100 et libswresample 7.1.100.

L’importance de cette nouvelle version ne se révèlera, comme d’habitude, qu’une fois son intégration réalisée dans d’autres projets qui en exploiteront les capacités. Rappelons que FFmpeg, même s’il n’est pas connu généralement du grand public, est une brique d’infrastructure invisible mais omniprésente dans le traitement multimédia au sens large.

Si vous connaissez mal ce projet, il s’agit d’une boite à outil pour coder, décoder, transcoder, muxer, démuxer et filtrer à peu près tous les formats audio/vidéo existants. On le retrouve dans de nombreux logiciels et services connus, dont le plus célèbre est sans doute VLC. FFmpeg joue également un rôle essentiel dans YouTube, HandBrake, OBS Studio, des serveurs multimédia domestiques comme Plex et Jellyfin, Discord, Chrome, Blender ou encore WhatsApp. Certains services commerciaux ayant pignon sur rue, comme Netflix, s’en servent également, mais on ne connait pas la nature précise de cet usage.

Origine de l’article : lire l’article original
Traduction