)*+/1:描述单个媒体文件的长度。后面为媒体文件,如2
2、ts 文件
2 文件为传输流文件,视频编码主要格式 34!#,音频为 55&'。
2 文件分为三层:ts层 "2 !, 就是在 2 层加入数据流的识别和传输必
须的信息;
pes层 56*%!" % !,2 层是在音视频数据上加了时
间戳等对数据帧的说明信息;
es 层 *%!" 7 !2 层就是音视频数据。
(1)ts 层
2 包大小固定为 字节,2 层分为三个部分:23 8、 8 "
9%8、 7% 8。23 8 固定 个字节; 8 "9%8 可能存在也可能不存在,主要
作用是给不足 字节的数据做填充; 7% 8 是 2 数据。
ts header
sync_byte
同步字节,固定为
transport_error_
indicator
传输错误指示符,表明在 2 头的 8 域后由一个无用字节,通常都为 ,
这个字节算在 8 域长度内
payload_unit_sta
rt_indicator
负载单元起始标示符,一个完整的数据包开始时标记为 表示携带的是
或 * 第一个包
transport_priorit
y
传输优先级, 为低优先级, 为高优先级,通常取
pid
'
8 值
transport_scram
bling_control
传输加扰控制, 表示未加密, 包中的有效数据未经加扰处理。
adaptation_eld
_control
是否包含自适应区,‘:保留;‘:为无自适应域,仅含有效负载;‘:为仅
含自适应域,无有效负载;‘:为同时带有自适应域和有效负载。
continuity_count
er
递增计数器,从 ,;,起始值不一定取 , 相同的包,计数器必须是连续
的
2 层的内容是通过 值来标识的,主要内容包括:$ 表、& 表、音频流、视
频流。解析 2 流要先找到 $ 表,只要找到 $ 就可以找到 &,然后就可以找到音视频流
了。PAT 表的 PID 值固定为 0。$ 表和 & 表需要定期插入 2 流,因为用户随时可能加入
2 流,这个间隔比较小,通常每隔几个视频帧就要加入 $ 和 &。$ 和 & 表是必须的,
还可以加入其它表如 (业务描述表)等,不过 3%2 流只要有 $ 和 & 就可以播放了。
PAT 表:主要的作用就是指明了 & 表的 值。