1

Я хотел бы транспортировать поток TS (файлы .ts) через UDP.

Я использовал приведенный ниже конвейер,

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

Но я получаю конец потока в течение доли секунды.

На приемном конце я получаю только некоторые данные.

Предупреждение возникает, когда я устанавливаю do-timestamp = true для filesrc.

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

Файл TS создается декодированием и mpegtsmux файла yuv.

Этот файл TS правильно работает, когда я непосредственно демультиплексирую и декодирую его.

Но когда я передаю этот файл через UDP, возникает эта проблема.

Как я могу транспортировать поток через UDP?

1 ответ1

0

MPEG2-TS переносит временные метки, для декодирования и представления DTS/PTS. Вам, очевидно, нужно вставить штамп времени в ваш конвейер.

Когда вы декодируете его, ваш локальный декодер может использовать только относительную информацию о времени из ваших временных меток или полностью их отбрасывать и пересчитывать временные характеристики из битрейта, что прекрасно работает почти во всех потоках (VLC не подчинялся временным меткам в течение многих лет, и узнал об этом только в последних выпусках).

Может быть, кто-то может отредактировать этот ответ и дать правильное ключевое слово для вставки в конвейер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .