【无标题】

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帧的类型

相关推荐
leaves falling13 分钟前
C++模板进阶
开发语言·c++
Chockmans34 分钟前
春秋云境CVE-2021-34257
安全·web安全·网络安全·php·网络攻击模型·春秋云境·cve-2021-34257
坐吃山猪43 分钟前
Python27_协程游戏理解
开发语言·python·游戏
gCode Teacher 格码致知43 分钟前
Javascript提高:小数精度和随机数-由Deepseek产生
开发语言·javascript·ecmascript
椰猫子1 小时前
Javaweb(Filter、Listener、AJAX、JSON)
java·开发语言
盛世宏博北京2 小时前
以太网温湿度传感器运维技巧,提升设备稳定性与使用寿命
开发语言·php·以太网温湿度传感器
代码改善世界2 小时前
【MATLAB初阶】矩阵操作(一)
开发语言·matlab·矩阵
覆东流2 小时前
第1天:Python环境搭建 & 第一个程序
开发语言·后端·python
朝阳5813 小时前
rust 交叉编译指南
开发语言·后端·rust
量子炒饭大师3 小时前
【C++ 进阶】Cyber霓虹掩体下的代码拟态——【面向对象编程 之 多态】一文带你搞懂C++面向对象编程中的三要素之一————多态!
开发语言·c++·多态