H264 SEI 解析简介(转)
作者:欧拉回路
链接:https://www.jianshu.com/p/7b1307b13689
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
SEI简介
SEI即补充增强信息(Supplemental Enhancement Information),它提供了向视频码流中加入额外信息的方法,是H.264/H.265这些视频压缩标准的特性之一。
在视频内容的生成端和传输过程中插入SEI信息,SEI和视频内容一同经过传输链路到达消费端,消费端通过解析NAL获取对应的SEI信息,并执行相应的操作。
举例:
直播问答模式,就是通过SEI传递较多和答题业务相关的信息。通过SEI承载的信息,极大地优化了题目显示和观众音视频观看的同步性。
NAL简介
H264整个系统框架分为两层:视频编码层面(Video Coding Layer,简称VCL)和网络抽象层面(Network Abstraction Layer,简称NAL)。VCL负责表示有效视频数据的内容,NAL负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。NAL unit是NAL的基本语法结构,它包含一个字节的头信息(NAL header)和一系列来自VCL的原始数据字节流(RBSP)。
(1)H264 中 NAL unit type
NAL unit type储存在NAL header中,用一个字节表示。在H.264/AVC标准中,可用的NAL unit type一共有17种。其中值为6时表征SEI内容。比较常见的类型如下表所示
(2)NAL unit type 存储
解析SEI的内容
要解析SEI,需要先将解析出每个NAL unit。然后type=6即为SEI。
SEI=类型+长度+内容。
对于AVCC和ANNEX B两种不同包装格式,解析NAL的方式不同。
AVCC:一个前缀字节(表示NALU的长度)+ NALU
ANNEX B
ANNEX B:开始码(一般为000001或者00000001)+ NALU
参考资料:
https://blog.csdn.net/romantic_energy/article/details/50508332
https://blog.csdn.net/zhying719/article/details/108557508