Na een jaar ontwikkeling is de release van GStreamer 1.22, een cross-platform set van componenten voor het creëren van een breed scala aan multimedia-applicaties, van mediaplayers en audio/video-converters tot VoIP-applicaties en streamingdiensten. De GStreamer-code wordt verspreid onder de LGPLv2.1-licentie. Updates van 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 apart ontwikkeld. Op het niveau van API en ABI is de nieuwe release achterwaarts compatibel met de 1.0-tak. Binaire builds zullen binnenkort beschikbaar zijn voor Android, iOS, macOS en Windows (in Linux is het aanbevolen om pakketten uit de distributie te gebruiken).
Belangrijke verbeteringen in GStreamer 1.22:
- Verbeterde ondersteuning voor de AV1 video-encoding formaat. Ondersteuning voor hardwareversnelling van AV1 encoding en decoding is toegevoegd via de API's VAAPI/VA, AMF, D3D11, NVCODEC, QSV en Intel MediaSDK. Nieuwe RTP-handlers voor AV1 zijn toegevoegd. De AV1-analyse in MP4-, Matroska- en WebM-containers is verbeterd. De builds bevatten elementen met AV1 encoders en decoders op basis van de libraries dav1d en rav1e.
- Ondersteuning voor Qt6 is geïmplementeerd. Een nieuw element qml6glsink is toegevoegd, dat Qt6 gebruikt om video weer te geven binnen de QML-scène.
- Nieuwe elementen gtk4paintablesink en gtkwaylandsink zijn toegevoegd voor rendering met GTK4 en Wayland.
- Nieuwe clients voor adaptieve streaming zijn toegevoegd, die de protocollen HLS, DASH en MSS (Microsoft Smooth Streaming) ondersteunen.
- De mogelijkheid om afgeslankte builds te creëren die zijn geoptimaliseerd om de bestandsgrootte te verkleinen is geboden.
- Ondersteuning voor WebRTC simulcast en Google Congestion Control is toegevoegd.
- Een eenvoudige en autonome plugin voor verzending via WebRTC is aangeboden.
- Een nieuwe MP4-media container packer is toegevoegd met ondersteuning voor gefragmenteerde en niet-gefragmenteerde gegevens.
- Nieuwe plugins voor Amazon AWS storage en audiotranscriptie services zijn toegevoegd.
- De bindingen voor de Rust-taal zijn bijgewerkt. 19 nieuwe plugins, effecten en elementen geschreven in Rust (gst-plugins-rs) zijn toegevoegd. Het is opgemerkt dat 33% van de veranderingen in de nieuwe GStreamer zijn gerealiseerd in Rust (de veranderingen betreffen de bindingen en plugins), en de gst-plugins-rs set van plugins is een van de meest actief ontwikkelde modules van GStreamer. Plugins geschreven in Rust kunnen worden gebruikt in programma's in elke taal en het werken ermee is vergelijkbaar met het gebruik van plugins in C en C++.
- De levering van plugins voor Rust is verzekerd als onderdeel van de officiële binaire pakketten voor de Windows- en macOS-platforms (de build en levering worden ondersteund voor Linux, Windows en macOS).
- Er is een op Rust gebaseerde mediaserver geïmplementeerd op basis van WebRTC, die WHIP (WebRTC HTTP ingest) en WHEP (WebRTC HTTP egress) ondersteunt.
- Er is een videocolorscale-element toegevoegd dat mogelijkheden biedt voor video-conversie en -schaling.
- De ondersteuning voor video met een hoge kleurendiepte is verbeterd.
- In de Navigation API is ondersteuning voor gebeurtenissen van aanraakschermen toegevoegd.
- Er zijn elementen voor het corrigeren van tijdstempels van H.264/H.265 toegevoegd voor het reconstrueren van PTS/DTS vóór het verpakken van multimedia-containers.
- Op het Linux-platform is de toepassing van DMA verbeterd voor samenwerking met buffers bij het coderen, decoderen, filteren en renderen van video met hardwareversnelling.
- De integratie met CUDA is verbeterd: de gst-cuda bibliotheek en het cudaconvertscale-element zijn toegevoegd, evenals integratie met D3D11-elementen en NVIDIA dGPU NVMM.
- De integratie met Direct3D11 is verbeterd: er is een nieuwe gst-d3d11 bibliotheek toegevoegd en de mogelijkheden van de d3d11screencapture, d3d11videosink, d3d11convert en d3d11compositor plugins zijn uitgebreid.
- Voor AMD GPU's zijn er nieuwe hardwareversnelde video-encoders geïmplementeerd in de formaten H.264/AVC, H.265/HEVC en AV1, gebouwd met behulp van de SDK AMF (Advanced Media Framework).
- In de applemedia plugin is ondersteuning voor H.265/HEVC video-encoding en -decoding toegevoegd.
- In de androidmedia plugin is ondersteuning voor H.265/HEVC video-encoding toegevoegd.
- In de plugins audiomixer, compositor, glvideomixer en d3d11compositor is de eigenschap force-live toegevoegd voor het afdwingen van de live-modus.
Bron: opennet.ru
