AprÚs plus d'un an de développement la sortie , une bibliothÚque de composants multiplateforme écrite en C, permettant de créer un large éventail d'applications multimédias, des lecteurs multimédias et des convertisseurs de fichiers audio/vidéo, aux applications VoIP et systÚmes de streaming. Le code de GStreamer est distribué sous la licence LGPLv2.1. Des mises à jour des plugins gst-plugins-base 1.16, gst-plugins-good 1.16, gst-plugins-bad 1.16, gst-plugins-ugly 1.16, ainsi que l'interface gst-libav 1.16 et le serveur de streaming gst-rtsp-server 1.16 sont également disponibles. Au niveau API et ABI, la nouvelle version est rétrocompatible avec la branche 1.0. Les builds binaires arriveront bientÎt pour Android, iOS, macOS et Windows (sous Linux, il est recommandé d'utiliser les paquets de la distribution).
Améliorations clés GStreamer 1.16 :
- Le stack WebRTC a ajoutĂ© le support des canaux de donnĂ©es P2P, implĂ©mentĂ©s via le protocole SCTP, ainsi que le support du mĂ©canisme pour l'envoi de diffĂ©rents types de donnĂ©es multimĂ©dias sur une mĂȘme connexion et la possibilitĂ© de travailler avec plusieurs serveurs TURN (une extension STUN pour contourner les traducteurs d'adresses);
- Ajout du support du codec vidéo AV1 dans les conteneurs Matroska (MKV) et QuickTime/MP4. Des options supplémentaires pour AV1 ont été implémentées et le nombre de formats d'entrée pris en charge par le codec a été élargi;
- Ajout du support de , ainsi que la possibilité de détecter et d'extraire d'autres types de données intégrées dans la vidéo (Données Accessoires, des informations supplémentaires telles que le son et les métadonnées transmises via des interfaces numériques dans des parties non affichées des lignes de trame);
- Ajout du support de l'audio brut (raw) sans interlacement des canaux sonores en mĂ©moire (Non-Interleaved, les canaux audio gauche et droit sont placĂ©s dans des blocs sĂ©parĂ©s, au lieu d'ĂȘtre entrelacĂ©s sous la forme «GAUCHE|DROIT|GAUCHE|DROIT|GAUCHE|DROIT»);
- Dans le jeu de base de plugins (gst-plugins-base), ont été déplacés (une classe pour le mélange de vidéos brutes), (remplaçant amélioré du videomixer) et les éléments du mélangeur OpenGL (glvideomixer, glmixerbin, glvideomixerelement, glstereomix, glmosaic), qui étaient auparavant dans le jeu «gst-plugins-bad»;
- Ajout d'un nouveau mĂ©langeur de champs, oĂč chaque tampon est traitĂ© comme un champ distinct dans la vidĂ©o entrelacĂ©e avec sĂ©paration des champs supĂ©rieur et infĂ©rieur au niveau des drapeaux liĂ©s au tampon;
- Le décompresseur de conteneurs multimédias Matroska a ajouté le support du format WebM et du chiffrement de contenu;
- Un nouvel élément wpesrc a été ajouté, fonctionnant comme un navigateur basé sur un moteur (permet de traiter la sortie du navigateur comme source de données);
- La prise en charge de l'encodage et du décodage HEVC, de l'encodage JPEG et d'une importation/exportation améliorée de dmabuf a été assurée pour Video4Linux;
- Le décodeur vidéo utilisant les moyens d'accélération matérielle GPU NVIDIA a ajouté la prise en charge du décodage VP8/VP9, tandis que l'encodeur prend en charge l'encodage H.265/HEVC accéléré par matériel;
- De nombreuses améliorations ont été apportées au plugin msdk, permettant d'utiliser les moyens d'accélération matérielle pour l'encodage et le décodage sur les puces Intel (basé sur Intel Media SDK). Cela inclut la prise en charge de l'importation/exportation de dmabuf, du décodage VP9, de l'encodage HEVC 10 bits, du post-traitement vidéo et du changement dynamique de résolution;
- Le systÚme d'affichage des sous-titres ASS/SSA a été amélioré avec la prise en charge de la gestion de plusieurs sous-titres se chevauchant temporellement, permettant leur affichage simultané à l'écran;
- Une prise en charge complÚte du systÚme de construction Meson a été assurée, désormais recommandé pour la compilation de GStreamer sur toutes les plateformes. Le retrait du support d'Autotools est prévu pour la prochaine version;
- Le composant principal de GStreamer inclut des liaisons pour le développement en langage Rust et un module avec des plugins en Rust;
- Des optimisations de performance ont été réalisées.
Source : opennet.ru
