【无标题】

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

相关推荐
SHolmes18545 分钟前
给定某日的上班时间段,计算当日的工作时间总时长(Python)
开发语言·前端·python
咖啡の猫13 分钟前
Python字典元素的增、删、改操作
java·开发语言·python
Lucky小小吴21 分钟前
JAVA漫谈反序列化篇——笔记
java·开发语言·笔记
ytttr8731 小时前
基于 C# WinForm 实现的 电影院售票系统
开发语言·c#
Tony Bai1 小时前
Goroutine “气泡”宇宙——Go 并发模型的新维度
开发语言·后端·golang
编程大师哥1 小时前
Boost C++
java·c++·php
Larry_Yanan1 小时前
Qt多进程(二)QProcess+stdio
开发语言·qt
码农葫芦侠1 小时前
Qt 跨线程内存管理陷阱:QSharedPointer、deleteLater() 与 QPointer 的致命组合
开发语言·数据库·qt
d111111111d1 小时前
C语言中,malloc和free是什么,在STM32中使用限制是什么,该如何使用?
c语言·开发语言·笔记·stm32·单片机·嵌入式硬件·学习
网安_秋刀鱼1 小时前
【java安全】shiro鉴权绕过
java·开发语言·安全