【无标题】

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

相关推荐
二哈喇子!4 分钟前
空指针异常
开发语言
咚为10 分钟前
Rust Print 终极指南:从底层原理到全场景实战
开发语言·后端·rust
%xiao Q16 分钟前
GESP C++五级-202406
android·开发语言·c++
Psycho_MrZhang16 分钟前
Neo4j Python SDK手册
开发语言·python·neo4j
Traced back23 分钟前
# C# + SQL Server 实现自动清理功能的完整方案:按数量与按日期双模式
开发语言·c#
sin220127 分钟前
MyBatis的执行流程
java·开发语言·mybatis
web3.088899939 分钟前
1688图片搜索API,相似商品精准推荐
开发语言·python
二哈喇子!39 分钟前
JAVA环境变量配置步骤及测试(JDK的下载 & 安装 & 环境配置教程)
java·开发语言
少云清1 小时前
【性能测试】15_JMeter _JMeter插件安装使用
开发语言·python·jmeter
yj爆裂鼓手1 小时前
c#万能变量
开发语言·c#