TS协议之PES(ES数据包)

TS协议之PAT(节目关联表)

TS协议之PMT(节目映射表)
TS协议之PES(ES数据包)

该文档已上传:下载地址

1. 概要

1.1 TS数据包(PES)协议数据组成

TS=TS头+PES头+ES。TS,PES头是在音视频流传输过程中需要的数据信息,而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:高优先级,通常取0; |
| PID值 | 用于数据标识 |
| 传输加扰控制 | 00:未加密,通常取001 10 11 :用户定义 |
| 是否包含自适应区 | 00:保留01:为无自适应域,仅含有效负载10:为仅含自适应域,无有效负载11:为同时带有自适应域和有效负载。 |
| 递增计数器 | 大小4bit,范围:0-15,不一定从0开始,但是必须是连续递增的,如果加到15,从0重新开始++。 |

1.3.1.2 自适应区

|---------|------------------------------------------------------------------------------------|
| 字段 | 字段描述 |
| 自适应区长度 | 自适应区的数据长度 |
| 是否包含PCR | 0x50:包含PCR,0x40:不包含PCR(有时候0x00也表示不包含PCR) |
| PCR | 五个字节的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,一般取直0xe0 |
| pes包长度 | 可选信息头的长度+ES(原始流数据(H264或AAC))数据长度,例如:要打包一个视频帧,长度我123456,可以分片为很多个ts包,但是pes包的长度为可选头长度+123456,因为PES描述的是一帧数据的信息不是一个ts信息,所以每帧的第一个ts包才有PES信息,详情参考文章结尾。 |

1.3.2.2 PES可选头信息

|---------|-----------------------------|
| 字段 | 字段描述 |
| 10 | 固定为10. |
| PES加扰控制 | 0:不加密 |
| PES优先级 | 0:低优先级,1:高优先级,一般取值为0 |
| 数据定位符 | 1:ES数据紧跟PES头,0:不一定紧跟,一般选0; |
| 版权 | 标识PES的有效负载是有版权的,一般取值为0 |
| 原始或者复制 | 1:负载是原始数据,0:负载是备份 |
| 7个标志位 | 可以看作是8个bit代表8种状态,取值规则参考后面描述 |

7个标志位取值规则,8bit一个bit代表一种状态:

0 0 0 0 0 0 0 0
PTS DTS ESCR ES率 OSM模型 附加信息 前一个CRC 扩展域

例如:

0x80:只含有PTS

0xc0:含有PTS和DTS

2. 实例数据分析

TS头 TS自适应区 PES头 ES(H264)

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包传输规则

一帧数据被分为很多分片,每个分片的数据结构不尽相同如下:

第一个ts:TS头+PES头+部分ES;

第二个ts:TS头+部分ES;

...

最后一个ts:TS头+填充字节+部分ES;

也就是一帧数据只有一个PES。

相关推荐
2601_9556624613 小时前
AI 配音工具 7 款实测:短视频、影视解说、小说推文音质横向对比
人工智能·音视频·语音识别·视频
阿童木写作14 小时前
跨境电商图片翻译工具,批量翻译视频字幕一键抠图
人工智能·python·音视频
深圳市宝华视联20 小时前
医院内网部署手术示教系统注意事项
嵌入式硬件·实时互动·音视频·实时音视频·视频编解码·嵌入式实时数据库
小柯南敲键盘20 小时前
跨境电商图片翻译工具,批量处理视频字幕与抠图
人工智能·python·音视频
weixin_4334176721 小时前
阿里视频大模型wan2.7‑t2v,可以生成视频
人工智能·python·音视频
阿童木写作1 天前
跨境电商图片翻译工具,批量翻译视频字幕还免费
python·音视频
stuartevil1 天前
AI图生视频常见坑:参考图风格不一致怎么解决
人工智能·深度学习·音视频
贾宝玉的玉宝贾1 天前
FreeSWITCH 简单图形化界面 63 - 编写 mod_avsource 模块,将 RTSP/RTMP 源桥接为视频通道
音视频·voip·freeswitch·ippbx·pbx·sip通信
Blockchina1 天前
5个开源AI视频项目怎么选?从脚本、分镜到Shorts和剪映自动化
人工智能·开源·音视频
要开心吖ZSH1 天前
腾讯 IM × TRTC 联动实战:后端如何撑起一次视频问诊(混流录制篇)
java·音视频·腾讯云·健康医疗·即时通讯·im