FU-A 分片单元 过程

FU-A

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X|  CC   |M|     PT      |       sequence number         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           synchronization source (SSRC) identifier            |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|            contributing source (CSRC) identifiers             |
|                             ....                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FU indicator  |   FU header   |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                                                               |
|                         FU payload                            |
|                                                               |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :...OPTIONAL RTP padding        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
							+---------------+
+-+-+-+-+-+-+-+-+           |0|1|2|3|4|5|6|7|
| FU indicator  |  < == >   +-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+           |F|NRI|  Type   |
							+---------------+
							
							+---------------+
+-+-+-+-+-+-+-+-+           |0|1|2|3|4|5|6|7|
| FU header     |   < == >  +-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+           |S|E|R|  Type   |
							+---------------+

FU-A Start

先看 抓到的 dump

0000   80 60 e2 51 ff 70 7f 99 c6 0a 3f ef 5c 81 9a dd   .`âQÿp..Æ.?ï\..Ý
0010   11 5a 82 05 b5 b5 b5 a2 65 30 00 02 3e 73 ff fa   .Z..µµµ¢e0..>sÿú
0020   58 00 00 1d fd 39 0c 62 cb 80 17 ff 7f ff 0f b3   X...ý9.bË..ÿ.ÿ.³
0030   02 d5 63 c8 3b 0c c5 4a a3 e7 15 6a 7a f7 54 b1   .ÕcÈ;.ÅJ£ç.jz÷T±
0040   a3 69 b0 d2 7f 06 ab 02 ce 2d 19 2f bd 40 83 a8   £i°Ò..«.Î-./½@.¨
0050   0e f9 72 05 b1 d9 f9 e9 d3 b3 ......                                                

在上面12个byte是 [RTP Header]

80 60 e2 51 
ff 70 7f 99 
c6 0a 3f ef
====>转化 二进制
1000 0000 0110 0000 1110 0010 0101 0001 v=2 p=0 x=0 CC=0 M=0 PT=96 SN=57937 
1111 1111 0111 0000 0111 1111 1001 1001 timestamp 
1100 0110 0000 1010 0011 1111 1110 1111 ssrc 

对应wireshark 解析

Real-Time Transport Protocol
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    0... .... = Marker: False
    Payload type: DynamicRTP-Type-96 (96)
    Sequence number: 57937
    Timestamp: 4285562777
    Synchronization Source identifier: 0xc60a3fef (3322560495)

分片NALU 地一个字节 [FU indicator] 第二个字节 [FU Header]

0000   5c 81 9a dd 11 5a 82 05 b5 b5 b5 a2 65 30 00 02   \..Ý.Z..µµµ¢e0..
0010   3e 73 ff fa 58 00 00 1d fd 39 0c 62 cb 80 17 ff   >sÿúX...ý9.bË..ÿ
0020   7f ff 0f b3 02 d5 63 c8 .......

===> 转化 第一个字节 5c 第二个字节 81
0101 1100  F=0 NRI=10  type=28 说明是 FU-A
1000 0001  S=1 E=0 R=0  type=1 非参考帧

wireshark 解析

FU identifier
    0... .... = F bit: No bit errors or other syntax violations
    .10. .... = Nal_ref_idc (NRI): 2
    ...1 1100 = Type: Fragmentation unit A (FU-A) (28)
FU Header
    1... .... = Start bit: the first packet of FU-A picture
    .0.. .... = End bit: Not the last packet of FU-A picture
    ..0. .... = Forbidden bit: 0
    ...0 0001 = Nal_unit_type: Coded slice of a non-IDR picture (1)

剩下的就看下H264 分片 NAL Unit Payload NALU的负载

0000   9a dd 11 5a 82 05 b5 b5 b5 a2 65 30 00 02 3e 73   .Ý.Z..µµµ¢e0..>s
0010   ff fa 58 00 00 1d fd 39 0c 62 cb 80 17 ff 7f ff   ÿúX...ý9.bË..ÿ.ÿ
0020   0f b3 02 d5 63 c8 3b 0c c5 ....

FU-A

先看 抓到的 dump

0000   80 60 e2 52 ff 70 7f 99 c6 0a 3f ef 5c 01 9f 95   .`âRÿp..Æ.?ï\...
0010   71 c6 30 d3 cd e7 7d a6 19 00 04 c4 00 83 59 cc   qÆ0ÓÍç}¦...Ä..YÌ
0020   48 ab c1 23 51 12 48 f8 83 e5 5e a9 ce 19 ec 1d   H«Á#Q.Hø.å^©Î.ì.
0030   e3 ea 43 f9 14 2c 6f 90 .......                                            

在上面12个byte是 [RTP Header]

80 60 e2 52 
ff 70 7f 99 
c6 0a 3f ef
====>转化 二进制
1000 0000 0110 0000 1110 0010 0101 0010 v=2 p=0 x=0 CC=0 M=0 PT=96 SN=57938 
1111 1111 0111 0000 0111 1111 1001 1001 timestamp 
1100 0110 0000 1010 0011 1111 1110 1111 ssrc 

对应wireshark 解析

Real-Time Transport Protocol
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    0... .... = Marker: False
    Payload type: DynamicRTP-Type-96 (96)
    Sequence number: 57938
    Timestamp: 4285562777
    Synchronization Source identifier: 0xc60a3fef (3322560495)

分片NALU 地一个字节 [FU indicator] 第二个字节 [FU Header]

0000   5c 01 9f 95 71 c6 30 d3 cd e7 7d a6 19 00 04 c4   \...qÆ0ÓÍç}¦...Ä
0010   00 83 59 cc 48 ab c1 23 51 12 48 f8 83 e5 5e a9   ..YÌH«Á#Q.Hø.å^©
0020   ce 19 ec 1d e3 ea 43 f9 14 2c 6f 90 4a 1d eb f1   Î.ì.ãêCù.,o.J.ëñ
0030   5d b8 53 b3 62 07 7e c1 ......

===> 转化 第一个字节 5c 第二个字节 01
0101 1100  F=0 NRI=10  type=28 说明是 FU-A
0000 0001  S=0 E=0 R=0  type=1 非参考帧

wireshark 解析

FU identifier
    0... .... = F bit: No bit errors or other syntax violations
    .10. .... = Nal_ref_idc (NRI): 2
    ...1 1100 = Type: Fragmentation unit A (FU-A) (28)
FU Header
    0... .... = Start bit: Not the first packet of FU-A picture
    .0.. .... = End bit: Not the last packet of FU-A picture
    ..0. .... = Forbidden bit: 0
    ...0 0001 = Nal_unit_type: Coded slice of a non-IDR picture (1)

剩下的就看下H264 分片 NAL Unit Payload NALU的负载

0000   9f 95 71 c6 30 d3 cd e7 7d a6 19 00 04 c4 00 83 .Ý.Z..µµµ¢e0..>s
0010   59 cc 48 .....

FU-A End

先看 抓到的 dump

0000   80 e0 e2 53 ff 70 7f 99 c6 0a 3f ef 5c 41 7c cb   .àâSÿp..Æ.?ï\A|Ë
0010   df 35 ba 73 4a ae d7 94 b6 17 04 7d 50 e0 94 65   ß5ºsJ®×.¶..}Pà.e
0020   b5 26 f5 1c 3a 61 ca 92 ba ed 3c d7 c4 a2 35 d3   µ&õ.:aÊ.ºí<×Ä¢5Ó
0030   15 a4 72 f4 9c fe fc .....                             

在上面12个byte是 [RTP Header]

80 e0 e2 53 
ff 70 7f 99 
c6 0a 3f ef
====>转化 二进制
1000 0000 1100 0000 1110 0010 0101 0011 v=2 p=0 x=0 CC=0 M=0 PT=96 SN=57939 
1111 1111 0111 0000 0111 1111 1001 1001 timestamp 
1100 0110 0000 1010 0011 1111 1110 1111 ssrc 

对应wireshark 解析

Real-Time Transport Protocol
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    1... .... = Marker: True
    Payload type: DynamicRTP-Type-96 (96)
    Sequence number: 57939
    Timestamp: 4285562777
    Synchronization Source identifier: 0xc60a3fef (3322560495)

分片NALU 地一个字节 [FU indicator] 第二个字节 [FU Header]

0000   5c 41 7c cb df 35 ba 73 4a ae d7 94 b6 17 04 7d   \A|Ëß5ºsJ®×.¶..}
0010   50 e0 94 65 b5 26 f5 1c 3a 61 ca 92 ba ed 3c d7   Pà.eµ&õ.:aÊ.ºí<×
0020   c4 a2 35 d3 15 a4 72 f4 .....

===> 转化 第一个字节 5c 第二个字节 41
0101 1100  F=0 NRI=10  type=28 说明是 FU-A
0100 0001  S=0 E=1 分片帧结束 R=0  type=1 非参考一帧

wireshark 解析

FU identifier
    0... .... = F bit: No bit errors or other syntax violations
    .10. .... = Nal_ref_idc (NRI): 2
    ...1 1100 = Type: Fragmentation unit A (FU-A) (28)
FU Header
    0... .... = Start bit: Not the first packet of FU-A picture
    .1.. .... = End bit: the last packet of FU-A picture
    ..0. .... = Forbidden bit: 0
    ...0 0001 = Nal_unit_type: Coded slice of a non-IDR picture (1)

剩下的就看下H264 分片 NAL Unit Payload NALU的负载

0000   7c cb df 35 ba 73 4a ae d7 94 b6 17 04 7d 50 e0   ...Ëß5ºsJ®×.¶..}
0010   94 65 b5 26 f5 1c 3a 61 ca 92 ba ed 3c d7 ...  
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值