视频流基础知识 1-PSI/SI
在 ts 流转成 es 流的学习过程中,了解到 PSI 相关的基础知识在这里做一记录总结,方便以后查找和理解.
在数据传输前打包成 MPEG-2 的 TS (传输流) 包,这些 TS 包如果没有引导信息,接收端的解码器将无法找到需要的码流信息,因此 MPEG-2 专门定义了
PSI
(节目信息),PSI 的作用自动设置和引导解码器进行解码
PSI/SI 关键词
序号 | 关键字 | 全拼 | 翻译 | 备注 |
---|---|---|---|---|
1 | PSI | Program Specific Information | 节目引导信息 | 对单一码流的描述 |
2 | SI | Service Information | 业务信息 | 对系统中所有码流的描述,包含了 PSI(PSI+9 张表) |
3 | TS 包 | Transport Packet | 传输包 | 数字视音频、图文数据打包成 TS 包 |
4 | TS | Transport Stream | 传输流(TS 流) | 一个频道(多个节目及业务)的 TS 包复用后称 TS 流 |
5 | PAT | Program Association Table | 节目关联表 | 将节目号码和节目映射表 PID 相关联,获取数据的开始 |
6 | PMT | Program Map Table | 节目映射表 | 指定一个或多个节目的 PID |
7 | CAT | Conditional Access Table | 条件接收表 | 将一个或多个专用 EMM 流分别与唯一的 PID 相关联 |
8 | NIT | Network Information Table | 网络信息表 | 描述整个网络,如多少 TS 流、频点和调制方式等信息 |
9 | SDT | Service Description Table | 业务描述表 | 包含业务数据(如业务名称、起始时间、持续时间等) |
10 | BAT | Bouquet Association Table | 业务群关联表 | 给出业务群的名称及其业务列表等信息 |
11 | EIT | Event Information Table | 事件信息表 | 包含事件或节目相关数据,是生成 EPG 的主要表 |
12 | RST | Running Status Table | 运行状态表 | 给出事件的状态(运行 / 非运行) |
13 | TDT | Time&Date Table | 时间和日期表 | 给出当前事件和日期相关信息,更新频繁 |
14 | TOT | Time Offset Table | 时间偏移表 | 给出了当前时间日期与本地时间偏移的信息 |
15 | ST | Stuffing Table | 填充表 | 用于使现有的段无效,如在一个传输系统的边界 |
16 | SIT | Stuffing Information Table | 选择信息表 | 仅用于码流片段中,如记录的一段码流,包含描述该码流片段业务信息段的地方 |
17 | DIT | Discontinuity Information Table | 间断信息表 | 仅用于码流片段,如记录的一段码流中,它将插入到码流片段业务信息间断的地方 |
PAT
,PMT
,CAT
,NIT
为 PSI 信息 , 由 MPEG2 标准定义,NIT 是由 SI 标准规定SDT
,BAT
,EIT
,RST
,TDT
,TOT
,ST
,SIT
,DIT
为 SI 信息
业务 (Service) 与事件 (Event)
业务
就是指 “频道”,事件
就是 “节目”.
举个例子:CCTV1 是一个频道,也就是我们所说的 “业务(Service)”;《新闻联播》是一个节目,也就是我们所说的 “事件 (Event)”。
SI 信息的构成
SI 信息内容是按照 network (网络)→transport strem(传输流)→service(业务)→event(事件)的分层顺序描述
为了能有效地从众多的数据包中组织起 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
Table | PID |
---|---|
PAT | 0x0000 |
CAT | 0x0001 |
TSDT | 0x0002 |
NIT,ST | 0x0010 |
SDT,BAT,ST | 0x0011 |
EIT,ST | 0x0012 |
RST,ST | 0x0013 |
TDT,TOT,ST | 0x0014 |
DIT | 0x001E |
SIT | 0x001F |
表
表是组成 SI 信息的一种数据结构。
由 MPEG-2 定义的 TS 里面,数据包携带了两类信息:
- 一是音、视频等素材的数据,
- 二是 PSI 表。
具有给定 PID 的数据包的有序排列就形成了 TS 流。PSI 表里的承载的内容主要是 TS(本节目流)的描述参数。
由 MPEG-2 定义的 PSI 主要包含有三个表:PAT
、PMT
、CAT
。每个表都可作为一个或多个 TS 包的净荷插入 TS 中传送。
一个 TS 数据包的净荷为 188 个字节,当一个 PSI/SI 表的字节长度大于 184 字节时,就要对这个表进行分割,形成段(section)来传送。分段机制主要是将一个数据表分割成多个数据段。在 PSI/SI 表到 TS 包的转换过程中,段起到了中介的作用。由于一个数据包只有 188 字节,而段的长度是可变的,EIT 表的段限长 4096 字节,其余 PSI/SI 表的段限长为 1024 字节。因此,一个段要分成几部分插入到 TS 包的净荷中。
缩写
- EPG (Electronic Program Guide) : 电子节目指南