在12字节的标题之后,RTP有效负载启动。
有效负载的第一个字节是NAL单元头。它包含三个部分:
+---------------+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|F|NRI| Type |
+---------------+
从RFC 3984:
F:1位 forbidden_zero_bit。 H.264规范声明值为 1作为语法违规。
NRI:2位 nal_ref_idc。值为00表示NAL 单元的内容未被用于重构用于图片间预测的参考图片。这样的NAL单元可以被丢弃而不冒险参考图片的完整性。值大于00的值表示需要解码NAL单元以保持参考图片的完整性。
类型:5位 nal_unit_type。该组件指定1的表7-1中定义的NAL单元有效载荷类型 ,并在本备忘录后面进行说明。有关所有当前定义的NAL单元类型及其 语义的 引用,请参阅1中的第7.4.1节。
的有效载荷类型,由至少显著5个比特定义的32个可能的值,都列在表1中:
Type Packet Type name Section
---------------------------------------------------------
0 undefined -
1-23 NAL unit Single NAL unit packet per H.264 5.6
24 STAP-A Single-time aggregation packet 5.7.1
25 STAP-B Single-time aggregation packet 5.7.1
26 MTAP16 Multi-time aggregation packet 5.7.2
27 MTAP24 Multi-time aggregation packet 5.7.2
28 FU-A Fragmentation unit 5.8
29 FU-B Fragmentation unit 5.8
30-31 undefined -
两个你提到的两个数据包的是P帧。对于I帧,NAL单元类型应该是5
,所以在你的情况下,第12个字节将是0x75
。 P帧的NAL单元类型为1
。