一、简介
1)协议说明
- 使能b_annexb参数:X264编码器输出的码流格式符合《T-REC-H.264-201704-I!!PDF-E》Annex B Byte stream format+《T-REC-H.264-201704-I!!PDF-E》NAL unit syntax定义格式
- 关闭b_annexb参数:X264编码器输出的码流格式符合 “四个字节的长度字段“+《T-REC-H.264-201704-I!!PDF-E》NAL unit syntax定义格式。
2)差异说明
两种数据格式的差别主要是在NAL前面这三个或者四个字节的含义上。
annexb模式下,b_long_startcode下是4个字节的起始码,short startcode下是3个字节的起始码;当该NAL是NAL_SPS、NAL_PPS或者第一个Slicehead情况下,b_long_startcode为1。
非annexb模式下,起始4个字节为该NAL的长度。
播放器只能播放annexb格式的裸流。
X264编码器之所以有这两种格式,主要是为了配合封装MP4文件格式。MP4文件是由许多个BOX组成,每个BOX的结构是BOX 名+长度+净荷。若长度位不放在净荷信息里面,封装Mp4文件实现起来比较复杂。
二、annexb格式协议定义
根据《T-REC-H.264-201704-I!!PDF-E》Annex B Byte stream format定义,annexb格式如下:
三、X264代码实现对比
四、使能关闭annexb数据对比