在SIP SDP中:
如何通过读取SDP媒体属性来检测G729A编解码器? 例如,在SDP下面,这是一个 G729B 编解码器,
m = audio 33712 RTP/AVP 18 101
a = rtpmap:18 G729/8000
a = fmtp:18 annexb=yes
a = rtpmap:101 telephone-event/8000
a = fmtp:101 0-15
如果我得到" annexb = no",是否意味着 G729a ?或当我得到" annexa = yes"只有它的 G729a 。根据{{3}} G729编解码器有各种附件,如A,B,C,D,E,F等...如果我想检测它们中的每一个,我可以依赖字符串"附件",例如,我想检测 G729F ,我可以依赖属性字符串" annexf = yes" ??
答案 0 :(得分:3)
来自RFC4856第2.1.9节
annexb: indicates that Annex B, voice activity detection, is
used or preferred. Permissible values are "yes" and "no"
(without the quotes); "yes" is implied if this parameter is
omitted.
更多细节可以从RFC3551第4.5.6节(G.729,G.729a和G.729b)和4.5.7(G.729d和G.729e)中找到
一般来说,G.729 / G.729a / G.729b具有相同的格式(G.729b增加了携带舒适噪声的附加帧)。
G.729附件C:
本附件介绍了ITU-T G.729和附件A完整版浮点算法的替代实现。
G.729d和G.279e定义了不同的帧格式(并且在SDP媒体线中的识别方式不同)
G.729附件F:
本附件提供了对附件B和D进行整合的说明,特此定义了DTX 附件D的功能
G.729附件G:
本附件提供了对附件B和E进行整合的说明,特此定义了DTX 附件E的功能。
因此G.729f和G.729g不引入新格式,但使用G.729d和G.279e的帧格式:(在RF3551上:)
语音活动检测器(VAD)和舒适噪音发生器(CNG) G.729附录B中规定的算法可与附件D和附件D一起使用 附件E框架以及G.729和G.729附件A框架。该 附件D和E的操作算法细节与附件 B CNG在G.729附件F和G中规定。注意附件F. 和G不会引入任何新的编码。接收者必须接受 如果没有使用限制使用舒适噪音框架 信号。 RFC 3555中G729D和G729E的MIME注册[7] 指定一个可以与MIME或SDP一起使用的参数来限制 使用舒适的噪音框架
上面提到的参数是annexb = yes | no
就SDP有效载荷中的表示而言。