您的位置:首页 > 编程语言 > Qt开发

ffmpeg开发:关于对错误pts () < dts () in stream的解决方法

2017-08-25 21:46 387 查看
关于对错误pts () < dts () in stream的解决方法。出现这种错误是由于视频pts大于dts。pts是视频播放时间,dts是送入解码器解码时间。所以一帧视频播放时间必须在解码时间点之后。解决方法是进行判断:if(packet.pts < packet.dts) continue;把异常的帧简单跳过,异常帧只是极少数简单跳过不会有什么影响。

产生错误的原因一般是对dts,pts操作不当。比如在进行视频分割时,常用的方法是视频截取后半段视频pts与dts减去前半段pts和dts。前半段pts可能比dts大(当解码的视频帧不是I帧时)后半段刚开始视频pts和dts刚好相等(当前帧为I帧时),两个一相减就会出现dts小于pts的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt ffmpeg
相关文章推荐