Après un an de développement, GStreamer 1.26 est publié, un ensemble de composants multiplateformes permettant de créer une large gamme d'applications multimédias, des lecteurs multimédias et convertisseurs de fichiers audio/vidéo aux applications VoIP et aux systèmes de streaming. Le code GStreamer est distribué sous la licence LGPLv2.1. Séparément, des mises à jour des plugins gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, ainsi que la liaison gst-libav et le serveur de streaming gst-rtsp-server sont en cours de développement. Au niveau de l'API et de l'ABI, la nouvelle version est rétrocompatible avec la branche 1.0. Des builds binaires seront bientôt préparées pour Android, iOS, macOS et Windows (sous Linux, il est recommandé d'utiliser les packages de la distribution).
Principales améliorations de GStreamer 1.26 :
- Ajout d'un encodeur et d'un décodeur pour le format vidéo VVC (Versatile Video Coding), également connu sous le nom de norme de compression vidéo H.266, développé conjointement par les groupes de travail MPEG (ISO/IEC JTC 1) et VCEG (ITU-T), avec la participation de sociétés telles qu'Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm et Sony. Le H.266 remplace le H.265 (HEVC) et offre une efficacité élevée de transmission et de stockage de toutes les résolutions d'écran (de SD et HD à 4K et 8K), prend en charge la vidéo avec une plage dynamique étendue (HDR, High Dynamic Range) et la vidéo panoramique en mode 360 degrés.
- Ajout d'un encodeur et d'un décodeur pour la norme de codage vidéo LCEVC (Low Complexity Enhancement Video Coding), qui implémente une couche supplémentaire avec des métadonnées pour améliorer la qualité des codecs H.26x et MP4/ISOBMFF existants.
- Ajout d'un encodeur et d'un décodeur pour le format d'image JPEG XS, qui se positionne comme un système de codage d'image léger qui fournit des délais minimes lors de l'encodage et du décodage, et se concentre sur l'optimisation de la transmission de séquences d'images de très haute qualité (jusqu'à 8K). JPEG XS permet de réduire considérablement la bande passante requise du canal de communication sans aucune perte de qualité perceptible à l'œil humain.
- Ajout de la possibilité d'insérer et d'extraire des sous-titres codés pour les formats H.264 et H.265.
- Prise en charge améliorée du streaming adaptatif basé sur les protocoles HLS (HTTP Live Streaming) et DASH (Dynamic Adaptive Streaming over HTTP). Ajout de nouveaux récepteurs multimédias hlscmafsink et hlssink3 pour la sortie de fragments CMAF (fMP4) et MPEG-TS, ainsi que hlsmultivariantsink pour la sortie variable.
- Le packer et le décompresseur de conteneurs multimédia MPEG-TS prennent désormais en charge les codecs H.266, JPEG XS, AV1 et VP9, ainsi que les métadonnées SMPTE ST-2038 et ID3.
- Des packers et des décompresseurs pour le codec H.4/VVC ont été ajoutés aux formats Matroska et ISO MP266. MP4 dispose désormais de décompresseurs pour les formats vidéo Hap et Lagarith.
- Ajout de la prise en charge de SMPTE 2038, un système permettant de joindre des données et des métadonnées supplémentaires aux conteneurs multimédias.
- Intégration améliorée avec l'API graphique Vulkan. Capacités étendues pour la gestion de la mémoire, la sélection de l'espace colorimétrique, la gestion des périphériques et le fonctionnement en plein écran. Ajout de la prise en charge des extensions Vulkan pour accélérer le décodage des vidéos H264 et H265. Amélioration des performances de l'encodeur grâce à Vulkan.
- Intégration améliorée avec OpenGL. Ajout de la prise en charge de formats de conversion de couleurs et de formats de pixels supplémentaires. Ajout de la prise en charge de l'importation de flux à l'aide de DMABufs.
- Intégration améliorée avec la bibliothèque Qt6 et QML.
- Composants étendus pour l'intégration avec CUDA et NVIDIA Video Codec SDK. Ajout d'un encodeur au format AV1 basé sur l'API NVCODEC.
- La bibliothèque gst-d3d12 a été implémentée avec des encodeurs et des décodeurs basés sur l'API Direct3D 12.
- La prise en charge de la gestion des clés MIKEY côté client a été ajoutée à la pile RTSP.
- AudioConvert prend désormais en charge la réorganisation des canaux audio.
- Le plugin basé sur la bibliothèque GTK3 a été mis à jour pour prendre en charge OpenGL/WGL sur la plate-forme Windows.
- L'élément imagefreeze prend désormais en charge les formats JPEG et PNG.
- L'élément pitch implémente la possibilité de jouer en sens inverse.
- L'élément rtmp2 a amélioré les mécanismes d'authentification sur les serveurs RTP. Ajout de la prise en charge de l'authentification dans Limelight CDN.
- Le plugin d'intégration VA-API a été mis à jour avec des éléments pour accélérer le décodage H.266 (VVC), ainsi que l'encodage VP8 et JPEG.
- Éléments ajoutés pour travailler avec des flux basés sur le protocole QUIC (RAW QUIC, RTP-over-QUIC et WebTransport).
- L'ensemble gst-plugins-rs a été mis à jour pour inclure 23 nouveaux éléments ou plugins écrits en Rust. Les plugins écrits en Rust peuvent être utilisés dans des programmes écrits dans n'importe quel langage, et travailler avec eux est similaire à l'utilisation de plugins écrits en C et C++.
Source: opennet.ru
