Familiarizarea cu GStreamer introducere

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:

Familiarizarea cu GStreamer introducere

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 ) ..

Familiarizarea cu GStreamer introducere

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

Familiarizarea cu GStreamer introducere
În interiorul containerului elemente sunt cheltuieli ciclului lor de viață. Containerul gestionează trimiterea de mesaje de la celula la celula, gestionează elementele de stare. Containerele sunt împărțite în două tipuri:

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:

Familiarizarea cu GStreamer introducere

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.