PS流包格式之PS/SYS/PSM/PES头

PS流包格式
1,PS流的基本组成
PS流由很多个PS包组成.
每个PS包由如下组成:
PS header + SYS header(I帧)+PSM header(I帧) +PES header+ PES packet n
如:
不含音频非I帧顺序为:PS header | PES header | h264raw data
含音频顺序如下:PS 包=PS头|PES(video)|PES(audio)
PS包主要由固定包头,系统头,和PES包组成,其具体组成如下图所示:
tttttt
PS流总是以0x000001BA开始,以0x000001B9结束,对于一个PS文件,有且只有一个结束码0x000001B9,不过对于网传的PS流,则应该是没有结束码的.

1.1 PS header:
在这里插入图片描述
PS头最小长度14个字节
pack_start_code字段:起始码,占位32bit,标识PS包的开始,固定为0x000001BA;

program_mux_rate字段:速率值字段,占位22bit,正整数,表示P-STD接收此字段所在包的PS流的速率;这个值以每秒50字节作为单位;禁止0值;
Marker_bit:标记字段,占位1bit,固定为’1’;
Marker_bit:标记字段,占位1bit,固定为’1’;
stuffing_byte:填充字段,固定为0xFF;长度由pack_stuffing_length确定;

1.2 system header
system header 只有关键帧的时候,才会存在
在这里插入图片描述
 system_header_start_code字段:系统头部起始码,占位32bit,值固定为0x000001BB,标志系统首部的开始;
 header_length字段:头部长度字段,占位16bit,表示此字段之后的系统首部字节长度;
SYS头长度18个字节,则header_length=18-4-2=18-6=12
 Marker_bit字段:占位1bit,固定值为1;
 rate_bound字段:整数值,占位22bit,为一个大于或等于PS流所有PS包中的最大program_mux_rate值的整数;可以被解码器用来判断是否可以对整个流进行解码;
 Marker_bit字段:占位1bit,固定值为1

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值