1.ES PES TS
TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度。 PS包与TS包在结构上的这种差异,导致了它们对传输误码具有不同的抵抗能力。在信道环境较为恶劣,传输误码较高时,一般采用TS码流;而在信道环境较好,传输误码较低时,一般采用PS码流。由于TS码流具有较强的抵抗传输误码的能力,因此目前在传输媒体中进行传输的MPEG-2码流 基本上都采用了TS码流的包格。
每个ES都由若干个存取单元(AU)组成,每个视频AU或音频AU都是由头部和编码数据两部分组成,1个AU相当于编码的1幅视频图像或1个音频帧,也可以说,每个AU实际上是编码数据流的显示单元,即相当于解码的1幅视频图像或1个音频帧的取样。
PES是打包过的ES,已经插入PTS和DTS,一般一个PES是一帧图像。
PES经过打包成TS或PS流,往往一个PES会分存到多个TS包中。
2.PSI PAT PMT
节目专用信息PSI(Program Specific Information)
管理各种类型的TS数据包,需要有些特殊的TS包来确立各个TS数据包之间的关系。这些特殊的TS包里所包含的信息就是节目专用信息。
MPEG-2中,规定的对PSI信息的描述方法有以下几种:
• 1、表Table: 节目信息的结构性的描述;
–节目关联表Program Association Table (PAT) 0x0000
–节目映射表Program Map Tables (PMT) PAT指定
–条件接收表Conditional Access Table (CAT) 0x0001
–网络信息表Network Information Table(NIT) 0x0010
–传送流描述表Transport Stream Description Table (TSDT)
• 2、段Section: 将表格的内容映射到TS流中;
专用段 Private_ section
• 3、描述符Descriptor:提供有关节目构成(视频流、音频流、语言、层次、系统时钟和码率等多方面)的信息;
ITU-T Rec.H.222.0|ISO /IEC 13818-1 中定义的 PSI表可被分成一段或多段置于传输流分组中。一段就是一个语法结构,用来将 ITU-T Rec.H.222.0|ISO /IEC 13818-1 中定义的 PSI表映射到传输流分组中。
1个PAT表中包含N个PMT表的索引信息
而1个PMT表中又包含视频PES 音频PES等索引信息
在解析TS流的时候,首先寻找PAT表,根据PAT获取所有PMT表的PID;再寻找PMT表,获取该频段所有节目数据并保存。这样,只需要知道节目的PID就可以根据PacketHeade给出的PID过滤出不同的Packet,从而观看不同的节目。
Section:
一个section可能包含一个或多个TS包。对接收到的TS包数据,根据不同的PID过滤出相应的TS包,然后去掉包头,把相关的多个TS包有效数据组织起来形成section数据返回给相应的应用开发者调用。
当PSI的长度大于184bytes时,要对这个表进行分割,形成section来传送。分段机制主要是将一个数据表分割成多个数据段&#