【无标题】

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

forbidden_bit(1bit):禁止位

nal_reference_bit:优先级

nal_unit_type:NALU的类型:

可以使用这个算法直接得出 type = nalubuf4 & ((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帧的类型

相关推荐
Chen_harmony5 分钟前
一、C++入门基础
开发语言·c++
事圆则缓6 分钟前
Kotlin Flow、StateFlow、SharedFlow 全解析:冷流、热流与 Android 状态管理
android·kotlin·php
学逆向的9 分钟前
远程线程注入
开发语言·jvm·网络安全·win32
阡陌数智24 分钟前
RAG 系统的召回退化:向量库、分块、重排全链路问题排查与优化实践
开发语言·人工智能·语言模型·自然语言处理·推荐算法
汤米粥30 分钟前
后端开发主流技术方案
java·python·golang·php·nodejs·后端开发
geovindu33 分钟前
rust: Flyweight Pattern
开发语言·后端·设计模式·rust·享元模式·结构型模式
Escalating_xu1 小时前
【C 语言】字符函数和字符串函数:从 ctype 到 strtok、strerror 全面解析
java·c语言·开发语言
在猴站学算法1 小时前
(实战)PHP文件包含漏洞
网络安全·php
郝学胜-神的一滴1 小时前
C++ Templates 07:编译报错和调试手段与实战技巧
开发语言·c++·后端·软件工程·visual studio
害人终害己1 小时前
Redisson 连接 Redis 失败 报错解决方案
java·开发语言