Po téměř roce vývoje byl představen vydání GStreamer 1.28, multiplatformního souboru 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 aplikace VoIP a systémy streamování. Kód GStreamer se distribuuje pod licencí LGPLv2.1. Samostatně jsou vyvíjeny aktualizace pluginů gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, stejně jako obálka gst-libav a server streamování gst-rtsp-server. Na úrovni API a ABI je nové vydání zpětně kompatibilní s větví 1.0. Binarni 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.28:
- Byl přidán nový plugin HIP (Heterogeneous-computing Interface for Portability) pro podporu rozvíjeného rozhraní pro heterogenní výpočty ze společnosti AMD, ve kterých kromě CPU používají prostředky paralelního výpočtu GPU. HIP usnadňuje implementaci podpory různých GPU v jedné kódové základně (pro provádění na GPU AMD se používá stack ROCm a na GPU NVIDIA vrstva pro překlad do CUDA). Plugin poskytuje komponenty implementované pomocí HIP pro provádění takových operací, jako je míchání videa, převody z jednoho barevného prostoru do druhého, změna velikosti videa a organizace výměny dat mezi systémovou pamětí a video pamětí. Dále byla připravena knihovna pro integraci podpory HIP do aplikací.
- Byla přidána podpora standardu kódování videa LCEVC (Low Complexity Enhancement Video Coding), která realizuje další vrstvu s metadaty pro zlepšení kvality videa nad běžnými kodeky H.265 a H.266. Implementace kódovače a dekodéra LCEVC je založena na knihovnách ze SDK V-Nova.
- Byla přidána podpora funkcí grafického API Vulkan pro urychlení dekódování videa ve formátech AV1 a VP9, jakož i kódování videa v formátu H.264. Do video dekodéru H.265 založeného na Vulkan byla přidána podpora hloubky barev s 10 bity na kanál.
- Ve prvku gtkwaylandsink, určeném pro vykreslování pomocí GTK4 a Wayland, byly rozšířeny možnosti pro práci s barvou, například byla přidána podpora analýzy a nastavení metadat HDR10.
- Přidán nový prvek pro oddělení zvukových zdrojů (například oddělení hlasu a pozadí hudby), založený na knihovně charon-audio, která implementuje metodu Demucs v jazyce Rust. Dále byl přidán plugin Deepgram pro rozpoznávání řeči, napsaný v Rustu.
- Rozšířeny možnosti analýzy a rozpoznávání objektů. Přidány prvky pro spojování a oddělování analýzy. Implementovány klasifikátor tensor-decoder, detektor obličeje facedetector, detektor objektů YOLOv8, prvek pro vykonávání a dekodér pro model rozpoznávání objektů YOLOX. Přidán prvek tensordecodebin pro automatické připojení dekodérů a prvek pro vykonávání AI modelů pomocí LiteRT (na místo TensorFlow Lite).
- Přidán nový prvek pro dekódování GIF obrázků, napsaný v Rust a podporující cyklickou animaci.
- V prvku input-selector byl realizován dvoufázový mechanismus přepínání mezi vstupními proudy (sinkpad), který vylučuje vznik závodního stavu při přepínání.
- Do prvku webrtcsink byla přidána podpora hardwarového urychlení kódování pomocí VA-API a možnost opětovného ujednání spojení.
- Přidány prvky pro kombinování a extrakci proudů ve formátu standardu televizního vysílání ST-2038.
- Do prvku fallbacksrc byla přidána podpora kódovaných proudů.
- V multimediálním kontejneru FLV, používaném pro RTMP vysílání, byla vylepšena podpora videa H.265 a přidána podpora vícestopého zvuku.
- Do prvku glupload byla přidána podpora nahrávače na bázi udmabuf, který umožňuje sdílení buferů mezi softwarem dekodéry/zdroji a GPU, zobrazovacími enginy (wayland) a dalšími zařízeními.
- Přidán prvek qml6 pro vykreslování pomocí Qt6 QML.
- Do knihovny pro práci s videem byly přidány operace pro ořezávání, změnu velikosti, otáčení a posun.
- Přidán objekt GstContext, který dovoluje použití sdíleného poolu vláken při vykonávání prvků pro zvýšení výkonu takových operací, jakými jsou kompozice a transformace videa.
- Přidán prvek icecastsink pro příjem proudů z IceCast, podporující formát AAC a napsaný v Rustu.
- Přidán nový prvek pro klonování hlasu ElevenLabs.
- Do syntetizátoru řeči byl přidán režim pro zrychlené přehrávání při zachování výšky tónu.
- Byl přidán prvek vmaf pro hodnocení vnímání kvality videa s využitím frameworku VMAF od Netflixu.
- Byl přidán nový zvukový dekodér MPEG-H, založený na dekodéru Fraunhofer MPEG-H, který podporuje dekompresi multimediálních kontejnerů MP4.
- Rozšířena podpora skrytých titulků (CC — Closed Captions) a zpracování textu.
Zdroj: opennet.ru
