我正在开发一个WebRTC的Web应用程序,目前它已经运作得非常好。但是我还没有找到如何告诉Opus编解码器使用“全频段”(例如强制使用)。
将编解码器设置为510kHz的比特率很容易:
desc.sdp=desc.sdp.replace(/a=mid:audio\r\n/g,'a=mid:audio\r\nb=AS:510\r\n');
但有没有一种方法告诉Opus要使用哪个频段?
指定频段并不难。使用opus,您只需指定最大速率功能,然后让它自行运行。默认情况下,OPUS会达到其最大能力(48000,也称为全频带)。
此外,请记住,无论您指定什么捕获速率,rtp时钟速率必须为48000。
m=audio 54312 RTP/AVP 101
a=rtpmap:101 opus/48000/2
a=fmtp:101 maxplaybackrate=16000; sprop-maxcapturerate=16000
这指定了发送者的最大捕获和播放速率为16kHz(也称为宽带)。
双向全频带立体声。
m=audio 54312 RTP/AVP 101
a=rtpmap:101 opus/48000/2
a=fmtp:101 stereo=1; sprop-stereo=1