SCR, PCR, ESCR, PTS, DTS

 

1.       SCR

SCR是存在于PS中的,即PSpack里面的一个field。他用来指定这个PSpack期望的到达decoder的时间。

2.       ESCR

ESCR是位于PES里面的,即PESheader里面可能会有,当PESpacket要表示一个PES stream的时候,PES packet里面的ESCR就表示这个PES packet的所期望的到达decoder的时间。

3PCR

PCRTS里面的,即TS packetheader里面可能会有,他用来指定所期望的该ts packet到达decoder的时间,他的作用于SCR类似。

4DTS, PTS

对于一个ES来说,比如视频,他又许多I,P,B帧,而P, B帧都是以IP帧作为参考。由于B帧是前向后向参考,因此要对B帧作decode的话,就必须先decodeB帧后面的P,或者I帧,于是,decode的时间与帧的真正的present的时间就不一致了,按照DTS一次对各个帧进行decode,然后再按照PTS对各个帧进行展现。

有时候PES包头里面也会有DTSPTS,对于PTS来说,他代表了这个PES包得payload里面的第一个完整地audio access unit或者video access unitPTS时间(并不是每个audio/video access unit都带有PTS/DTS,因此,你可以在PES里面指定一个,作为开始)。

PES包头的DTS也是这个原理,只不过注意的是:对于video来说他的DTSPTS是可以不一样的,因为B帧的存在使其顺序可以倒置。而对于audio来说,audio没有双向的预测,他的DTSPTS可以看成是一个顺序的,因此可一直采用一个,即可只采用PTS

 

From:http://blog.chinaunix.net/u2/72383/showart_1843748.html

你可能感兴趣的:(SCR, PCR, ESCR, PTS, DTS)