Ffmpeg -使用_wallclock_,因为_时间戳会在实时流中增加延迟

Ffmpeg -使用_wallclock_,因为_时间戳会在实时流中增加延迟,ffmpeg,mpeg2-ts,Ffmpeg,Mpeg2 Ts,我们有一个livestream(带RTP的MPEG-TS),出于测试目的,我们目前使用tcpreplay重播它 我们的mpeg ts流由4个流组成(为简洁起见,省略了编解码器细节) 有时流索引是不同的(比如音频流是流0等等,我不知道这是否是正常的行为) 我们目前尝试的只是获取流并用ffmpeg复制它,如 ffmpeg -nostdin -hide_banner -i rtp://239.0.0.2:3000 -map 0 -codec copy -f rtp_mpegts rtp://239.0

我们有一个livestream(带RTP的MPEG-TS),出于测试目的,我们目前使用
tcpreplay
重播它

我们的mpeg ts流由4个流组成(为简洁起见,省略了编解码器细节)

有时流索引是不同的(比如音频流是流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`
这将导致错误
应用程序向流0:[NUMBER]>=0中的多路复用器提供无效、非单调递增的dts

无论流0包含什么,它总是显示
流0

如果我添加
使用\u wallclock\u作为\u时间戳
,它会工作,但会增加延迟(与从
239.0.0.2:3000直接流式传输的视频相比,延迟约10秒,永远不会被捕获)

如果我将输出格式设置为
mpegts
,而不是
rpt\u mpegts
,它将按预期工作,如果我不映射KLVA和FBID流,则效果相同

这是预期的行为(因为wallclock),或者我可以做些什么来不延迟地使用wallclock作为时间戳,或者消除上面的错误

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