com都有哪些网站,北京 集团公司网站建设,网站建设的流程与思路,济宁网站建设方面TS协议之PAT#xff08;节目关联表#xff09;TS协议之PMT#xff08;节目映射表#xff09;TS协议之PES#xff08;ES数据包#xff09;
该文档已上传#xff1a;下载地址
1. 概要
1.1 TS数据包#xff08;PES#xff09;协议数据组成
TSTS头PES头ES。TS#xf…TS协议之PAT节目关联表TS协议之PMT节目映射表TS协议之PESES数据包
该文档已上传下载地址
1. 概要
1.1 TS数据包PES协议数据组成
TSTS头PES头ES。TSPES头是在音视频流传输过程中需要的数据信息而ES其实就是我们所说的要打包的音视频原始流数据视频流H264/H265, 音频流AAC。
协议ISO/IEC 13818-1
1.2 TS数据包PES协议格式
1.3 字段解释
1.3.1 TS
1.3.1.1 TS头
字段字段描述同步字节固定为0x47错误标识通常为0负载起始标识符因为一个TS包规定为188字节一帧数据可能被分为好多切片帧数据第一个切片该标识为1其余切片为0传输优先级0低优先级1高优先级通常取0PID值用于数据标识传输加扰控制00未加密通常取001 10 11 用户定义是否包含自适应区00保留01为无自适应域仅含有效负载10为仅含自适应域无有效负载11为同时带有自适应域和有效负载。递增计数器大小4bit范围0-15不一定从0开始但是必须是连续递增的如果加到15从0重新开始。
1.3.1.2 自适应区
字段字段描述自适应区长度自适应区的数据长度是否包含PCR0x50包含PCR0x40不包含PCR有时候0x00也表示不包含PCRPCR五个字节的PCR数据PRC系统用于同步音视频数据的传输与播放PCR是一个时钟参考值用来指示从传输流的开始到当前位置的时间戳。它以90 kHz的时钟频率进行计数填充字节不够188字节用0xFF做填充数据。TS数据包一般自适应区后面接PES数据在PES载荷中做填充
1.3.2 PES
1.3.2.1 PES头
字段字段描述包起始码固定00 00 01流ID音频取值0xc0-0xdf,一般取值0xc0 视频取值0xe0-0xef,一般取直0xe0pes包长度可选信息头的长度ES(原始流数据H264或AAC)数据长度例如要打包一个视频帧长度我123456可以分片为很多个ts包但是pes包的长度为可选头长度123456因为PES描述的是一帧数据的信息不是一个ts信息所以每帧的第一个ts包才有PES信息详情参考文章结尾。
1.3.2.2 PES可选头信息
字段字段描述10固定为10.PES加扰控制0不加密PES优先级0低优先级1高优先级一般取值为0数据定位符1ES数据紧跟PES头0不一定紧跟一般选0版权标识PES的有效负载是有版权的一般取值为0原始或者复制1负载是原始数据0负载是备份7个标志位可以看作是8个bit代表8种状态取值规则参考后面描述
7个标志位取值规则8bit一个bit代表一种状态
00000000PTSDTSESCRES率OSM模型附加信息前一个CRC扩展域 例如
0x80只含有PTS
0xc0含有PTS和DTS
2. 实例数据分析
TS头 TS自适应区 PES头 ESH264
47 41 00 30 07 50 00 00 00 00 7E 00 00 00 01 E0 00 00 80 80 05 21 00 01 00 01 00 00 00 01 09 F0 00 00 00 01 67 42 00 2A 96 35 40 F0 04 4F CB 37 05 01 05 02 00 00 00 01 68 CE 31 B2 00 00 00 01 06 E5 01 B0 80 00 00 00 01 65 B8 00 00 1B 68 C0 00 00 B7 19 40 38 2E E0 05 4C 10 40 02 88 40 71 20 C3 3C 18 45 E2 F3 C5 B5 7B CB 8F 71 1E AF BE 7E F7 DF 7D F7 DF 7D F7 DE AF BE F3 63 EF 26 3D 5F 7D F7 93 1F 7B BC F8 F7 7B BE FB EF 72 77 9B 1E AF 72 77 10 0D 44 A7 C3 E1 F7 A7 94 5F A4 94 BD C8 21 C7 88 70 F2 14 83 53 CA 21 EF 24 A1 67 89 86 19 0F 89 48 37 93 77 DF 7D EE
2.1 PES包传输规则
一帧数据被分为很多分片每个分片的数据结构不尽相同如下
第一个tsTS头PES头部分ES
第二个tsTS头部分ES
...
最后一个tsTS头填充字节部分ES
也就是一帧数据只有一个PES。