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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2018-04-11 Python中Mock的示例(转)
2018-04-11 Python Mock的入门(转)