.TS 檔案透過 UDP 進行 TS 串流傳輸

.TS 檔案透過 UDP 進行 TS 串流傳輸

我想透過 UDP 傳輸 ts 流(.ts 檔)。

我使用了下面的管道,

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

但是,我在幾秒鐘內就結束了流。

在接收端,我只接收一些資料。

當我為 filesrc 設定 do-timestamp=true 時,會出現警告。

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

TS 檔案是透過 yuv 檔案的解碼和 mpegtsmux 建立的。

當我直接解復用和解碼該 TS 檔案時,它可以正常工作。

但是當我透過 UDP 傳輸 ts 檔案時,就會出現這個問題。

如何透過 UDP 傳輸 ts 流?

答案1

MPEG2-TS 帶有時間戳,用於解碼和呈現 DTS/PTS。顯然,您需要將時間戳重新標記插入管道中。

當您解碼它時,您的本地解碼器可能只使用時間戳中的相對時間信息,或者完全丟棄它們並根據比特率重新計算時間,這在大多數幾乎所有流中都可以正常工作(VLC 多年來不遵守時間戳,並且只在最近的版本中了解到它)。

也許有人可以編輯這個答案,並給出正確的關鍵字以插入管道中。

相關內容