H264 SPS PPS Slice Header解码笔记

NAL的启示码是0x000001,注意是3个字节,在实际情况下我们看到常是4个字节,0x00000001,这是做过字节对齐之后得出的结果,并不是什么错误。Spec中是这样写的,在某些类型的介质上,为了寻址方便,要求数据流在长度上对齐,或者必须是某个常数的倍数,H264建议在启示码前添加若干字节的0来填充。

防止竞争,为了避免start code和数据相同,在数据部分遇到0x000000/1/2/3,编码器在最后一个字节前插入一个新的字节0x03,在解码的时候,如果遇到0x000003,要将0x03删除,称为脱壳操作。

 

某些字段的意义:

Forbidden_zero_bit:该bit必须是0,如果不是0就出错了。

 

如果NALU对应的Slice为一帧的开始,则用4字节表示,即0x00000001;否则用3字节表示,0x000001

0000 0000 0000 0000 0000 0000 0000 0001

0010 0111 0100 0010 1110 0000 0010 1000

1000 1101 0110 1000 0000 0101 0000 0000

0101 1011 1010 0001 0000 0000 0000 0000

0000 0011 0000 0000 0000 0001 0000 0000

0000 0000 0000 00110000 0000 0011 0010

0000 1111 0001 0100 0010 0010 1010 0000

0000 0000 0000 0000 0000 0000 0000 0001

0010 1000 1100 1110 0000 0011 1101 0010

0100 1000

这是SPS+PPS+Slice Header的一段code,可以解码试试,跟StreamEye解码出来是不是一样。注意颜色标注部分要做脱壳操作,将0x03删除

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值