Sviluppato da | Freedesktop.org |
---|---|
Prima versione | Giugno 1999 |
Ultima versione | 1.18.4 (15 marzo 2021) |
Depositare | gitlab.freedesktop.org/gstreamer/gstreamer.git |
Stato del progetto | In sviluppo |
Scritto in | VS |
Sistema operativo | Multi piattaforma |
Leggi i formati | Formato sistemi avanzati , Audio Video Interleave , 3GPP ( d ) , Quicktime File ( en ) , FLV ( d ) , MPEG Transport Stream , Matroska , WebM , Material Exchange Format e Ogg |
Le lingue | Multilingue |
genere | Framework multimediale |
Politica di distribuzione | Gratuito |
Licenza | GNU Lesser General Public License 2.0 o successivo ( d ) |
Documentazione | gstreamer.freedesktop.org/documentation/index.html |
Sito web | gstreamer.freedesktop.org |
GStreamer è una libreria di software per la manipolazione di suoni e immagini (chiamata anche framework multimediale ) scritta in C e distribuita con licenza gratuita .
Sviluppato inizialmente per offrire una soluzione in grado di competere con QuickTime e DirectShow su GNU / Linux , la sua prima versione pubblica risale al31 ottobre 1999.
Il lavoro sulla sincronizzazione video e audio del suo autore, gli ha permesso di implementare questa parte in PipeWire , un gestore di flussi multimediali per Linux, che unificherà le API dei gestori audio con JACK , bassa latenza, professionale orientato all'audio e più desktop- PulseAudio orientato, così come i flussi video. In cambio, questi contributi consentono di alleggerire la gestione della sincronizzazione di Gstreamer.
Da allora è stato portato su un'ampia varietà di sistemi operativi diversi da GNU / Linux , come BSD , OpenSolaris , Android , OS X , iOS , Windows , OS / 400 .
È un progetto mantenuto all'interno di Freedesktop.org .
GStreamer è stato rapidamente adottato dal progetto GNOME (dalla versione 2.2 di quest'ultimo, rilasciata inFebbraio 2003) di cui è diventato un pilastro ( Totem , Rhythmbox , Epiphany e Pitivi , ad esempio, ne traggono grande beneficio).
È anche usato da Phonon , il livello di astrazione multimediale di KDE4 .
Ha poi iniziato ad essere utilizzato su Windows e MacOS : è così che Songbird si è basato su di esso per offrire versioni che funzionano su queste diverse piattaforme, così come Opera si è basato su di esso per visualizzare l'elemento video HTML5 su Windows, GNU / Linux e FreeBSD (da versione 10.5 e, a quanto pare, fino all'abbandono del motore di rendering web di casa Presto a favore di Blink).
Anche WebOS usa questo.
Per facilitare gli usi commerciali di GStreamer, Fluendo (en) e Collabora (en) hanno lavorato insieme per creare un SDK multipiattaforma ( GNU / Linux , Windows e Mac OS X per la prima versione chiamata Amazon che è stata rilasciata su7 giugno 2012, poi Android con la versione Brahmaputra rilasciata su28 novembre 2012e iOS con la versione Congo rilasciata il12 giugno 2013). Da allora, l'SDK ha continuato ad essere aggiornato insieme a GStreamer stesso.
GStreamer si basa su un'operazione di pipeline che ricorda i tubi sotto Unix: gli elementi sono collegati tra loro tramite tubi. Ma con GStreamer, il tipo di flusso che passa attraverso una pipe è noto agli elementi (il formato di output e di input non deve essere specificato in ogni elemento). Puoi anche duplicare un flusso con il comando tee.
Ecco una pipeline che consentirà la riproduzione del file audio "my_son.ogg" - costituito da un suono compresso con il codec Vorbis e presentato in un formato contenitore Ogg - utilizzando il server audio PulseAudio (in questo esempio, "filesrc" usato per dichiarare il file sorgente, "oggdemux" consente il demultiplexing (nel) file, "vorbisdec" decodifica e "pulsesink" per inviare il risultato a PulseAudio)
gst-launch filesrc location=mon_son.ogg ! oggdemux ! vorbisdec ! pulsesinkL'esempio precedente può essere semplificato lasciando che sia GStreamer stesso a rilevare la natura del contenitore e del codec, utilizzando il plug-in "decodebin":
gst-launch filesrc location=mon_son.ogg ! decodebin ! pulsesinkÈ anche possibile consentire a GStreamer di rilevare il server audio stesso utilizzando il plug-in "autoaudiosink":
gst-launch filesrc location=mon_son.ogg ! decodebin ! autoaudiosink Riproduzione di un file audio-videoEcco una pipeline che permetterà la riproduzione del file audio-video WebM "my_video.webm" (in questo esempio, al plugin "decodebin" viene dato un nome qualsiasi - qui "foo" - per poter essere riutilizzato da ogni pipe - uno per elaborare il flusso video, l'altro per elaborare il flusso audio - che viene messo in attesa utilizzando il plug-in "coda" in modo che entrambe le parti vengano riprodotte contemporaneamente):
gst-launch filesrc location=ma_vidéo.webm ! decodebin name=foo \ foo. ! queue ! autovideosink \ foo. ! queue ! autoaudiosink Transcodifica di un file audio-videoEcco una pipeline che consentirà la transcodifica di un file MP4 (generalmente contenente una parte video compressa con il codec H.264 e una parte audio compressa con il codec AAC , ma è irrilevante in questo esempio in cui lasciamo il plugin "Decodebin "prenditi cura di tutto questo come abbiamo visto in precedenza) nel file ogv associando i codec Vorbis e Theora rispettivamente per audio e video (al plugin" decodebin "viene nuovamente dato un nome," foo ", in modo che possa essere riutilizzato in ciascuno dei i tubi audio e video, nonché il plugin “oggmux” che per l'occasione prende il nome “bar” e che permetterà il multiplexing delle parti audio e video):
gst-launch filesrc location=ma_vidéo.mp4 ! decodebin name=foo \ foo. ! queue ! vorbisenc ! oggmux name=bar \ foo. ! queue ! theoraenc ! bar. \ bar. ! filesink location=ma_vidéo.ogvGStreamer adotta un sistema di plugin raggruppati sotto i nomi "Buono", "Cattivo" e "Brutto" a seconda del supporto che viene loro concesso, supporto che viene definito in base alla qualità del plugin stesso, della sua licenza e di altri. cose :
Per la cronaca, questa denominazione in "Good", "Bad" e "Ugly" è ispirata al titolo inglese di un famoso film di Sergio Leone: The Good, the Bad and the Ugly ( The Good, the Bad and the Ugly ).
La libreria GStreamer Editing Services è stata sviluppata su GStreamer per fornire un'interfaccia di programmazione semplificata per le operazioni di editing multimediale, e in particolare l'editing non lineare incluso l'editing video non lineare.
Per essere precisi, GStreamer Editing Services si affida a Non-Linear Engine (il successore di GNonLin) che a sua volta si affida a GStreamer per questo scopo.
Non-Linear Engine è indipendente dai media e non ha il concetto di editing video. Non-Linear Engine è fondamentalmente costituito da alcuni plug -in thread-safe per GStreamer che consentono operazioni di composizione e missaggio e anche la conversione dinamica della traccia di modifica di un progetto in una pipeline per GStreamer.
Dalla versione 0.91, Pitivi è basato su GES.
Il progetto inizia come prova di concetto inGiugno 1999, con il rilascio della versione 0.0.1. Il11 gennaio 2001, il progetto pubblica la sua prima versione reale, la 0.1.0.
Nel Luglio 2002è stata rilasciata la versione 0.4.0, che è anche la prima versione ad essere integrata nel progetto GNOME . Con la versione 0.6.0 rilasciata in data2 febbraio 2003, il progetto ritiene che il supporto audio sia finalmente completamente funzionante.
La serie 0.8 è stata lanciata nel Marzo 2004, rapidamente seguito dalla serie 0.10, lanciata in dicembre 2005, che è un vero segno della maturità del framework .
Versione 1.0, rilasciata il 24 settembre 2012, riesce finalmente alla versione 0.10. Questa versione è studiata per poter coesistere con la precedente sullo stesso sistema in modo da facilitare il passaggio.
Versione 1.2, rilasciata il 24 settembre 2013, In particolare l'accelerazione supporti hardware dal processore grafico di decodifica o codifica video per alcuni codec e processori (tramite il gstreamer- VAAPI biblioteca ).
La versione 1.4, tra le altre cose, corregge il supporto per il formato MPEG-TS .
A partire dalla versione 1.6, rilasciata il 25 settembre 2015, Non-Linear Engine (NLE) sostituisce GNonLin.