=================================================================
音视频入门基础:H.264专题系列文章:
音视频入门基础:H.264专题(1)------H.264官方文档下载
音视频入门基础:H.264专题(2)------使用FFmpeg命令生成H.264裸流文件
音视频入门基础:H.264专题(3)------EBSP, RBSP和SODB
音视频入门基础:H.264专题(4)------NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介
音视频入门基础:H.264专题(5)------FFmpeg源码中 解析NALU Header的函数分析
音视频入门基础:H.264专题(6)------FFmpeg源码:从H.264码流中提取NALU Header、EBSP、RBSP和SODB
音视频入门基础:H.264专题(7)------FFmpeg源码中 指数哥伦布编码的解码实现
音视频入门基础:H.264专题(8)------H.264官方文档的描述符
=================================================================
H.264官方文档《T-REC-H.264-202108-I!!PDF-E.pdf》第42页,对NALU的描述符进行了说明:
描述符指定了NALU中每个语法元素的解析过程,也就是NALU中每个属性使用什么编码方式,占用多少空间。
其中:
f(n):n位固定模式比特串(由左至右),左位在先。
u(n):n位无符号整数。
FFmpeg源码中通过get_bits1和get_bits函数读取f(n)和u(n)类型的属性。关于这两个函数的用法可以参考《FFmpeg中位操作相关的源码:GetBitContext结构体,init_get_bits函数、get_bits1函数和get_bits函数分析》。
ue(v):无符号指数哥伦布编码。
FFmpeg源码中通过get_ue_golomb、get_ue_golomb_long、get_ue_golomb_31等函数实现 对无符号指数哥伦布编码的解码。关于这两个函数的用法可以参考《音视频入门基础:H.264专题(7)------FFmpeg源码中 指数哥伦布编码的解码实现》
se(v):有符号指数哥伦布编码。FFmpeg源码中通过get_se_golomb和get_se_golomb_long等函数实现对 有符号指数哥伦布编码的解码。
描述符一般会在描述码流的结构的表格的第三列显示: