rtp载荷h264码流分析

rtp载荷h264码流分析

       H.264 的基本流由一系列NALU(Network Abstraction Layer Unit )组成,不同的NALU数据量各不相同。当数据流是储存在介质上时,在每个NALU 前添加起始码:0x000001,用来指示一个 NALU的起始和终止位置。在这样的机制下,在码流中检测起始码,作为一个NALU得起始标识,当检测到下一个起始码时,当前NALU结束。每个NALU单元由一个字节的 NALU头(NALU Header)和若干个字节的载荷数据(RBSP)组成。所以当数据量从存储介质中读出时才头四个自己是0x00 0x00 0x00 0x01,但在网络传输中,你就看不到0x00 0x00 0x00 0x01了。

RTP,RTCP数据和RTSP数据共享TCP数据通道,RTP和RTCP数据会以$符号+1个字节的通道编号+2字节长,共4个字节的前缀开始,流数据紧跟其后。RTSP数据是没有前缀数据的。RTP数据和RTCP数据的区别在于第二个字节的通道编号,据观察RTP通道编号是偶数,RTCP通道编号是奇数。(可参考RFC2326  10.12 Embedded (Interleaved) Binary Data

Interleaved Fream包结构如下:

WireShark抓包具体分析如下:

RTSP Interleaved Frame

0x24           (魔法数)
0x00           (通道0)
0x00 0x26      (RTSP Interleaved Frame包含的数据的的大小)
80 60 43 72 26 9f 23 94 89 34 23 ba          (RTP头)

67 64 00 1f ac 2c 6a 81 40 16 e9 b8 08 08

0a 00 00 03 00 02 00 00 03 00 65 08          (H264数据)

 

 

RTP 头分析,下面的文章写的很详细:

https://blog.csdn.net/chen495810242/article/details/39207305

 

H264数据分析

 

                             

(RFC3984   5.3.  NAL Unit Octet Usage)

(https://tools.ietf.org/html/rfc3984#section-5.1)

 

单个单元包:第一个字节的低5位决定Type。

Type = 0x67 & 0x1F

 

其他参考链接:

https://blog.csdn.net/qq_25005909/article/details/78622326

https://blog.csdn.net/rankun1/article/details/52681629

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值