下面是自己的一点理解,如有错误,请指正。
I帧,P帧和B帧是MPEG-2的编码规范规定的图像编码
首先要理解i、p、b
i帧:关键帧,根据当前帧解析视频
p帧: 帧图像只采用前向时间预测,根据前一帧,解析当前帧。
b帧:B 帧图像采用双向时间预测,可以大大提高压缩倍数。根据前几帧、本帧、后帧解析当前帧,也就是需要先解码后面的帧才能再解码当前帧。或称双向预测图像,根据临近的前几帧、本帧、后几帧的I或者P图像预测得到,仅记录本帧与前后帧的不同之处。相比I和P图像可以有更大的压缩码率。那么解码顺序变乱了,如何解决这个问题,可以通过时间戳pts、dts来解决。
pts(Presentation Time Stamp):显示时间戳
dts(Decoding Time Stamp):编码时间戳
在没有b帧的视频中,pts、dts是一致的,但是有b帧的情况的,就不同了,如下:
假如视频帧为:I B B P
Stream: I P B B
DTS: 1 2 3 4
PTS: 1 4 2 3
音频没有b帧,所以音频的pts、dts是一致的。如何音视频同步,则是通过pts时间戳来进行同步。