You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RTPEngine将Opus转码为PCMU时无法修改Opus默认设置,语法是否正确?

问题根因与解决方案

1. 参数语法正确性说明

你提交的codec-set-opus/48000/2/32000//maxplaybackrate=32000;stereo=0;useinbandfec=1;maxaveragebitrate=32000语法本身没有错误,参数不生效的核心原因是参数作用方向和业务场景不匹配。

2. 不生效的核心原因

RTPEngine的codec-set-*、codec-mask-*系列参数默认仅作用于出站方向(即本端向外发送的媒体流对应的SDP编码配置):

  • 你测试PCMU转Opus时,Opus是本端向外发送的编码,所以参数会被写入SDP的fmtp字段正常生效
  • 你当前Opus转PCMU的场景中,Opus是上游发送给本端的入方向编码,默认的出站方向参数不会作用于入方向的Opus协商,因此200OK的SDP中还是沿用上游携带的默认Opus参数

3. 修复方案

将参数调整为入方向生效的配置即可,正确的传参如下:

codec-mask-in-opus codec-set-in-opus/48000/2/32000//maxplaybackrate=32000;stereo=0;useinbandfec=1;maxaveragebitrate=32000 transcode-PCMU

4. 额外验证项

  • 确认OpenSIPS调用rtpengine_offer接口的时机:需要在处理上游发来的INVITE请求时就携带上述参数,不要等到收到下游200OK后再配置,否则参数不会写入回给上游的200OK SDP中
  • 确认RTPEngine版本不低于7.4稳定版,低版本对入方向编码参数的适配存在已知缺陷

内容的提问来源于stack exchange,提问作者Mark Allen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:18:01