Efter et års udvikling er GStreamer 1.22 blevet frigivet, et multiplatform sæt af komponenter til at skabe et bredt spektrum af multimediapplikationer, fra medieafspillere og konvertere af audio/video-filer til VoIP-applikationer og streaming-systemer. Koden for GStreamer distribueres under LGPLv2.1-licensen. Opdateringer til plugins som gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, samt bindingen gst-libav og streamingserveren gst-rtsp-server udvikles separat. På API- og ABI-niveau er den nye version bagudkompatibel med 1.0-grenen. Binære builds vil snart blive forberedt til Android, iOS, macOS og Windows (da det anbefales at bruge pakker fra distributionen i Linux).
Nøgleforbedringer i GStreamer 1.22:
- Understøttelsen af videokodningsformatet AV1 er forbedret. Der er tilføjet muligheden for at bruge hardwareacceleration til kodning og dekodning af AV1 via VAAPI/VA, AMF, D3D11, NVCODEC, QSV og Intel MediaSDK. Der er tilføjet nye RTP-håndterere til AV1. Parsing af AV1 i MP4, Matroska og WebM containere er forbedret. Builds inkluderer elementer med AV1-kodere og decodere baseret på bibliotekerne dav1d og rav1e.
- Understøttelse af Qt6 er blevet implementeret. Elementet qml6glsink er tilføjet, som bruger Qt6 til at gengive video inden i QML-scenen.
- Elementerne gtk4paintablesink og gtkwaylandsink er tilføjet til gengivelse ved hjælp af GTK4 og Wayland.
- Der er tilføjet nye klienter til adaptiv streaming, der understøtter protokollerne HLS, DASH og MSS (Microsoft Smooth Streaming).
- Der er mulighed for at oprette skræddersyede builds, der er optimeret til at reducere størrelsen.
- Understøttelse af WebRTC simulcast og Google Congestion Control er blevet tilføjet.
- Der er givet en simpel og selvstændig plugin til sending via WebRTC.
- Der er tilføjet en ny MP4 containerpackager med støtte til fragmenterede og ikke-fragmenterede data.
- Nye plugins til Amazon AWS-lagring og lydtranskriptionstjenester er blevet tilføjet.
- Bindings til Rust-sproget er blevet opdateret. 19 nye plugins, effekter og elementer skrevet på Rust (gst-plugins-rs) er blevet tilføjet. Det bemærkes, at 33% af ændringerne i den nye GStreamer er implementeret i Rust (ændringer vedrører bindinger og plugins), og sættet af plugins gst-plugins-rs er en af de mest aktivt udviklede moduler i GStreamer. Plugins skrevet på Rust kan bruges i programmer på ethvert sprog, og arbejdet med dem er tilsvarende brugen af plugins i C og C++.
- Plugins til Rust er tilgængelige som en del af de officielle binære pakker til Windows og macOS (opbygning og levering understøttes for Linux, Windows og macOS).
- En Rust-baseret medieserver er implementeret med WebRTC, der understøtter WHIP (WebRTC HTTP ingest) og WHEP (WebRTC HTTP egress).
- Elementet videocolorscale er tilføjet, som kombinerer muligheder for konvertering og skalering af video.
- Understøttelsen af video med høj farvedybde er forbedret.
- Support til berøringsskærmsevents er tilføjet i Navigation API'en.
- Elementer til tidsstempelkorrektion H.264/H.265 er tilføjet for at rekonstruere PTS/DTS før pakkeforsegling af mediekontainere.
- DMA-implementeringen på Linux-platformen er forbedret for samarbejde med buffere under kodning, dekodning, filtrering og rendering af video med hardware acceleration.
- Integration med CUDA er forbedret: biblioteket gst-cuda og elementet cudaconvertscale er tilføjet, samt integration med D3D11-elementer og NVIDIA dGPU NVMM.
- Integration med Direct3D11 er forbedret: et nyt bibliotek gst-d3d11 er tilføjet, og mulighederne for d3d11screencapture, d3d11videosink, d3d11convert og d3d11compositor er udvidet.
- Der er blevet implementeret nye hardwareaccelererede videokodere til AMD GPU'er i formaterne H.264/AVC, H.265/HEVC og AV1, bygget med AMF (Advanced Media Framework) SDK.
- Plugin'et applemedia har fået tilføjet support for kodning og dekodning af H.265/HEVC video.
- Plugin'et androidmedia har fået tilføjet support for kodning af H.265/HEVC video.
- Der er tilføjet egenskaben force-live til audioMixer, compositor, glvideomixer og d3d11compositor for at tvinge live-tilstand til at være aktiv.
Kilde: opennet.ru
