本文将继续为大家讲解音视频是怎么保持同步的。
时间戳DTS、PTS
DTS:这解码时间戳,在这个意义上,告诉玩家在什么时候数据帧解码时间戳。
PTS:即显示不同时间戳,这个工作时间戳用来研究告诉播放器该在我们什么问题时候可以显示技术这一帧的数据。
当存在视频流中没有B-帧,DTS和PTS序列通常是一致的。但如果有B帧时,就回到了提高我们通过前面说的这些问题:解码顺序和播放顺序不一致了,即视频内容输出数据是非线性的。
例如,视频中的帧的顺序是:IBBP,因为B帧的解码依赖于P帧,这些帧在视频流中的顺序可能是:I P B B,这一次每个帧都具有DTS和PTS的功能。DTS告诉我们订购这些解码帧图像,PTS告诉我们在什么订购这些帧图像。顺序大概内容如下:
从流分析工具来看,在B帧的P帧之前的,但它的B帧后不显示。
需要我们注意的是:虽然 DTS、PTS 是用于进行指导播放端的行为,但它们是在编码的时候由编码器可以生成的。
以我们最常见的TS为例:
TS流,PTS / DTS信息生成阶段的演奏PES流电平,主要是在PES头。
第一个是识别标记PTS,第二位的是DTS标志。
标志:
00,表示无PTS无DTS;
01,错误,不能只有DTS没有PTS;
10,有PTS;
11,有PTS和DTS。
PTS有33位,但是它不是可以直接的33位数据,而是占了5个字节,PTS分别通过在这5字节中取。
甲TSI/P帧中携带的PTS/DTS的信息,B帧PTS/DTS相等,则PTS入保持;双向预测由于声音,这是它的解码顺序显示顺序没有被使用,所以它是唯一的PTS。
TS的编码器中有这样一个信息系统进行时钟STC,此时钟用来发展产生重要指示音视频的正确分析显示和解码时间戳。
在PES位中,PTS域为33,是系统时钟300个频率的时钟的计数值。它被编码为3个独立的字段:
PTS[32…30][29…15][14…0].
在PES字段DTS是33bits,经分频的时钟300到系统时钟的计数值。它被编码为3个独立的字段:
dts[32.30][29.15][14.0].
因此,对于TS流,PTS/DTS是九万分之一第二时基。
对于TS流的意义我们不仅可以在于通过音视频数据同步,TS流本身不携带duration信息,所以进行计算duration也是企业根据PTS得到。
以上就是今天的内容,明天同一时间,我们继续哟~