-use_wallclock_as_timestamps增加直播流中的延迟

时间:2020-11-02 08:43:04

标签: ffmpeg mpeg2-ts

我们有一个直播流(带有RTP的MPEG-TS),出于测试目的,我们目前使用tcpreplay对其进行重放。

我们的mpeg-ts流包含4个流(为简洁起见,省略了编解码器详细信息)。

Stream #0:2: Video: h264
Stream #0:1: Audio: mp2
Stream #0:4: Data: bin_data ([6][0][0][0] / 0x0006)
Strean #0:3: Data: bin_data (FBID / 0x4494246)
Stream #0:0: Data: klv (KLVA / 0x41564C4B)

有时流索引是不同的(例如音频流是流0,依此类推,我不知道这是否是正常行为)

我们目前尝试的只是获取流并使用ffmpeg复制它,例如

ffmpeg -nostdin -hide_banner -i rtp://239.0.0.2:3000 -map 0 -codec copy -f rtp_mpegts rtp://239.0.0.1:2000`

这会导致错误Application provided invalid, non monotonically incereasing dts to muxer in stream 0: [NUMBER] >= 0

无论流0包含什么内容,它总是说stream 0

如果我添加use_wallclock_as_timestamps,它可以工作,但会增加延迟(相比之下,从239.0.0.2:3000直接流式传输的视频大约10秒,而且从未被捕获。

如果我将输出格式设置为mpegts而不是rpt_mpegts,那么它将按预期工作,如果不映射KLVA和FBID流,则与我相同。

这种行为是由于壁钟引起的吗?或者我该怎么做use_wallclock_as_timestamps而又没有延迟或摆脱上面的错误?

0 个答案:

没有答案