Dezvoltat de | Freedesktop.org |
---|---|
Prima versiune | Iunie 1999 |
Ultima versiune | 1.18.4 (15 martie 2021) |
Depozit | gitlab.freedesktop.org/gstreamer/gstreamer.git |
Starea proiectului | În dezvoltare |
Scris in | VS |
Sistem de operare | Multiplatform |
Citiți formatele | Format sisteme avansate , intercalare audio video , 3GPP ( d ) , fișier Quicktime ( ro ) , FLV ( d ) , flux MPEG Transport , Matroska , WebM , format de schimb de materiale și Ogg |
Limbi | Multilingv |
Tip | Cadrul multimedia |
Politica de distribuție | Gratuit |
Licență | GNU Lesser General Public License 2.0 sau o versiune ulterioară ( d ) |
Documentație | gstreamer.freedesktop.org/documentation/index.html |
Site-ul web | gstreamer.freedesktop.org |
GStreamer este o bibliotecă software de manipulare a sunetului și a imaginii (numită și cadru multimedia ) scrisă în C și distribuită sub licență gratuită .
Dezvoltat inițial pentru a oferi o soluție capabilă să concureze cu QuickTime și DirectShow pe GNU / Linux , prima sa versiune publică datează din31 octombrie 1999.
Lucrarea la sincronizarea video și audio a autorului său i-a permis să implementeze această parte în PipeWire , un manager de flux multimedia pentru Linux, care va unifica API-urile managerilor audio cu JACK , latență redusă, profesionist orientat audio și mai mult desktop orientat către PulseAudio , precum și fluxuri video. În schimb, aceste contribuții fac posibilă ușurarea gestionării sincronizării Gstreamer.
De atunci a fost portat pe o mare varietate de sisteme de operare, altele decât GNU / Linux , cum ar fi BSD , OpenSolaris , Android , OS X , iOS , Windows , OS / 400 .
Este un proiect întreținut în cadrul Freedesktop.org .
GStreamer a fost adoptat rapid de proiectul GNOME (din versiunea 2.2 a acestuia din urmă, lansat înFebruarie 2003) din care a devenit un pilon ( Totem , Rhythmbox , Epiphany și Pitivi , de exemplu, beneficiază foarte mult de acesta).
Este, de asemenea, utilizat de Phonon , stratul multimedia de abstractizare al KDE4 .
Apoi a început să fie folosit pe Windows și MacOS : așa s-a bazat Songbird pe acesta pentru a oferi versiuni care funcționează pe aceste platforme diferite, la fel cum Opera s-a bazat pe el pentru a afișa elementul video HTML5 pe Windows, GNU / Linux și FreeBSD (de la versiunea 10.5 și, se pare, până la abandonarea motorului de redare web Presto house în favoarea lui Blink).
WebOS folosește și acest lucru.
Pentru a facilita utilizările comerciale ale GStreamer, Fluendo (ro) și Collabora (ro) au lucrat împreună pentru a crea un SDK multiplatform ( GNU / Linux , Windows și Mac OS X pentru prima versiune numită Amazon care a fost lansată pe7 iunie 2012, apoi Android cu versiunea Brahmaputra lansată pe28 noiembrie 2012și iOS cu versiunea Congo lansată pe12 iunie 2013). De atunci, SDK-ul a continuat să fie actualizat alături de GStreamer însuși.
GStreamer se bazează pe o operațiune de conducte care amintește de tuburile din Unix: elementele sunt conectate între ele prin tuburi. Dar cu GStreamer, tipul unui flux care trece printr-o conductă este cunoscut de elemente (formatul de ieșire și de intrare nu trebuie specificat la fiecare element). De asemenea, puteți duplica un flux cu comanda tee.
Iată o conductă care va permite redarea fișierului audio „my_son.ogg” - format dintr-un sunet comprimat cu codecul Vorbis și prezentat într-un format container Ogg - utilizând serverul de sunet PulseAudio (în acest exemplu, „filesrc” folosit pentru a declara fișierul sursă, „oggdemux” permite demultiplexarea (în) fișierului, „vorbisdec” decodează și „pulssesink” pentru a trimite rezultatul la PulseAudio)
gst-launch filesrc location=mon_son.ogg ! oggdemux ! vorbisdec ! pulsesinkExemplul anterior poate fi simplificat lăsând GStreamer să detecteze natura containerului și a codecului, folosind pluginul „decodebin”:
gst-launch filesrc location=mon_son.ogg ! decodebin ! pulsesinkEste chiar posibil să lăsați GStreamer să detecteze propriul server de sunet utilizând pluginul „autoaudiosink”:
gst-launch filesrc location=mon_son.ogg ! decodebin ! autoaudiosink Redarea unui fișier audio-videoIată o conductă care va permite redarea fișierului audio-video WebM „my_video.webm” (în acest exemplu, pluginului „decodebin” i se dă orice nume - aici „foo” - pentru a putea fi reutilizat de fiecare țeavă - una pentru procesarea fluxului video, cealaltă pentru procesarea fluxului audio - care este pus în așteptare folosind pluginul „coadă”, astfel încât ambele părți să fie redate în același timp):
gst-launch filesrc location=ma_vidéo.webm ! decodebin name=foo \ foo. ! queue ! autovideosink \ foo. ! queue ! autoaudiosink Transcodarea unui fișier audio-videoIată o conductă care va permite transcodarea unui fișier MP4 (care conține în general o parte video comprimată cu codecul H.264 și o parte audio comprimată cu codecul AAC , dar este irelevant în acest exemplu în care lăsăm pluginul „Decodebin „aveți grijă de toate acestea așa cum am văzut anterior) în fișierul ogv care asociază codecurile Vorbis și Theora respectiv pentru audio și video (pluginului„ decodebin ”i se dă din nou un nume„ foo ”, pentru a putea fi reutilizat în conductele audio și video, precum și pluginul „oggmux” care este denumit pentru ocazie „bar” și care va permite multiplexarea părților audio și 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 adoptă un sistem de pluginuri grupate împreună sub denumirile „Bun”, „Rău” și „Urât” în funcție de suportul care le este acordat, suport care este definit în funcție de calitatea pluginului în sine, a licenței sale și altele. lucruri:
Pentru anecdotă, această denumire în „Bine”, „Rău” și „Urât” este inspirată de titlul englez al unui film celebru de Sergio Leone: The Good, the Bad and the Ugly ( The Good, the Bad and the Ugly) ).
Biblioteca GStreamer Editing Services a fost dezvoltată deasupra GStreamer pentru a oferi o interfață de programare simplificată pentru operațiile de editare multimedia și, în special, editarea neliniară, inclusiv editarea video neliniară.
Pentru a fi precis, GStreamer Editing Services se bazează pe un motor neliniar (succesorul GNonLin) care se bazează pe GStreamer în acest scop.
Non-Linear Engine este media agnostic și nu are niciun concept de editare video. Motorul neliniar este alcătuit în esență din câteva pluginuri sigure pentru GStreamer, care permit operații de compunere și amestecare și, de asemenea, conversia dinamică a pistei de editare a unui proiect într-o conductă pentru GStreamer.
De la versiunea 0.91, Pitivi se bazează pe GES.
Proiectul începe ca o dovadă a conceptului înIunie 1999, odată cu lansarea versiunii 0.0.1. 11 ianuarie 2001, proiectul publică prima sa versiune reală, 0.1.0.
În Iulie 2002a fost lansată versiunea 0.4.0, care este și prima versiune care se integrează cu proiectul GNOME . Cu versiunea 0.6.0 lansată pe2 februarie 2003, proiectul consideră că suportul audio este în cele din urmă complet funcțional.
Seria 0.8 a fost lansată în Martie 2004, urmat rapid de seria 0.10, lansată în decembrie 2005, care este un adevărat semn al maturității cadrului .
Versiunea 1.0, lansată pe 24 septembrie 2012, reușește în cele din urmă versiunea 0.10. Această versiune este concepută pentru a putea coexista cu cea precedentă pe același sistem pentru a facilita tranziția.
Versiunea 1.2, lansată pe 24 septembrie 2013, în special, acceptă accelerarea hardware de către procesorul grafic de decodare sau chiar codificare video pentru anumite codecuri și procesoare (prin intermediul bibliotecii gstreamer- vaapi ).
Versiunea 1.4, printre altele, remediază suportul pentru formatul MPEG-TS .
Începând cu versiunea 1.6, lansată pe 25 septembrie 2015, Motor neliniar (NLE) înlocuiește GNonLin.