分析IPNC_RDK H264编码器输出原始码流信息

最近在研究FLV视频格式,发现要想把H264码流解出来,就需要AVCDecoderConfigurationRecord 的信息,具体AVCDecoderConfigurationRecord  如何解析,可以参考:h264中avc和flv数据的解析

为了保证播放器可以正常解析数据出来,我们在打包数据格式无论是FLV还是MP4都必须提供AVCDecoderConfigurationRecord (里面包含里SPS序列参数集、PPS图片参数集,profie_idc,level_idc等信息),详细自己可以参考:ISO 14496-15 5.2.4.1.1.

     下面我们通过WinHex打开H264编码器直接输出的码流数据VBITS_HDR_0.bin,如下图:


帧数据是将多个 NALU 使用 00 00 01或者00 00 00 01 连接的字节数组,看上面的数据时以00 00 00 01将一个一个NALU单元连接起来输出,

看上图,可以得到,注意看灰色的部分,NALU单元是以00 00 00 01分割的

这里插入一点NALU的小知识,每个NALU第一个字节的前5位标明的是该NAL包的类型,即NAL nal_unit_type

复制代码
#define NALU_TYPE_SLICE 1
#define NALU_TYPE_DPA 2
#define NALU_TYPE_DPB 3
#define NALU_TYPE_DPC 4
#define NALU_TYPE_IDR 5
#define NALU_TYPE_SEI 6
#define NALU_TYPE_SPS 7
#define NALU_TYPE_PPS 8
#define NALU_TYPE_AUD 9  //访问分隔符
#define NALU_TYPE_EOSEQ 10
#define NALU_TYPE_EOSTREAM 11
#define NALU_TYPE_FILL 12

第一个NALU单元是sps,因为第一个字节 0x27&0x1f = 7 


第二个PPS,因为0x28 & 0x1f = 8


第三个是SEI,因为 0x6 & 0x1f = 6


第四个是IDR,即关键帧,因为 0x25 & 0x1f = 5


一次类推,可以将后面的所以NALU单元全部解析出来。

H264参数语法文档: SPS、PPS、IDR http://blog.csdn.net/heanyu/article/details/6205390

也可以参考毕厚杰的书。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值