I.P.B与DTS.PTS

I.P.B

在音视频解码时,从Avpacket读取数据一帧一帧的数据,这些帧数据都是经过一定的算法进行压缩了的,根据压缩算法的分为I帧,P帧以及B帧。

I帧

I帧称为关键帧,属于帧内压缩帧,经过解压可以得到一帧完整的数据!压缩到原来的80%!

P帧

P帧称为前向预测帧,表示与上一帧的差别,需要缓存前面一帧才能得到完整的数据!可压缩到50%左右!

B帧

B帧称为双向预测帧,表示与上一阵以及下一帧的差别,需要缓冲上,下两帧的数据才能得到完整的数据!可以压缩到20%左右,解码当然也需要更多的时间!

获取帧的类型

我们可以通过下面的方式获取到帧的类型:

AVFrame->pict_type
AVPacket->flags & AV_PKT_FLAG_KEY

DTS与PTS

DTS与PTS是用来控制音视频解码与显示的时间戳,在

DTS

DTS代表解码时间戳,该值表示需要解码的时间!

PTS

PTS代表显示时间戳,该值表示需要显示的时间!

IPB与DTS,PTS的关系

在没有B帧的时候,DTS与PTS的顺序是一样的,有B帧则可能有差别,下面举个例子:

我们从流中读取的顺序: B帧依赖前一帧I以及后一帧P,先要读到I,P帧!
    I P B
解码的顺序:读到一阵就显示,所以顺序如下:
    I P B 
显示的顺序:I是B的前一帧,P是B的后一帧,顺序如下:
    I B P
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值