Na een jaar ontwikkeling is de release van GStreamer 1.26 gepresenteerd, een cross-platform set componenten voor het creƫren van een breed scala aan multimedia-applicaties, variƫrend van mediaspelers en audio/video-bestandconverters tot VoIP-applicaties en streamingsystemen. De GStreamer-code wordt verspreid onder de LGPLv2.1-licentie. Updates voor de plugins gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, evenals de wrapper gst-libav en de streamingserver gst-rtsp-server worden afzonderlijk ontwikkeld. Op het niveau van API en ABI is de nieuwe release achterwaarts compatibel met de 1.0-tak. Binaire builds zullen binnenkort worden voorbereid voor Android, iOS, macOS en Windows (voor Linux wordt aangeraden om pakketten uit de distributie te gebruiken).
Belangrijke verbeteringen in GStreamer 1.26:
- Een encoder en decoder voor het videoformaat VVC (Versatile Video Coding) is toegevoegd, ook bekend als de H.266 compressiestandaard, ontwikkeld door de werkgroepen MPEG (ISO/IEC JTC 1) en VCEG (ITU-T), met deelname van bedrijven zoals Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm en Sony. H.266 vervangt H.265 (HEVC) en biedt een hoge efficiƫntie in het verzenden en opslaan van alle schermresoluties (van SD en HD tot 4K en 8K), ondersteunt video met een uitgebreid dynamisch bereik (HDR, High Dynamic Range) en panoramavideo in 360 graden.
- Een encoder en decoder voor de LCEVC (Low Complexity Enhancement Video Coding) coderingsstandaard is toegevoegd, die een extra laag met metadata implementeert voor het verbeteren van de kwaliteit van bestaande codecs H.26x en MP4/ISOBMFF.
- Een encoder en decoder voor het JPEG XS afbeeldingsformaat zijn toegevoegd, wat wordt gepositioneerd als een lichte afbeeldingscoderingssysteem dat minimale vertragingen biedt bij coderen en decoderen, en gericht is op het optimaliseren van de overdracht van sequenties met zeer hoge kwaliteit afbeeldingen (tot 8K). JPEG XS maakt het mogelijk om de benodigde bandbreedte van de communicatielijn aanzienlijk te verlagen zonder merkbare kwaliteitsverlies voor het menselijk oog.
- De mogelijkheid voor het vervangen en extraheren van verborgen ondertitels voor de formaten H.264 en H.265 is toegevoegd.
- De ondersteuning voor adaptieve streaming op basis van HLS (HTTP Live Streaming) en DASH (Dynamic Adaptive Streaming over HTTP) is verbeterd. Nieuwe sinks voor multimedia-gegevens, hlscmafsink en hlssink3 voor de output van CMAF-fragmenten (fMP4) en MPEG-TS zijn toegevoegd, evenals hlsmultivariantsink voor variabele output.
- De MPEG-TS multimedia container packer en unpacker heeft nu ondersteuning voor de codecs H.266, JPEG XS, AV1 en VP9, evenals de SMPTE ST-2038 en ID3 metadata.
- Er zijn packers en unpackers toegevoegd voor de codec H.266/VVC in de Matroska- en ISO MP4-formaten. In MP4 zijn unpackers toegevoegd voor video in de Hap en Lagarith format.
- Ondersteuning voor SMPTE 2038 is toegevoegd, een systeem voor het koppelen van extra gegevens en metadata aan multimedia containers.
- De integratie met de graphics API Vulkan is verbeterd. Er zijn uitbreidingen voor geheugenbeheer, kleurenschema-selectie, apparaatbeheer en fullscreen-weergave toegevoegd. Vulkan-extensies voor geaccelerde decoding van H264 en H265 video zijn toegevoegd. De prestaties van de encoder die Vulkan gebruikt, zijn verbeterd.
- De integratie met OpenGL is verbeterd. Ondersteuning voor extra kleurconversie- en pixelindelingen is toegevoegd. Ondersteuning voor het importeren van streams met behulp van DMABufs is toegevoegd.
- De integratie met de Qt6 bibliotheek en QML is verbeterd.
- Componenten voor integratie met CUDA en de NVIDIA Video Codec SDK zijn uitgebreid. Een AV1 encoder op basis van de NVCODEC API is toegevoegd.
- De gst-d3d12 bibliotheek is geĆÆmplementeerd met encoders en decoders op basis van de Direct3D 12 API.
- Ondersteuning voor het beheer van MIKEY-sleutels aan de clientzijde is toegevoegd aan de RTSP-stack.
- Ondersteuning voor het hergroeperen van audiokanalen is toegevoegd aan audioconvert.
- Ondersteuning voor OpenGL/WGL op het Windows-platform is toegevoegd aan de plugin op basis van de GTK3-bibliotheek.
- Ondersteuning voor JPEG- en PNG-formaten is toegevoegd aan het imagefreeze-element.
- In het pitch-element is de mogelijkheid voor achterwaartse weergave geĆÆmplementeerd.
- De authenticatiemechanismen op RTP-servers zijn verbeterd in het rtmp2-element. Ondersteuning voor authenticatie in de Limelight CDN is toegevoegd.
- In de plugin voor integratie met VA-API zijn elementen toegevoegd voor de geaccelererde decoding van H.266 (VVC), evenals voor de encoding van VP8 en JPEG.
- Elementen voor het werken met streams op basis van het QUIC-protocol (raw QUIC, RTP-over-QUIC en WebTransport) zijn toegevoegd.
- In de gst-plugins-rs suite zijn 23 nieuwe elementen of plugins toegevoegd, geschreven in Rust. Plugins geschreven in Rust kunnen worden gebruikt in programma's in elke taal en de werking is vergelijkbaar met het gebruik van plugins in C en C++.
Bron: opennet.ru
