因为把视频编码成I,B,P等帧,以下图
假设如今有I,B,P帧,那么要传输和显示呢??
若是按照显示顺序传输的话:
传输顺序就是I->B>P
当对B帧进行解码后,因为B帧没法单独显示,只能等待后面的P帧
若是不按照顺序传输,按照解码顺序传输的话:
传输顺序就是I->P->B
不管用哪一种方式传输和显示,一旦有了B帧这个东西,就都须要告诉对方何时该显示这帧
因而就有了PTS和DTS,即Presentation Time Stamp和Decode Time Stamp
PTS告诉对方何时该显示这帧,而DTS则告诉何时该解码这帧
若是没有B帧的状况,PTS和DTS都是同样的:
有B帧的状况下,PTS和DTS才会不一致:
参考文章: