为了实现解码同步,在PES中插入PTS和DTS以及相关的系列标志符。
由图可以看出,TS由4B的包头,可变长度的调整头和负载构成。包头由同步字节,1b传送数据包差错指示,1b净荷单元起始指示,1b传送优先权,13b的包标识符PID,2b传送加扰控制,2b调整字段控制和4b连续计数器组成。
净荷起始指示表示打包的原始流PES数据包字头或包含与节目有关的PES信息的起始端,是否出现在该TS包的净荷中。
调整字段控制表示在在包头后面是否有调整端和或净荷。
连续计数器中的数值对于具有相同PID值的净荷而言,从0-15连续循环,用来在解码端检测是否有丢失的TS包。
除了各节目的各个传送流外,还应有节目专用信息PSI,PSI数据由固定字长的整体字头和可变字长的节目清单表PAT或单节目映射表PMT以及4b的CRC组成。
TS包中负载传送的信息主要有4种类型:
1.视频和音频的PES包以及辅助数据。
2.描述单路节目的节目映射表(PMT)与描述多路节目复用信息的节目关联表(PAT)以及对CA系统所要求的条件访问表(CAT)。
3.各种业务信息表。
4.DVB数据广播信息,包括数据管道,异步数据报,同步,被同步数据流,多协议封装,循环数据,循环对象。
MPEG-TS包头语法结构:
·sync_byte:1B 值为0x47。
·payload_unit_start_indicator:1b长度。
当TS包带有PES包数据时,payload_unit_start_indicator值为1时,表示TS包的负载以PES包的第一个字节开始,值为0,表示TS包开始的不是PES包。
当TS包带有PSI数据时,payload_unit_start_indicator值为1时,表示TS包带有PSI部分的第一个字节,即第一个字节带有指针pointer_field;置为0,表示TS包不带有一个PSI部分的第一个字节,即在有效净荷中没有指针的pointer_field.
空包payload_unit_start_indicator应置为0.
·PID:13b。表示净荷的数据类型。PID=0x0000,表示净荷的数据位节目关联表。
PID取值分配:
调整字段是一个可边长的域,它是由存在于TS包头中的调整字段控制值来标识的。