Application provided invalid, non monotonically increasing dts to muxer in stream

报这个错误的原因是视频源时间戳出问题了,Ffmpeg要求视频源时间戳递增,如不后面的视频包时间戳比之前的时间戳小,
ffmpeg会选择丢弃此类视频包,并报如上错误。如何解决这个问题

方法1是重新给视频包打时间戳可以重0开始依次递增。

例子:
//循环读取每一帧直到读完 从媒体流中读取帧填充到填充到Packet的数据缓存空间
while(av_read_frame(inVFmtCtx,pkt)>=0){//循环读取每一帧直到读完
pkt->dts = 0;//不加这个时间戳会出问题,时间戳比之前小的话 FFmpeg会选择丢弃视频包,现在给视频包打时间戳可以重0开始依次递增。
if(pkt->stream_index==inVStreamIndex){//确保处理的是视频流 stream_index标识该AVPacket所属的视频/音频流。

方法2是去掉ffmpeg的这个限制。
编码前先判断pts,如果比前一个小就跳过,或者修改pts

FFmpeg+Qt实现摄像头(rtsp)实时显示视频

FFMPEG保存视频流数据至本地(rtsp转mp4)

Qt + FFmpeg实现播放本地MP4文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值