Dopo un anno di sviluppo, è stato rilasciato GStreamer 1.22, un insieme di componenti multipiattaforma per la creazione di una vasta gamma di applicazioni multimediali, dai media player e convertitori di file audio/video, alle applicazioni VoIP e ai sistemi di streaming. Il codice di GStreamer è distribuito con licenza LGPLv2.1. Sono sviluppati separatamente aggiornamenti per i plugin gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, oltre alla libreria gst-libav e al server di streaming gst-rtsp-server. A livello di API e ABI, la nuova versione è compatibile con la branch 1.0. Le build binarie saranno presto disponibili per Android, iOS, macOS e Windows (su Linux è consigliato utilizzare i pacchetti del proprio sistema operativo).
Miglioramenti principali di GStreamer 1.22:
- Migliorato il supporto per il formato di codifica video AV1. Aggiunta la possibilità di utilizzare l'accelerazione hardware per la codifica e decodifica AV1 attraverso le API VAAPI/VA, AMF, D3D11, NVCODEC, QSV e Intel MediaSDK. Aggiunti nuovi gestori RTP per AV1. Migliorata la decodifica AV1 nei contenitori MP4, Matroska e WebM. Nelle build sono inclusi elementi con encoder e decoder AV1 basati sulle librerie dav1d e rav1e.
- Implementato il supporto per Qt6. Aggiunto l'elemento qml6glsink, che utilizza Qt6 per il rendering video all'interno della scena QML.
- Aggiunti gli elementi gtk4paintablesink e gtkwaylandsink per il rendering utilizzando GTK4 e Wayland.
- Aggiunti nuovi client per lo streaming adattivo, che supportano i protocolli HLS, DASH e MSS (Microsoft Smooth Streaming).
- Fornita la possibilità di creare build snellite, ottimizzate per ridurre le dimensioni.
- Aggiunto il supporto per WebRTC simulcast e Google Congestion Control.
- Fornito un plugin semplice e autonomo per l'invio tramite WebRTC.
- Aggiunto un nuovo imballatore di contenitori multimediali MP4 con supporto per dati frammentati e non frammentati.
- Aggiunti nuovi plugin per lo storage di Amazon AWS e i servizi di trascrizione audio.
- Aggiornate le binding per il linguaggio Rust. Aggiunti 19 nuovi plugin, effetti ed elementi scritti in Rust (gst-plugins-rs). Si nota che il 33% delle modifiche nel nuovo GStreamer sono implementate in Rust (le modifiche riguardano le binding e i plugin), e il set di plugin gst-plugins-rs è uno dei moduli di GStreamer più attivamente sviluppati. I plugin scritti in Rust possono essere utilizzati in programmi in qualsiasi linguaggio e il loro utilizzo è simile a quello dei plugin in C e C++.
- Fornita la distribuzione dei plugin in Rust all'interno dei pacchetti binari ufficiali per le piattaforme Windows e macOS (la compilazione e la distribuzione sono supportate per Linux, Windows e macOS).
- Implementato un server multimediale scritto in Rust basato su WebRTC, che supporta WHIP (WebRTC HTTP ingest) e WHEP (WebRTC HTTP egress).
- Aggiunto l'elemento videocolorscale, che combina funzionalità per la conversione e scalatura video.
- Migliorato il supporto per video con alta profondità di colore.
- Nell'API Navigation aggiunto il supporto per eventi da schermi tattili.
- Aggiunti elementi di correzione dei timestamp H.264/H.265 per la ricostruzione dei PTS/DTS prima dell'imballaggio dei contenitori multimediali.
- Sulla piattaforma Linux migliorato l'uso del DMA per la cooperazione con i buffer durante la codifica, decodifica, filtraggio e rendering video con accelerazione hardware.
- Migliorata l'integrazione con CUDA: aggiunta la libreria gst-cuda e l'elemento cudaconvertscale, è stata garantita l'integrazione con gli elementi D3D11 e NVIDIA dGPU NVMM.
- Migliorata l'integrazione con Direct3D11: aggiunta una nuova libreria gst-d3d11, ampliate le funzionalità dei plugin d3d11screencapture, d3d11videosink, d3d11convert e d3d11compositor.
- Per le GPU AMD implementati nuovi encoder video accelerati hardware nei formati H.264/AVC, H.265/HEVC e AV1, costruiti utilizzando l'SDK AMF (Advanced Media Framework).
- Nel plugin applemedia aggiunto il supporto per la codifica e decodifica video H.265/HEVC.
- Nel plugin androidmedia aggiunto il supporto per la codifica video H.265/HEVC.
- Nei plugin audiomixer, compositor, glvideomixer e d3d11compositor aggiunta la proprietà force-live per forzare l'attivazione della modalità live.
Fonte: opennet.ru
