TS 包由以下3部分组成:
包头: 4字节, 同步,识别,检错和加密用
自适配域:可选
包数据:最大184字节(不存在自适配域)
4字节 | 184字节 | |
包头 | 自适配域 | 包数据 |
4字节包头结构:
1字节 | 1比特 | 1比特 | 1比特 | 13比特 | 2比特 | 2比特 | 4比特 |
同步字节 | 传输错误描述符 | 载荷起始描述符 | 传输优先 | 包识别 | 传输加扰控制 | 适配域控制 | 连续计数器 |
自适配域结构包含:
域长度:1字节
域标志:1字节, PCR标志就是其中一个重要标志
域信息: 由域长度指定
包数据的类型一般有如下几种:
PSI信息: PAT/PMT/CAT/NIT表
视频流
音频流
字幕流
除了PSI信息,视频流、音频流和字幕流会做PES打包。
PAT表结构
完整的PAT表包含一个头结构和若干个节目结构,
最后还要加上CRC校验。
PAT表头结构(总共8字节)
1Byte | 1bit | 1bit | 2bit | 12bit | 2Byte | 2bit | 5bit | 1bit | 1Byte | 1Byte |
表标识 | 段语法标识符 | 填0 | 保留 | 段长度含CRC | 传输流标识 | 保留 | 版本号 | 有效标识 | 段号 | 最后段号 |
PAT表节目结构
2Byte | 3bit | 13bit |
节目号 | 保留 | 节目映射表PID |
PMT表结构
一个完整的PMT表包含一个表头和若干个流结构,
最后还要加上CRC校验。
PMT表流结构
1Byte | 3bit | 13bit | 4bit | 12bit |
流类型 | 保留 | 基本元素PID | 保留 | 节目元素长度 |
PMT头结构(总共12字节)
1Byte | 1bit | 1bit | 2bit | 12bit | 2Byte | 2bit | 5bit | 1bit | 1Byte | 1Byte | 3bit | 13bit | 4bit | 12bit |
表标识 | 段语法标识符 | 填0 | 保留 | 段长度含CRC | 节目数 | 保留 | 版本 | 有效标识 | 段号 | 最后段号 | 保留 | PCR PID | 保留 | 节目信息长度 |