视频流基础知识 1-PSI/SI

在 ts 流转成 es 流的学习过程中,了解到 PSI 相关的基础知识在这里做一记录总结,方便以后查找和理解.

在数据传输前打包成 MPEG-2 的 TS (传输流) 包,这些 TS 包如果没有引导信息,接收端的解码器将无法找到需要的码流信息,因此 MPEG-2 专门定义了 PSI(节目信息),PSI 的作用自动设置和引导解码器进行解码

PSI/SI 关键词

序号关键字全拼翻译备注
1PSIProgram Specific Information 节目引导信息对单一码流的描述
2SIService Information 业务信息对系统中所有码流的描述,包含了 PSI(PSI+9 张表)
3TS 包 Transport Packet 传输包数字视音频、图文数据打包成 TS 包
4TSTransport Stream 传输流(TS 流)一个频道(多个节目及业务)的 TS 包复用后称 TS 流
5PATProgram Association Table 节目关联表将节目号码和节目映射表 PID 相关联,获取数据的开始
6PMTProgram Map Table 节目映射表指定一个或多个节目的 PID
7CATConditional Access Table 条件接收表将一个或多个专用 EMM 流分别与唯一的 PID 相关联
8NITNetwork Information Table 网络信息表描述整个网络,如多少 TS 流、频点和调制方式等信息
9SDTService Description Table 业务描述表包含业务数据(如业务名称、起始时间、持续时间等)
10BATBouquet Association Table 业务群关联表给出业务群的名称及其业务列表等信息
11EITEvent Information Table 事件信息表包含事件或节目相关数据,是生成 EPG 的主要表
12RSTRunning Status Table 运行状态表给出事件的状态(运行 / 非运行)
13TDTTime&Date Table 时间和日期表给出当前事件和日期相关信息,更新频繁
14TOTTime Offset Table 时间偏移表给出了当前时间日期与本地时间偏移的信息
15STStuffing Table 填充表用于使现有的段无效,如在一个传输系统的边界
16SITStuffing Information Table 选择信息表仅用于码流片段中,如记录的一段码流,包含描述该码流片段业务信息段的地方
17DITDiscontinuity Information Table 间断信息表仅用于码流片段,如记录的一段码流中,它将插入到码流片段业务信息间断的地方
  • PAT,PMT,CAT,NITPSI 信息 , 由 MPEG2 标准定义,NIT 是由 SI 标准规定
  • SDT,BAT,EIT,RST,TDT,TOT,ST,SIT,DITSI 信息

业务 (Service) 与事件 (Event)

业务就是指 “频道”,事件就是 “节目”.

举个例子:CCTV1 是一个频道,也就是我们所说的 “业务(Service)”;《新闻联播》是一个节目,也就是我们所说的 “事件 (Event)”。

SI 信息的构成

SI 信息内容是按照 network (网络)→transport strem(传输流)→service(业务)→event(事件)的分层顺序描述

video_ts_SI

为了能有效地从众多的数据包中组织起 SI 信息,而使用了很多的标识。有 Network_id (网络标识)、 Original_network_id (原始网络标识)、Transport_stream_id (传输流标识)、Service id (业务标识)、eventid_id (事件标识)、Bouquet_id (业务群组标识)。

  • 一个网络信息由 network_id 来定位。
  • 一个 TS 由 network_id、Original_network_id、Transport_stream_id 来定位,标明这个流在那个网络播发,它原属那个网络,并给它加上标识。
  • 一个业务由 network_id、Original_network_id、Transport_stream_id、service_id 来定位,标明这个业务在那个网络播发,它原属那个网络和那个流,并给它加上标识。这体现在 SDT 表中。
  • 一个事件由 network_id、Original_network_id、Transport_stream_id、service_id、event_id 来定位,标明这个事件在那个网络播发,它原属那个网络和那个流及那个业务,并给它加上标识。这体现在 EIT 表中。

SI 和 SI 信息的各种表的 PID

TablePID
PAT0x0000
CAT0x0001
TSDT0x0002
NIT,ST0x0010
SDT,BAT,ST0x0011
EIT,ST0x0012
RST,ST0x0013
TDT,TOT,ST0x0014
DIT0x001E
SIT0x001F

表是组成 SI 信息的一种数据结构。

由 MPEG-2 定义的 TS 里面,数据包携带了两类信息:

  • 一是音、视频等素材的数据,
  • 二是 PSI 表。

具有给定 PID 的数据包的有序排列就形成了 TS 流。PSI 表里的承载的内容主要是 TS(本节目流)的描述参数。

由 MPEG-2 定义的 PSI 主要包含有三个表:PATPMTCAT。每个表都可作为一个或多个 TS 包的净荷插入 TS 中传送。

一个 TS 数据包的净荷为 188 个字节,当一个 PSI/SI 表的字节长度大于 184 字节时,就要对这个表进行分割,形成段(section)来传送。分段机制主要是将一个数据表分割成多个数据段。在 PSI/SI 表到 TS 包的转换过程中,段起到了中介的作用。由于一个数据包只有 188 字节,而段的长度是可变的,EIT 表的段限长 4096 字节,其余 PSI/SI 表的段限长为 1024 字节。因此,一个段要分成几部分插入到 TS 包的净荷中。
video_ts_table

缩写

  • EPG (Electronic Program Guide) : 电子节目指南

参考