【无标题】

H264原始码流是一个接一个的NALU(网络抽象层单元)租成的,每个单元之间是由 0x00 0x00 0x00 0x01 或者 0x00 0x00 0x01分割而成的,紧接着就是NALU的单元头和数据体:

forbidden_bit(1bit):禁止位

nal_reference_bit:优先级

nal_unit_type:NALU的类型:

可以使用这个算法直接得出 type = nalubuf[4] & ((1 << 5) - 1);

和NALU相关的知识点总结:

SPS type = 7

PPS type = 8

(1)SPS和PPS是连续对出现的,后面可能紧跟着IDR片,也有可能是SEI(补偿增强信息单元),网上说使用ffmpeg编码yuv成h264时 SPS和PPS后面紧跟着的IDR

(2)H264码流封装成视频文件时比如FLV,SEI单元和SEI单元后面的第一帧一同处理。

(3)AVC编码中的IPB帧概念相对应的是nalutype的1~5,单纯靠nalutype判断不出来IPB帧的类型

相关推荐
t***54434 分钟前
如何在Dev-C++中选择Clang编译器
开发语言·c++
橙子1991101635 分钟前
Java 基础相关
java·开发语言
星越华夏1 小时前
python——三角函数用法
开发语言·python
代码中介商1 小时前
C语言数据存储深度解析:从原码反码补码到浮点数存储
c语言·开发语言·内存
2501_933329554 小时前
企业级舆情监测系统技术解析:Infoseek数字公关AI中台架构与实践
开发语言·人工智能·自然语言处理·架构
Wave8454 小时前
C++继承详解
开发语言·c++·算法
Tairitsu_H4 小时前
C++类基础概念:定义、实例化和this指针
开发语言·c++
.柒宇.4 小时前
Java八股之反射
java·开发语言
环流_4 小时前
多线程1(面试题--常见的线程创建方式)
java·开发语言·面试