Efter ett års utveckling släpptes GStreamer 1.22, en plattformsoberoende uppsättning komponenter för att skapa ett brett utbud av multimediaapplikationer, från mediaspelare och ljud-/videofilkonverterare till VoIP-applikationer och streamingsystem. GStreamer-koden är licensierad under LGPLv2.1. Separat utvecklas uppdateringar av plugin-programmen gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, såväl som gst-libav-bindningen och gst-rtsp-serverns streamingserver . På API- och ABI-nivå är den nya versionen bakåtkompatibel med 1.0-grenen. Binära sammansättningar kommer snart att förberedas för Android, iOS, macOS och Windows (i Linux rekommenderas att använda paket från distributionen).
Viktiga förbättringar i GStreamer 1.22:
- Förbättrat stöd för AV1-videokodningsformat. Lade till möjligheten att använda hårdvaruacceleration för AV1-kodning och avkodning via API:erna VAAPI/VA, AMF, D3D11, NVCODEC, QSV och Intel MediaSDK. Lade till nya RTP-hanterare för AV1. Förbättrad analys av AV1 i MP4-, Matroska- och WebM-behållare. Sammansättningarna inkluderar element med AV1-kodare och avkodare baserade på biblioteken dav1d och rav1e.
- Implementerat stöd för Qt6. Lade till qml6glsink-element, som använder Qt6 för att rendera video i en QML-scen.
- Lade till gtk4paintablesink och gtkwaylandsink-element för rendering med GTK4 och Wayland.
- Nya klienter för adaptiv streaming har lagts till som stöder HLS, DASH och MSS (Microsoft Smooth Streaming) protokoll.
- Ger möjlighet att skapa avskalade sammansättningar som är optimerade för storleksminskning.
- Lade till stöd för WebRTC simulcast och Google Congestion Control.
- En enkel och fristående plugin för att skicka via WebRTC tillhandahålls.
- Lade till en ny MP4 mediacontainer packer med stöd för fragmenterad och icke-fragmenterad data.
- Lade till nya plugins för Amazon AWS-lagring och ljudtranskriptionstjänster.
- Uppdaterade bindningar för språket Rust. Lade till 19 nya plugins, effekter och element skrivna i Rust (gst-plugins-rs). Det noteras att 33% av ändringarna i den nya GStreamer är implementerade i Rust (ändringarna gäller bindningar och plugins), och gst-plugins-rs plugin-uppsättningen är en av de mest aktivt utvecklade GStreamer-modulerna. Plugins skrivna i Rust kan användas i program på alla språk och att arbeta med dem liknar att använda plugins i C och C++.
- Rust-plugins tillhandahålls som en del av officiella binära paket för Windows- och macOS-plattformarna (montering och leverans stöds för Linux, Windows och macOS).
- En WebRTC-baserad mediaserver skriven i Rust har implementerats, som stöder WHIP (WebRTC HTTP intag) och WHEP (WebRTC HTTP egress).
- Lade till videocolorscale-elementet, som kombinerar videokonvertering och skalningsmöjligheter.
- Förbättrat stöd för video med högt färgdjup.
- Lade till stöd för pekskärmshändelser till Navigation API.
- Lade till H.264/H.265 tidsstämpelkorrigeringselement för PTS/DTS-rekonstruktion innan förpackning av mediabehållare.
- På Linux-plattformen har användningen av DMA förbättrats för att fungera tillsammans med buffertar vid kodning, avkodning, filtrering och rendering av video med hårdvaruacceleration.
- Integration med CUDA har förbättrats: gst-cuda-biblioteket och cudaconvertscale-elementet har lagts till, integration med D3D11 och NVIDIA dGPU NVMM-element har tillhandahållits.
- Integration med Direct3D11 har förbättrats: ett nytt gst-d3d11-bibliotek har lagts till, funktionerna för plugin-programmen d3d11screencapture, d3d11videosink, d3d11convert och d3d11compositor har utökats.
- För AMD GPU:er implementeras nya hårdvaruaccelererade videokodare i formaten H.264/AVC, H.265/HEVC och AV1, byggda med AMF (Advanced Media Framework) SDK.
- Applemedia-pluginet har lagt till stöd för H.265/HEVC-videokodning och avkodning.
- Lade till stöd för H.265/HEVC-videokodning till androidmedia-plugin.
- Force-live-egenskapen har lagts till audiomixer, compositor, glvideomixer och d3d11compositor plugins för att tvinga liveläget att aktiveras.
Källa: opennet.ru