我正在编写一个视频/音频播放器,使用libav/ffmpeg对UDP上的MPEGTS流进行解码和解码。我正在处理的一个问题是,有时候流是循环的,当它循环时,我的玩家就会崩溃。
问题是,一旦流循环,新的数据包有很大的不同的dts/pts。我的播放器是依靠it的视频-音频同步,所以重要的是,我可以正确处理文本。
每当服务器循环流时,它就会发送一个不连续性标志,我可以确认是否正确地接收了该标记(我对代码进行了一些挖掘并检查了调试日志)。然而,在我看来,异议者对不连续性标志的作用不大。换句话说,从用户的角度来看,除了dts/pts的戏剧性跃升之外,我无法判断是否存在不连续性。
是否有一种方法可以可靠地判断是否存在中断,以便重新计算我的时间戳并继续顺利地播放?
发布于 2021-09-24 12:41:21
我和libav的TS演示器有类似的问题,并且放弃使用它。相反,我发现了这个项目,它可以让您更好地控制demux进程。
https://stackoverflow.com/questions/69255781
复制相似问题