作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个视频/音频播放器,它使用 libav/ffmpeg 通过 UDP 对 MPEGTS 流进行解复用和解码。我正在处理的一个问题是,有时流在循环,当它循环时,我的播放器会崩溃。
问题在于,一旦流循环,新数据包的 dts/pts 就会大不相同。我的播放器依赖 pts 进行视频 - 音频同步,所以我能正确处理 pts 很重要。
每当服务器循环流时,它都会发送一个不连续标志,我可以确认它被 libav mpegts demuxer 正确接收(我在代码中做了一些挖掘并检查了调试日志)。但是,在我看来,分路器对不连续标志的作用不大。换句话说,从用户的角度来看,除了 dts/pts 的急剧跳跃之外,我无法判断存在不连续性。
有没有办法可以可靠地判断存在不连续性,以便我可以重新计算时间戳并继续顺利播放?
最佳答案
我在使用 libav 的 TS demuxer 时遇到了类似的问题并放弃了使用它。相反,我发现这个项目可以让您更好地控制 demux 过程。
https://github.com/mmoanis/mpegts_demux
关于ffmpeg - libav MPEGTS 解复用 - 处理循环/不连续性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69255781/
这就是我的 我在 2D X,Y 中有一个平面 我通过点击屏幕 X', Y' 来设置他的目的地 我计算它需要转向以面向此目的地的角度: // Calculate the angle between pl
我是一名优秀的程序员,十分优秀!