TS Stream Transport über UDP von .TS-Dateien

TS Stream Transport über UDP von .TS-Dateien

Ich möchte den TS-Stream (.ts-Dateien) über UDP transportieren.

Ich habe die folgende Pipeline verwendet,

gst-launch-1.0 filesrc =location=a.ts ! tsparse ! rtpmp2tpay ! udpsink host="IP" port="port"

Aber ich erreiche das Ende des Streams innerhalb von Sekundenbruchteilen.

Am Empfängerende empfange ich nur einige Daten.

Eine Warnung wird angezeigt, wenn ich do-timestamp=true für filesrc setze.

0:00:00.051245178  4751       0xe494a0 WARN        mpegtspacketizer mpegtspacketizer.c:1388:calculate_skew: delta - skew: 5124091:34:25.044918089 too big, reset skew

Die TS-Datei wird durch Dekodierung und MPEGTSMUX einer YUV-Datei erstellt.

Diese TS-Datei funktioniert ordnungsgemäß, wenn ich sie direkt demuxe und dekodiere.

Aber wenn ich die TS-Datei über UDP streame, tritt dieses Problem auf.

Wie kann ich den TS-Stream über UDP transportieren?

Antwort1

MPEG2-TS enthält Zeitstempel, zur Dekodierung und Präsentation DTS/PTS. Sie müssen die Zeitstempel natürlich neu in Ihre Pipeline einfügen.

Beim Dekodieren verwendet Ihr lokaler Decoder möglicherweise nur die relativen Zeitinformationen aus Ihren Zeitstempeln oder verwirft sie vollständig und berechnet das Timing anhand der Bitrate neu, was bei den meisten, fast allen Streams einwandfrei funktioniert (VLC hat sich jahrelang nicht an Zeitstempel gehalten und hat dies erst in den letzten Versionen gelernt).

möglicherweise kann jemand diese Antwort bearbeiten und das richtige Schlüsselwort zum Einfügen in die Pipeline angeben.

verwandte Informationen