一、PSI与SI
在之前的表格简述一中,主要记录了PAT和PMT两个表格的内容与结构,在MPEG2标准中,PSI包含4张表,PAT、PMT、CAT和NIT,为了能够对多个TS流中的节目信息进行更好的描述,SI定义了除PSI的4张表之外的9张表,分别为SDT(业务描述表)、EIT(事件信息表)、TDT(时间日期表)、TOT(时间偏移表)、BAT(业务群关联表)、RST(运行状态表)、ST(填充表)、SIT(选择信息表)、DIT(间断信息表),SI的9张表中,NIT、SDT、EIT、TDT这4张表是在传输的时候,必须要进行传输的。
PSI与SI之间的关系,以及两个类别的表里,包含的关系,如下面两个图:
二、CAT表
CAT包含了TS流的节目中的加扰情况,涉及到一个EMM的管理信息,EMM(Entitlment Management Message),由于录制的码流没有进行加扰,所以分析中的没有CAT的加扰信息,如下图:
上图的CAT表即为没有进行加扰时候的CAT信息。
三、NIT表
网络信息表包含的内容有:调谐接收的转发器、频率、符号率、调制方式等参数。NIT表中的network_id标识了网络的标号,标识了网络的唯一性,最好按照规定的进行分配,便于统一。与其他的表格类似,贴出NIT的结构与一个TS流解析,NIT的结构如下:
码流分析中的NIT结构为:
NIT中包含的描述符较多,根据第二篇链接的参考内容,NIT中有:网络名称描述符、有线传输系统描述符、业务列表描述符以及链接描述符,
四、SDT表
包含的信息为:TS流中每个节目或业务有关的其他节目的名称和参数,SDT是连接PSI中几个表的作用,首先,SDT中的service_id与PMT中的program_number相等,连接了PSI,同时,SDT中的transportstream_id与NIT、EIT中保持一致。附上SDT的结构图如下:
五、EIT表
EIT表主要描述了频道中的节目信息,根据EIT中的table_id可以区分出不同的TS流动EIT,传递EIT表格的数据包的PID为0x0012,EIT的结构图如下:
,在EIT表格里含有的信息有:节目所在的频道,节目的开始时间与结束时间,不过节目所在的频道,节目描述及节目描述,均值节目的描述符里,EIT里包含的描述符如下图:
,
六、TS流(码流)相关
七、节目搜索
节目搜索的流程如下图:
总结
对于TS流里含的描述信息,有两个内容是通用的,描述符以及描述符的长度,即descriptor_tag与descriptor_length。从之前的PAT、PMT、SDT及CAT的结构来看,表的结构数据具有相当类似的结构,前面的描述TS包的内容基本一致,难点在于包结构后面所包含的业务相关信息、以及含义。
附:基础常识
- TS包(packet):音视频组成的数据包
- TS流(stream):一个频道中(多个节目)的数据包进行服用之后的传输流。
- EPG(电子节目指南)的信息来自于DVB码流中的SI和PSI数据
图像、音视频等资源,转换成数字信号后,通过MPEG-2的标准打成TS包,(188或者204),最终将TS包复用成TS流。EPG目的在于使用户能够阅览每个频道的节目前后的信息,并可以实现节目预订,某一个节目到时间后,会自动提示用户进行观看。 - PCR:Program Clock Reference
- TableId与Pid的区别:
(1)TableId:标识TS流中的不同表
(2)PID:标识有效负载中存储的数据类型
参考资料:《数字电视业务信息及其编码》
http://blog.csdn.net/bisword/article/details/3864199
http://blog.csdn.net/zxh821112/article/details/17587325