一、引言
由《音视频入门基础:RTP专题(3)——SDP简介》可以知道,SDP中的packetization-mode表示 RTP有效载荷类型的属性或接收器实现的功能。只能指示一个配置点;因此,当声明支持一种以上数据包化模式的功能时,必须使用多个配置点(RTP 有效载荷类型)。当packetization-mode值等于0或不存在packetization-mode时,表示必须使用Single NAL unit mode(单一的NAL模式);当packetization-mode的值等于1时,表示必须使用Non-interleaved mode(非交错模式);当 packetization-mode的值等于 2 时,表示必须使用Interleaved mode(交错模式)packetization-mode的值必须0至2(含 2)范围内的整数。
本文对上述三种packetization-mode进行简介。
二、packetization-mode为0
根据《RFC 6184》第34页,当packetization-mode参数的值等于0或不存在 packetization-mode时,将使用Single NAL unit mode(单一的NAL模式)。所有接收器必须支持这种模式。它主要用于低延迟应用,适用于实时性要求高且网络条件较好的场景。该模式下只能使用Single NAL Unit Packet(每个RTP包只包含一个完整的NALU,即一个 RTP包仅由一个完整的NALU组成),不得使用STAPs(STAP-A、STAP-B)、MTAPs(MTAP16、MTAP24)和FUs(FU-A、FU-B)。Single NAL Unit Packets的传输顺序必须符合 NAL单元解码顺序:
三、packetization-mode为1
根据《RFC 6184》第34页,当packetization-mode参数的值等于1时,将使用Non-Interleaved Mode(非交错模式)。它主要用于低延迟应用。只能使用Single NAL Unit Packet、STAP-A和FU-A,不得使用STAP-B、MTAP(MTAP16、MTAP24)和FU-B。NAL单元的传输顺序必须符合 NAL单元解码顺序:
四、packetization-mode为2
根据《RFC 6184》第34页,当packetization-mode参数的值等于2时,将使用Interleaved Mode(交错模式)。某些接收器可能支持该模式。可以使用STAP-B、MTAP(MTAP16、MTAP24)、FU-A和FU-B。不得使用STAP-A和Single NAL Unit Packet: