基本概念
三种随机接入点(RAP)
(1)GOP是画面组(Group of Pictures)的意思 。一个GOP就是一组连续的画面。
(2)I帧 又称帧内编码帧,表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)。I帧通常是每个GOP的第一个帧。
(3)P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)
(4)B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。一般地,I帧压缩效率最低,P帧较高,B帧最高。
(5)IDR帧(Decoding Time Stamp)即解码时间戳,是一种特殊的I帧(IDR帧是I帧,但是I帧不一定是IDR帧)。因为H264采用多帧预测,所以在I帧之后P帧有可能会参考之前的I帧之前的帧,这就使得在随机访问的时候不能以找到I帧作为参考条件,因为即使找到I帧,I帧之后的帧还是有可能解析不出来,而IDR就是一个特殊的I帧,即这一帧之后的所有参考帧只会参考到这个IDR帧,而不会参考前面的帧。在解码器中,一旦接收到一个IDR帧,就会立即清理参考帧缓存区,并将IDR帧作为被参考的帧。
(6)PTS帧(Presentation Time Stamp)即显示时间戳,用来告诉播放器什么时候显示这一帧。