NON IDR 非参考帧
NON IDR 属于 [RTP header] + 单一NAL单元模式 ,所以RTP包结构如下
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 |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|F|NRI| type | |
+-+-+-+-+-+-+-+-+ |
| |
| Bytes 2..n of a Single NAL unit |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| :...OPTIONAL RTP padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
先看 抓到的 dump
0000 80 e0 e2 21 ff 6e 08 e5 c6 0a 3f ef 41 9a 12 5b .àâ!ÿn.åÆ.?ïA..[
0010 10 ec e7 fe a7 84 00 00 03 00 00 03 00 00 03 00 .ìçþ§...........
0020 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 30 ...............0
0030 20
在上面12个byte是 [RTP Header] 对应的码流 和SPS 一样的RTP Header
80 e0 e2 21
ff 6e 08 e5
c6 0a 3f ef
====>转化 二进制
1000 0000 1110 0000 1110 0010 0010 0001 v=2 p=0 x=0 CC=0 M=1 PT=96 SN=57889
1111 1111 0110 1110 0000 1000 1110 0101 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: 57889
Timestamp: 4285401317
Synchronization Source identifier: 0xc60a3fef (3322560495)
NALU 码流 .根据单一NAL单元模式 判断 前1byte 是[NALU Header]
0000 41 9a 12 5b 10 ec e7 fe a7 84 00 00 03 00 00 03 A..[.ìçþ§.......
0010 00 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 ................
0020 00 03 00 30 20 ...0
===> 转化 第一个字节 41
0100 0001 F=0 NRI=10 特别重要 type=1 说明是 NON-IDR
wireshark 解析
NAL unit header or first byte of the payload
0... .... = F bit: No bit errors or other syntax violations
.10. .... = Nal_ref_idc (NRI): 2
...0 0001 = Type: NAL unit - Coded slice of a non-IDR picture (1)
剩下的就看下H264 NAL Unit Payload NALU的负载
0000 9a 12 5b 10 ec e7 fe a7 84 00 00 03 00 00 03 00 ..[.ìçþ§........
0010 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 00 ................
0020 03 00 30 20 ..0
wireshark 是解析不出H264 码流的
能理解多少,记多少,为后面学习编码和解码打基础