Efter et års udvikling blev GStreamer 1.22 frigivet, et sæt af komponenter på tværs af platforme til at skabe en bred vifte af multimedieapplikationer, fra medieafspillere og lyd-/videofilkonvertere til VoIP-applikationer og streamingsystemer. GStreamer-koden er licenseret under LGPLv2.1. Separat udvikles opdateringer til gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly plugins, såvel som gst-libav-bindingen og gst-rtsp-server-streamingserveren . På API- og ABI-niveau er den nye udgivelse bagudkompatibel med 1.0-grenen. Binære samlinger vil snart blive forberedt til Android, iOS, macOS og Windows (i Linux anbefales det at bruge pakker fra distributionen).
Vigtigste forbedringer i GStreamer 1.22:
- Forbedret understøttelse af AV1-videokodningsformat. Tilføjet muligheden for at bruge hardwareacceleration til AV1-kodning og afkodning via VAAPI/VA, AMF, D3D11, NVCODEC, QSV og Intel MediaSDK API'er. Tilføjet nye RTP-handlere til AV1. Forbedret parsing af AV1 i MP4, Matroska og WebM containere. Samlingerne inkluderer elementer med AV1-kodere og -dekodere baseret på dav1d- og rav1e-bibliotekerne.
- Implementeret support til Qt6. Tilføjet qml6glsink-element, som bruger Qt6 til at gengive video inde i en QML-scene.
- Tilføjet gtk4paintablesink og gtkwaylandsink elementer til gengivelse ved hjælp af GTK4 og Wayland.
- Der er tilføjet nye klienter til adaptiv streaming, der understøtter HLS, DASH og MSS (Microsoft Smooth Streaming) protokoller.
- Giver mulighed for at skabe afisolerede samlinger, der er optimeret til størrelsesreduktion.
- Tilføjet understøttelse af WebRTC simulcast og Google Congestion Control.
- Et enkelt og selvstændigt plugin til afsendelse via WebRTC leveres.
- Tilføjet en ny MP4-mediebeholderpakker med understøttelse af fragmenterede og ikke-fragmenterede data.
- Tilføjet nye plugins til Amazon AWS-lagring og lydtransskriptionstjenester.
- Opdaterede bindinger til Rust-sproget. Tilføjet 19 nye plugins, effekter og elementer skrevet i Rust (gst-plugins-rs). Det bemærkes, at 33% af ændringerne i den nye GStreamer er implementeret i Rust (ændringerne vedrører bindinger og plugins), og gst-plugins-rs plugin-sættet er et af de mest aktivt udviklede GStreamer-moduler. Plugins skrevet i Rust kan bruges i programmer på ethvert sprog, og arbejdet med dem svarer til at bruge plugins i C og C++.
- Rust-plugins leveres som en del af officielle binære pakker til Windows- og macOS-platformene (montering og levering er understøttet til Linux, Windows og macOS).
- En WebRTC-baseret medieserver skrevet i Rust er blevet implementeret, der understøtter WHIP (WebRTC HTTP-indtagelse) og WHEP (WebRTC HTTP-udgang).
- Tilføjet videocolorscale-elementet, som kombinerer videokonverterings- og skaleringsmuligheder.
- Forbedret understøttelse af video med høj farvedybde.
- Tilføjet understøttelse af berøringsskærmhændelser til Navigation API.
- Tilføjet H.264/H.265 tidsstempelkorrektionselementer til PTS/DTS-rekonstruktion før emballering af mediebeholdere.
- På Linux-platformen er brugen af DMA blevet forbedret til at fungere sammen med buffere ved kodning, afkodning, filtrering og gengivelse af video ved hjælp af hardwareacceleration.
- Integration med CUDA er blevet forbedret: gst-cuda-biblioteket og cudaconvertscale-elementet er blevet tilføjet, integration med D3D11 og NVIDIA dGPU NVMM-elementer er blevet leveret.
- Integration med Direct3D11 er blevet forbedret: et nyt gst-d3d11 bibliotek er blevet tilføjet, mulighederne for d3d11screencapture, d3d11videosink, d3d11convert og d3d11compositor plugins er blevet udvidet.
- For AMD GPU'er er nye hardwareaccelererede videokodere i H.264 / AVC, H.265 / HEVC og AV1-formater implementeret, bygget ved hjælp af AMF (Advanced Media Framework) SDK.
- Applemedia-plugin'et har tilføjet understøttelse af H.265/HEVC-videokodning og -afkodning.
- Tilføjet understøttelse af H.265/HEVC-videokodning til androidmedia plugin.
- Force-live-egenskaben er blevet tilføjet til audiomixer-, compositor-, glvideomixer- og d3d11compositor-plugins for at tvinge live-tilstanden til at blive aktiveret.
Kilde: opennet.ru