首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

直播APP开发,GOP序列和P帧的更深概念

在H.264中,图像以序列为单位进行组织,一个序列是一段图像编码后的数据流,一个序列的第一个图像叫做IDR图像,其中IDR图像都是I帧。H.264之所以引入IDR图像是为了解码的重同步,当解码器解码到IDR图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。

一、GOP序列和IDR

直播APP开发的序列是一段内容差异不太大的图像编码后生成的一串数据流,当运动变化较少时,一个序列可以很长,因为运动变化少就代表着图像画面的内容变动很小,那么就可以编成一个I帧,然后一直传输P帧、B帧即可。

当运动变化多时,直播APP开发可能一个序列就比较短了,在视频编码序列中,GOP指的是两个I帧之间的距离,而参考周期指的是两个P帧之间的距离,两个I帧之间形成一组图片,就是GOP。

二、PTS和DTS

P帧需要参考前面的I帧或P帧才能生成一张完整的图片,而B帧需要参考前面I帧或P帧及其后面的一个P帧才可以生成一张完整的图片。那么问题在于,先到来的B帧无法立即解锁,需要等待它依赖的后面的I、P、帧先解码完成,这样一来播放时间与解码时间就存在不一致性,顺序打乱了,那这些帧该如何播放呢?这时就引入了DTS和PTS的概念。

1、PTS,指的是显示时间戳,这个时间戳高速直播APP开发的播放器该在什么时候显示这一帧的数据。

2、DTS,解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。

其实在直播APP开发的日常运营工作中,并不需要了解这么多内容,只需要知道帧类型,也就是I帧、P帧、B帧分别代表着什么就可以了,另外在了解一下关于帧内预测、帧间预测两种去除冗余的方法,就足以应付直播APP开发的使用。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Ouil0uUBN0zSiDhhmBmEv2Gg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券