Транспорт TS Stream по UDP из файлов.TS
Я хотел бы транспортировать поток 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 создается с помощью decode и mpegtsmux файла yuv.
Этот файл TS правильно работает, когда я непосредственно демультиплексирую и декодирую его.
Но когда я передаю этот файл через UDP, возникает эта проблема.
Как я могу транспортировать поток через UDP?
1 ответ
MPEG2-TS переносит временные метки для декодирования и представления DTS/PTS. Вам, очевидно, нужно вставить штамп времени в ваш конвейер.
Когда вы декодируете его, ваш локальный декодер может использовать только относительную информацию о времени из ваших временных меток или полностью их отбрасывать и пересчитывать временные характеристики из битрейта, что прекрасно работает в большинстве, почти во всех потоках (VLC не подчинялся временным меткам в течение многих лет, и узнал об этом только в последних выпусках).
Может быть, кто-то может отредактировать этот ответ и дать правильное ключевое слово для вставки в конвейер.