媒体行中的媒体格式(payloadtype number)与rtpmap不同

问题描述:

在测试SIP视频呼叫时,我在下面的媒体行信息中找到了所提供媒体的答案。这是有效的媒体? 地方媒体格式数量与rtpmap数不同:媒体行中的媒体格式(payloadtype number)与rtpmap不同

m=video 49218 RTP/AVP 109 
b=TIAS:322000 
a=rtpmap:96 H264/90000 
a=fmtp:96 profile-level-id=42801f; max-mbps=216000; max-fs=3600; sar=13 
a=sendonly 

我要说的是,这是一个实现的bug,因为rtpmap属性不引用已在媒体上线,有效地渲染指定了负载格式属性无用。

Rfc4566

a=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding 
    parameters>] 

    This attribute maps from an RTP payload type number (as used in 
    an "m=" line) to an encoding name denoting the payload format 
    to be used. 

这不是一个有效的会话描述,但对于一个更微妙的原因,而不是拉尔夫的答案。 PT(有效载荷类型)109落在RFC 3551中定义的RTP/AVP配置文件的动态范围内,这是由于m行中的RTP/AVP而导致的。 “动态”意味着它说:RTP/AVP定义了一大堆标准编解码器 - PCM mu-law,G.729等等,并且还允许您定义自己的PT。

在这里,描述中说“我们将使用109的自定义PT,并在96处定义另一个PT,并且忘记定义109的含义”。

定义一堆rtpmap属性并且不使用它们是完全有效的;使用PT然后不定义它是无效的!