Familiarizarea cu GStreamer introducere

act de renunțare
Mulți oameni ar fi auzit că există un astfel de lucru ca gstreamer, sau văzut ca Ubuntu și distribuții similare oferă pentru a instala o varietate de pachete ale căror nume conțin „gstreamer“ la prima încercare de a reda MP3 sau orice alta cu un „nu este liber“, mass-media format de fișier . Deci, voi descrie această bibliotecă.
GStreamer are o arhitectură plug-in, iar in pachetul standard are un set foarte mare de plugin-uri care pot rezolva 99% din nevoile tuturor dezvoltator de software multimedia.
arhitectură
Gstreamer are mai multe componente principale:
- element
- Pad-uri
- containere Bin și conducte de
Și acum detaliile:

Aproape toate GStreamer este un element. Totul din fluxuri convenționale surse (filesrc, alsasrc și m. P.), fluxuri de procesoare (demultiplexeri, decodoare, filtre și m. P.) Pentru dispozitivele de ieșire final (alsasink, fakesink, filesink și m. N ) ..

Pad - este un fel de punct de element de conectare la un alt element, dacă este mai simplu - este dedesubturi ale elementului. acestea sunt, de obicei denumite «chiuveta» - intrare și «src» - ieșire.
Elementele au întotdeauna cel puțin un pad. De exemplu, filesrc - un element pentru citirea datelor din sistemul de fișiere - are doar un singur pad numit «src», adică el are de intrare, și se poate transforma numai fluxul din sistemul de fișiere într-o reprezentare internă, care va funcționa deja alte elemente ... De asemenea alsasink elementul, acesta are un pad numit «chiuveta», adică. K. Acesta poate primi doar fluxul de interior și de ieșire-l la placa de sunet prin ALSA. Elementele de descărcare «filtre» (cei care au transformat într-un fel de flux) are două sau mai multe puncte de conexiune. De exemplu, elementul de volum are un strat numit «chiuveta», care primește fluxul în interiorul acestui element este transformat (schimbare de volum), cât și prin suportul cu numele «src» continuă deja calea. De asemenea, există elemente care pot fi oarecum ambele intrări și ieșiri.
containere

Cum funcționează
Să considerăm un exemplu de schemă primitivă a player-ului. Cel mai simplu schema de jucător trebuie să arate astfel:

Luați în considerare ceea ce se întâmplă aici. Element filesrc citește fișierul din sistemul de fișiere și trimite fluxul de la decodebin containerului, care, la rândul său, decodifică un flux continuu în reprezentarea internă, și, ulterior, transmite fluxul la alsasink elementul care trimite, de asemenea, fluxul audio la placa de sunet. Pentru a verifica acest circuit este suficient ca echipa
Și dacă ai auzi tonul de apel, atunci totul este în regulă.
notițe
- gst-lansare-1.0 utilitate vine gstreamer1.0-tools ambalate
- În cazul utilizării OSS / Jack / etc, acest sistem ar putea eșua. Prin urmare, alsasink autoaudiosink poate fi înlocuit cu un element care va alege elementul pe care doriți să ieșire audio.
Ce urmează?
În viitor, am de gând să scrie o serie de articole care vor examina diverse elemente și capacitățile lor, precum și exemple de cod de real folos oportunități GStreamer vor fi furnizate.