做了这么久的TV方案,对数字电视也很了解,今天来总结一下,MPEG-2 TS流解析的细节:
TS流中有两种标识符,一种是包标识符,一种是表标识符。具有相同PID的不用信息表由表标识符table Id来区分,接收端通过查这些特定的PID来找到他们。
一,一个ts流中包含了很多PID packets,这些数据包大致包含以下两个tables表。
1,PSI tables-------节目特殊信息,从一个携带多个节目的TS流中正确找到特定的节目。
2,SI tables---------主要的event信息包含在这个表里面。
下面我们来详细解析一下这两个表格数据。
二,PSI tables里面包含如下信息:
1,PAT---------节目关联表,其PID是0x00,包括该TS流的PID和所有节目映射表的每个节目的PMT的PID,这些PID是描述每个独立节目的详细信息的指针,和每个PMT表对应的频道号。
2,CAT-----------条件接收表, 其PID是0x01,CAT携带的是服务的私有信息(CA系统就需要使用该表格实现节目的解密)。
3,PMT--------节目映射表,包含有特殊的PID和特殊的payload.。它的PID由PAT传送,描述节目的音视频(ES流)PID、PCR_PID、音视频ECM_PID信息。
4,NIT---------网络信息表,包括数字电视网中的所有传输流的物理传输网信息,包含节目的频道调谐参数、频率、符号率等,这些信息使得接收机可以按照用户的选择以很少的延迟或无延迟的改变频道、调谐参数,正确的解码出TS流。
三,SI是对PSI的扩展,SI包括业务描述表(SDT)、事件信息表(EIT)、时间和日期表(TDT)、时间偏移表(TOT)、业务群关联表(BAT)、运行状态表(RST)、填充表(ST)、选择信息表(SIT)、间断信息表(DIT)等表信息。其中NIT、SDT、EIT、TDT是必须传送的,其他的表按照需要进行选择传送。
SI table里面包含如下数据:
1,BAT------------业务群关联表,相对于整个ts的信息描述。
SI_BAT_BouquetId---------码流识别ID
bouquet_descriptors_length---------码流长度
2,SDT--------服务器描述表,包含当前传输流和其他传输流的业务信息,当前传输流ID,当前传输流中包含的节目名称,节目类型等。
3,EIT-------------节目(时间)信息表,生成EPG的主要表。包括每个节目的当前播出的节目名称、播出开始时间、播出时间段、父母控制级别等信心和下一个播出节目的相关信息。
4,TDT-----------世界时间和日期表。
5,TOT--------时间偏移表。
6,RST-------运行状态表,能准确而迅速更新一个或多个时间的时间状态。
总结:这几个表的用途和关联:
NIT:用来描述网络信息、网络传输的复用流/TS流的物理结构信息
PAT:描述PMT的PID信息
PMT:描述节目的音视频PID、PCR_PID、音视频ECM_PID信息
SDT:描述节目名称、节目提供者名称等补充信息
EIT:描述时间信息,包括时间名称、事件起始和持续时间、事件内容简介等信息
BAT:描述业务群的名称、业务群ID,以及业务群包含的节目信息
CAT:描述一些条件,就是CA加密等授权的问题信息
TDT/TOT:描述当前的时间信息和本地偏移时间信息