Skip to content

Cum sa demuxezi streamuri MPEG Transport Stream cu GStreamer

DodaTech Updated 2025-01-15 2 min read

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

In acest ghid rapid, vei invata cum sa folosesti elementul tsdemux din GStreamer pentru a demuxa streamuri MPEG Transport Stream (MPEG-TS), formatul standard pentru broadcast TV digital si streaming live.

Modul Gresit

Multi incearca sa decodifice direct un stream TS fara demuxare:

gst-launch-1.0 filesrc location=stream.ts ! avdec_h264 ! videoconvert ! autovideosink

Eroare: Un fisier TS contine pachete multiplexate de 188 de bytes cu video, audio si date auxiliare. Decodorul primeste date neprocesate si esueaza cu No acceptable caps.

gst-launch-1.0 souphttpsrc location=http://example.com/live.ts ! tsdemux ! avdec_h264 ! autovideosink

Eroare: Lipsa h264parse intre demuxer si decodor cauzeaza erori intermitente de decodare, deoarece datele H.264 brute din TS nu sunt aliniate corect.

Modul Corect

Pipeline-ul corect pentru redare MPEG-TS:

gst-launch-1.0 filesrc location=stream.ts ! tsdemux name=demux demux.video_0 ! queue ! h264parse ! avdec_h264 ! videoconvert ! autovideosink demux.audio_0 ! queue ! aacparse ! avdec_aac ! audioconvert ! autoaudiosink

Output asteptat: Streamul TS este demuxat, video H.264 decodat si audio AAC redat sincron.

Pentru streaming live HTTP:

gst-launch-1.0 souphttpsrc location=http://example.com/live.ts ! queue ! tsdemux name=demux demux.video_0 ! queue ! h264parse ! avdec_h264 ! videoconvert ! autovideosink

Output asteptat: Streamul live este redat in timp real, cu gestionarea corecta a pachetelor pierdute sau intarziate.

Prevenire

  • Foloseste tsdemux pentru fisiere .ts, .mts, .m2ts si streamuri live prin HTTP/UDP
  • Adauga h264parse sau h265parse dupa demuxare inaintea decodorului video
  • Foloseste aacparse sau mpg123audiodec pentru fluxurile audio
  • Adauga queue dupa fiecare pad de iesire al demuxer-ului
  • Pentru streamuri live, configureaza un buffer suficient de mare pentru a compensa fluctuatiile de retea

Intrebari Frecvente

### Cum gestioneaza tsdemux pierderea de pachete?

tsdemux include mecanisme de corectare a erorilor pentru streamuri TS. Cand un pachet este pierdut, elementul incearca sa se resincronizeze la urmatorul pachet valid (sincronizare pe byte-ul 0x47). Pentru streamuri cu multe erori, recomandam utilizarea unui element reed solomon dedicat.

tsdemux suporta subtitrari DVB sau Teletext?

Da, tsdemux poate extrage subtitrari DVB si Teletext din streamul TS. Acestea apar pe pad-uri separate si pot fi decodate cu dvbsubdec sau elemente specializate.

Pot demuxa un stream TS cu mai multe programe?

Da, tsdemux suporta streamuri TS cu multiple programe (canale). Foloseste proprietatea program-number pentru a selecta un anumit program. Fara aceasta proprietate, primul program este selectat automat.

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