h264 RTP STAP-A单时间聚合包
参考官方文档:http://www.rosoo.net/Files/UpFiles/RsProduct/avtools/2009-4/2009491562537854.txt
聚合包的RTP荷载格式的结构见图3
即开头1个字节表示NAL单元类型,接着1个或多个聚合单元,后面是可选的RTP填充。
单时间聚合包STAP
单时刻聚合包(STAP)应该用于当聚合在一起的NAL单元共享相同的NALU时刻。STAP-A荷载不包括DON,至少包含一个单时刻聚合单元见图4
STAP-B荷载包含一个16位的无符号解码顺序号(DON) (网络字节序)紧跟至少一个单时刻聚合单元。见图5.
图 7表示一个例子--一个RTP包包含一个STAP-A. STAP包含两个单时刻聚合单元, 在图中用1,2标记。
开始是4个字节的RTP头,接着1字节NAL单元类型,应该是24,然后2字节表示第1个NALU长度,接着1字节表示第1个NALU类型,然后若干个字节的NALU负载数据,以此类推。
注意:NALU Size = NALU HDR + NALU DATA,是头字节长度加负载数据长度。
一个STAP-A RTP包示例,其中包含了sps pps
如图,第1个字节18表示十进制24,即这个包是STAP-A类型
00 02 表示第1个NALU长度为2,即 09 10两个字节,09表示第一个NALU HDR,类型取后5位为0x08表示类型
然后从第5、6个字节 00 18表示第2个NALU的长度,换算为24, 头字节67取后5位为96表示类型,也就是sps
从第7字节67开始24字节长度为第2个NALU数据,到80结束
然后 00 04表示第3个NALU长度为4字节,头字节68取后五位为类型,也就是pps
从第25字节68开始到结束4个字节就是第三个NALU数据
图 8 表示一个RTP包包含一个STAP-B. STAP包含两个单时刻聚合单元, 用 1,2标记。
STAP-B比STAP-A多了一个公共的DON,详见规范文档
分片单元相对来说比聚合单元更简单一点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探