Po roce vývoje byl vydán GStreamer 1.22, multiplatformní soubor komponentů pro vytváření široké škály multimediálních aplikací, od mediálních přehrávačů a konvertorů audio/video souborů až po VoIP aplikace a systémy pro streamování. Kód GStreamer je distribuován pod licencí LGPLv2.1. Samostatně se vyvíjejí aktualizace pluginů gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, a také obal gst-libav a server streamování gst-rtsp-server. Na úrovni API a ABI je nová verze zpětně kompatibilní s větví 1.0. Binární sestavení budou brzy připravena pro Android, iOS, macOS a Windows (na Linuxu se doporučuje používat balíčky z distribuce).
Klíčová vylepšení GStreamer 1.22:
- Byla zlepšena podpora video kodovacího formátu AV1. Přidána možnost použití hardwarového akcelerace kódování a dekódování AV1 prostřednictvím API VAAPI/VA, AMF, D3D11, NVCODEC, QSV a Intel MediaSDK. Byly přidány nové RTP zpracovatele pro AV1. Byla vylepšena analýza AV1 v kontejnerových formátech MP4, Matroska a WebM. Sestavy obsahují prvky s kodéry a dekodéry AV1 založené na knihovnách dav1d a rav1e.
- Byla implementována podpora pro Qt6. Přidán prvek qml6glsink, který používá Qt6 pro vykreslování videa uvnitř scény QML.
- Byly přidány prvky gtk4paintablesink a gtkwaylandsink pro vykreslování pomocí GTK4 a Wayland.
- Byli přidáni noví klienti pro adaptivní streamování, kteří podporují protokoly HLS, DASH a MSS (Microsoft Smooth Streaming).
- Byla poskytnuta možnost vytváření zkrácených sestavení, optimalizovaných pro zmenšení velikosti.
- Byla přidána podpora pro WebRTC simulcast a Google Congestion Control.
- Byl poskytnut jednoduchý a soběstačný plugin pro odesílání prostřednictvím WebRTC.
- Byl přidán nový obalovač mediakontejnerů MP4 s podporou fragmentovaných a nefragmentovaných dat.
- Byly přidány nové pluginy pro úložiště Amazon AWS a zvukové transkripční služby.
- Byly aktualizovány vazby pro jazyk Rust. Bylo přidáno 19 nových pluginů, efektů a prvků napsaných v Rustu (gst-plugins-rs). Je zaznamenáno, že 33 % z změn v novém GStreamer je realizováno v Rustu (změny se týkají vazeb a pluginů), přičemž sada pluginů gst-plugins-rs je jedním z nejaktivněji vyvíjených modulů GStreamer. Pluginy napsané v jazyce Rust mohou být použity v programech v jakémkoli jazyce a práce s nimi je podobná použití pluginů v C a C++.
- Zajištění dodávky pluginů pro Rust v oficiálních binárních balíčcích pro platformy Windows a macOS (sestavení a dodávky jsou podporovány pro Linux, Windows a macOS).
- Byl realizován mediální server napsaný v Rustu na základě WebRTC, podporující WHIP (WebRTC HTTP ingest) a WHEP (WebRTC HTTP egress).
- Byl přidán prvek videocolorscale, který kombinuje možnosti konverze a škálování videa.
- Byla vylepšena podpora videa s vysokou barevnou hloubkou.
- Do API Navigation byla přidána podpora událostí z dotykových obrazovek.
- Byly přidány prvky oprav časových značek H.264/H.265 pro rekonstrukci PTS/DTS před zabalením mediálních kontejnerů.
- Na platformě Linux bylo vylepšeno využití DMA pro spolupráci s buffery při kódování, dekódování, filtrování a vykreslování videa s využitím hardwarového zrychlení.
- Byla vylepšena integrace s CUDA: přidána knihovna gst-cuda a prvek cudaconvertscale, zajištěna integrace s prvky D3D11 a NVIDIA dGPU NVMM.
- Byla vylepšena integrace s Direct3D11: přidána nová knihovna gst-d3d11, rozšířeny možnosti pluginů d3d11screencapture, d3d11videosink, d3d11convert a d3d11compositor.
- Pro GPU AMD byly realizovány nové hardwarově akcelerované kodéry videa ve formátech H.264/AVC, H.265/HEVC a AV1, postavené pomocí SDK AMF (Advanced Media Framework).
- Do pluginu applemedia byla přidána podpora kódování a dekódování videa H.265/HEVC.
- Do pluginu androidmedia byla přidána podpora kódování videa H.265/HEVC.
- Do pluginů audiomixer, compositor, glvideomixer a d3d11compositor byla přidána vlastnost force-live pro povinné zapnutí režimu live.
Zdroj: opennet.ru
