H264 的 NAL 的问题

NAL
 
通过其一个 header+ data 形成一串数据流。
 
forbidden = b[0] >>7 & 0x01;
reference = b[0] >>5 & 0x03;
nal_type  = b[0] & 0x 1f;
 
[7, 6, 5, 4, 3,2, 1, 0](1byte) + Data
 
 
SODB, RBSP, EBSP
 
ITU-h264规定,
 
用0x000001(三个字节)作起始码。其实单纯的data数据被称为SODB,
 
由于操作上的需要,SODB完全是BIT格式的,即“1111110000。。。”
 
为了实现对字节的操作, 有时候需要给SODB补位,以达到一个字节的目
 
的,故RBSP就诞生了。补位的操作是在SODB的最后加1,如果位数不够,
 
续继续补0,直到为8位。
 
为了防止起始位0x00 00 01与原有RBSP中的数据0x00 00 01 产生混乱,
 
扫描起点之后的所有数据,发现0x 00 00 01 以及 0x 00 00 02 , 0x 00 00 03,
 
0x00 00 00 这样的数据,均给前插0x03, 故:
 
0x 00 00 00 就成为 0x 00 00 03 00 (区分)
0x 00 00 01 -------〉0x 00 00 03 01 (区分)
0x 00 00 02 -------〉0x 00 00 03 02  (保留)
0x 00 00 03 -------〉0x 00 00 03 03 (区分)
 
----------------------------------------------------------------------------------------------------
 
从上可以看到,简单读取过来的h264的数据,通过起始位0x00 00 01 或者 0x 00 00 00 01
 
得到EBSP,首先要去掉0x03得到RBSP, RBSP 要去掉拖尾数得到SODB
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值