AprÚs presque un an de développement, la version GStreamer 1.28 est présentée. Il s'agit d'un ensemble de composants multiplateformes pour créer une large gamme d'applications multimédias, allant des lecteurs multimédias et des convertisseurs de fichiers audio/vidéo aux applications VoIP et aux systÚmes de streaming. Le code de GStreamer est distribué sous la licence LGPLv2.1. Des mises à jour pour les plugins gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, ainsi que pour l'interface gst-libav et le serveur de streaming gst-rtsp-server, sont développées séparément. 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és pour Android, iOS, macOS et Windows (pour Linux, il est recommandé d'utiliser les paquets du distributeur).
Améliorations clés de GStreamer 1.28 :
- Un nouveau plugin HIP (Heterogeneous-computing Interface for Portability) a Ă©tĂ© ajoutĂ© pour prendre en charge l'interface de programmation dĂ©veloppĂ©e par AMD pour le calcul hĂ©tĂ©rogĂšne, oĂč des unitĂ©s de calcul parallĂšles (GPU) sont utilisĂ©es en plus du CPU. HIP simplifie la mise en Ćuvre du support de diffĂ©rents GPU au sein d'une mĂȘme base de code (le stack ROCm est utilisĂ© pour l'exĂ©cution sur les GPU AMD, tandis qu'un middleware de traduction vers CUDA est utilisĂ© pour les GPU NVIDIA). Le plugin fournit des composants rĂ©alisĂ©s avec HIP pour effectuer des opĂ©rations telles que le mĂ©lange vidĂ©o, la conversion d'un espace colorimĂ©trique Ă un autre, le redimensionnement vidĂ©o et l'organisation des Ă©changes de donnĂ©es entre la mĂ©moire systĂšme et la mĂ©moire vidĂ©o. De plus, une bibliothĂšque a Ă©tĂ© prĂ©parĂ©e pour intĂ©grer le support de HIP dans les applications.
- Le support de la norme d'encodage vidéo LCEVC (Low Complexity Enhancement Video Coding) a été ajouté, qui réalise un couche supplémentaire de métadonnées pour améliorer la qualité vidéo sur les codecs standards H.265 et H.266. L'implémentation de l'encodeur et du décodeur LCEVC est basée sur des bibliothÚques du SDK V-Nova.
- Le support des capacités de l'API graphique Vulkan a été ajouté pour accélérer le décodage vidéo dans les formats AV1 et VP9, ainsi que pour l'encodage vidéo au format H.264. Le décodeur vidéo H.265 basé sur Vulkan a ajouté le support de la profondeur de couleur à 10 bits par canal.
- Dans l'Ă©lĂ©ment gtkwaylandsink, destinĂ© Ă ĂȘtre utilisĂ© avec GTK4 et Wayland, les fonctionnalitĂ©s de gestion des couleurs ont Ă©tĂ© Ă©largies, comme l'ajout du support de l'analyse et de la dĂ©finition des mĂ©tadonnĂ©es HDR10.
- Un nouvel Ă©lĂ©ment a Ă©tĂ© ajoutĂ© pour sĂ©parer les sources sonores (par exemple, la sĂ©paration de la voix et de la musique de fond), basĂ© sur la bibliothĂšque charon-audio, qui met en Ćuvre la mĂ©thode Demucs en Rust. De plus, un plugin Deepgram pour la reconnaissance vocale, Ă©crit en Rust, a Ă©tĂ© inclus.
- Les capacités d'analyse et de reconnaissance des objets ont été étendues. Des éléments pour combiner et séparer l'analyse ont été ajoutés. Un classificateur tensor-decoder, un détecteur de visages facedetector, un détecteur d'objets YOLOv8, un élément pour l'exécution et un décodeur pour le modÚle de reconnaissance d'objets YOLOX ont été mis en place. Un élément tensordecodebin a été ajouté pour le branchement automatique des décodeurs et un élément pour exécuter des modÚles IA avec LiteRT (qui remplace TensorFlow Lite) a été inclus.
- Un nouvel élément pour le décodage d'images GIF, écrit en Rust et supportant l'animation en boucle, a été ajouté.
- Dans l'Ă©lĂ©ment input-selector, un mĂ©canisme de commutation en deux phases entre les flux d'entrĂ©e (sinkpad) a Ă©tĂ© mis en Ćuvre, Ă©vitant ainsi les conditions de course lors du basculement.
- Le composant webrtcsink a été mis à jour pour ajouter le support de l'accélération matérielle de l'encodage via VA-API et la possibilité de renégocier la connexion.
- Des éléments pour combiner et extraire des flux conformément à la norme de diffusion ST-2038 ont été ajoutés.
- L'élément fallbacksrc a obtenu la prise en charge des flux codés.
- Dans le conteneur multimédia FLV utilisé pour la diffusion RTMP, l'assistance pour la vidéo H.265 a été améliorée, et le support du son multicanal a été ajouté.
- L'élément glupload a intégré un chargeur basé sur udmabuf, permettant le partage de tampons entre décodeurs/enregistrements logiciels et GPU, moteurs d'affichage (wayland) et autres appareils.
- L'élément qml6 pour le rendu avec Qt6 QML a été ajouté.
- La bibliothÚque de traitement vidéo a vu l'ajout d'opérations pour le rognage, le redimensionnement, la rotation et le décalage.
- Un objet GstContext a été ajouté, permettant d'utiliser un pool de threads partagé lors de l'exécution des éléments pour améliorer les performances d'opérations telles que le compositing et la transformation vidéo.
- L'élément icecastsink pour la réception de flux depuis IceCast, prenant en charge le format AAC et écrit en Rust, a été ajouté.
- Un nouvel élément de clonage de voix de ElevenLabs a été introduit.
- Le synthétiseur vocal a ajouté un mode pour accélérer la lecture tout en conservant la tonalité.
- Un élément vmaf a été ajouté pour évaluer la qualité vidéo à l'aide du cadre VMAF de Netflix.
- Un nouveau plugin de décodage audio MPEG-H a été ajouté, basé sur le décodeur Fraunhofer MPEG-H et prenant en charge le déballage des conteneurs multimédias MP4.
- Le support des sous-titres cachĂ©s (CC â Closed Captions) et du traitement du texte a Ă©tĂ© Ă©tendu.
Source : opennet.ru
