【无标题】

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

相关推荐
方也_arkling5 分钟前
【Java-Day12】接口
java·开发语言
小小de风呀7 分钟前
de风——【从零开始学 C++】(十)vector的模拟实现
开发语言·c++
右耳朵猫AI13 分钟前
Rust技术周刊 2026年第20周
开发语言·后端·rust
kaico201822 分钟前
Python 在 Jenkins Pipeline 中的使用总结
开发语言·python·jenkins
流浪00123 分钟前
C++篇:深入理解 C++ 智能指针:从裸指针到 RAII 的蜕变
开发语言·c++
丘山望岳24 分钟前
二叉搜索双壁——map和set
开发语言·数据结构·c++
瑞雪兆丰年兮27 分钟前
[从0开始学Java|第十六、十七天]项目阶段(拼图小游戏)
java·开发语言
AI人工智能+电脑小能手27 分钟前
【大白话说Java面试题 第85题】【Mysql篇】第15题:MySQL 的事务中,幻读是怎么解决的?
java·开发语言·数据库·mysql·面试
yaoxin52112334 分钟前
423. Java 日期时间 API - DayOfWeek 和 Month 枚举
开发语言·python
秋雨梧桐叶落莳39 分钟前
iOS——抽屉视图详解
开发语言·macos·ui·ios·objective-c·cocoa