iOS开发之常用技术点iOS音视频(直播 音频 视频)iOS直播视频

音视频学习从零到整-- H264基本概念

2019-02-15  本文已影响142人  CC老师_HelloCoder

音视频学习从零到整(1)
音视频学习从零到整(2)
音视频学习从零到整(3)
音视频学习从零到整(4)
音视频学习从零到整(5)
音视频学习从零到整(6)

一. H264基本概念.

I帧: 关键帧,采用帧内压缩技术.

P帧: 向前参考帧.压缩时只参考前一个帧.属于帧间压缩技术.

B帧: 双向参考帧,压缩时即参考前一帧也参考后一帧.帧间压缩技术.

二. GOF(Group of Frame)一组帧

如果在一秒钟内,有30帧.这30帧可以画成一组.如果摄像机或者镜头它一分钟之内它都没有发生大的变化.那也可以把这一分钟内所有的帧画做一组.

什么叫一组帧?
就是一个I帧到下一个I帧.这一组的数据.包括B帧/P帧.我们称为GOF.
GOF有什么好处了?它能解决什么问题了?
这个与我们接下来所学习的内容有关了.

15500375651172.jpg

三. SPS/PPS

SPS/PPS实际上就是存储GOP的参数.

15500415315827.jpg

SPS: (Sequence Parameter Set,序列参数集)存放帧数,参考帧数目,解码图像尺寸,帧场编码模式选择标识等.

PPS:(Picture Parameter Set,图像参数集).存放熵编码模式选择标识,片组数目,初始量化参数和去方块滤波系数调整标识等.(与图像相关的信息)

大家只要记住,在一组帧之前我们首先收到的是SPS/PPS数据.如果没有这组参数的话,我们是无法解码.

如果我们在解码时发生错误,首先要检查是否有SPS/PPS.如果没有,是因为对端没有发送过来还是因为对端在发送过程中丢失了.

SPS/PPS数据,我们也把其归类到I帧.这2组数据是绝对不能丢的.

那么下面我们来看一下实际开发中遇到的问题.

四. 视频花屏/卡顿原因

我们在观看视频时,会遇到花屏或者卡顿现象.那这个与我们刚刚所讲的GOF就息息相关了.

所以总结起来,花屏是因为你丢了P帧或者I帧.导致解码错误. 而卡顿是因为为了怕花屏,将整组错误的GOP数据扔掉了.直达下一组正确的GOP再重新刷屏.而这中间的时间差,就是我们所感受的卡顿.

五. 视频都有哪些视频编解码器?

X264/X265

上一篇 下一篇

猜你喜欢

热点阅读