-use_wallclock_as_timestamps增加直播流中的延迟

问题描述

我们有一个直播流(带有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而又没有延迟或摆脱上面的错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...