Skip to content

Cum sa demuxezi streamuri MPEG Program Stream cu GStreamer

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum sa demuxezi streamuri MPEG Program Stream cu GStreamer. We cover key concepts, practical examples, and best practices.

In acest ghid rapid, vei invata cum sa folosesti elementul mpegpsdemux din GStreamer pentru a demuxa streamuri MPEG Program Stream (MPEG-PS). Acest format este utilizat frecvent in DVD-uri, camere de supraveghere si sisteme de broadcast vechi.

Modul Gresit

Multi incearca sa reda direct un fisier MPEG-PS fara demuxare:

gst-launch-1.0 filesrc location=video.mpg ! avdec_mpeg2 ! videoconvert ! autovideosink

Eroare: Un fisier MPEG-PS contine multiple fluxuri (video, audio, subtitrari) multiplexate. Fara demuxare, decodorul primeste date amestecate si esueaza cu erori de tip No acceptable caps.

gst-launch-1.0 filesrc location=video.mpg ! mpegpsdemux ! avidemux ! autovideosink

Eroare: Dupa demuxare, fluxurile trebuie directionate separat. mpegpsdemux genereaza mai multe pad-uri (video_0, audio_0) care necesita elemente separate pentru fiecare.

Modul Corect

Pipeline-ul corect pentru redarea unui fisier MPEG-PS:

gst-launch-1.0 filesrc location=video.mpg ! mpegpsdemux name=demux demux.video_0 ! queue ! avdec_mpeg2 ! videoconvert ! autovideosink demux.audio_0 ! queue ! avdec_mp2 ! audioconvert ! autoaudiosink

Output asteptat: Video-ul si audio-ul se reda sincronizat. Fluxurile sunt demuxate, decodate si afisate corect.

Pentru a extrage doar audio-ul:

gst-launch-1.0 filesrc location=video.mpg ! mpegpsdemux name=demux demux.audio_0 ! queue ! avdec_mp2 ! audioconvert ! wavenc ! filesink location=output.wav

Output asteptat: Fisierul output.wav contine doar audio-ul extras din streamul MPEG-PS.

Prevenire

  • Foloseste mpegpsdemux pentru fisiere .mpg, .mpeg, .vob (DVD)
  • Nu confunda mpegpsdemux cu tsdemux — PS este pentru stocare, TS pentru streaming
  • Foloseste elemente queue dupa fiecare pad de iesire pentru a preveni blocarea pipeline-ului
  • Verifica ce fluxuri sunt disponibile cu gst-discoverer-1.0 video.mpg
  • In aplicatii de securitate, analizeaza fluxurile demuxate separat pentru detectarea continutului malitios

Intrebari Frecvente

### Care este diferenta dintre MPEG-PS si MPEG-TS?

MPEG Program Stream (PS) este proiectat pentru stocare pe suporturi cu erori reduse (DVD, hard disk), avand pachete de dimensiune variabila. MPEG Transport Stream (TS) este conceput pentru transmisii cu erori (broadcast, streaming), avand pachete fixe de 188 de bytes.

Cum pot extrage subtitrari dintr-un MPEG-PS?

Foloseste mpegpsdemux si conecteaza pad-ul corespunzator subtitrarii. Subtitrariile in format DVD sunt de obicei pe un pad suplimentar si pot fi decodate cu elemente precum spucc sau dvbsubdec.

De ce nu vede mpegpsdemux toate fluxurile?

Asigura-te ca fisierul contine intr-adevar mai multe fluxuri. Un fisier MPEG-PS poate contine un singur flux video si unul audio. Foloseste gst-discoverer-1.0 pentru a inspecta structura completa a fisierului.

Construit de dezvoltatorii Doda Browser, DodaZIP si Durga Antivirus Pro. Instrumentele DodaTech se integreaza perfect cu GStreamer pentru productivitate si securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro