gpt4 book ai didi

webRTC:如何告诉 Opus 编解码器使用超宽带/全带宽

转载 作者:行者123 更新时间:2023-12-01 18:03:38 40 4
gpt4 key购买 nike

我正在开发一个 webRTC Web 应用程序,到目前为止效果非常好。例如,我还没有弄清楚如何告诉 Opus 编解码器(强制)使用“全频段”。

将编解码器设置为 510 kHz 比特率很简单:

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。

The below examples are taken from the rfc section-7 .

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

如果您想指定首选频段,您最关心的选项是:

  • maxplaybackrate:有关最大输出采样率的提示接收器能够以 Hz 为单位进行渲染。
  • sprop-maxcapturerate:有关最大输入采样率的提示发送者可能会产生。

不同的乐队及其受尊重的最大值:

  • 注意:8 kHz
  • MB:12 kHz
  • WB:16kHz
  • SWB:24 kHz
  • FB: 48 kHz//webrtc 中默认的编解码器

另请注意,比特率和采样率之间存在差异。您修改了比特率,这可能会迫使 Opus 更改采样率,但我展示的选项根本不会修改比特率,而只会更改采样率。

Post Script,所有这些都取决于 webrtc 的实现,以及它是否真正关心 SDP 中指定的内容以及它是否真正影响 opus 编码/解码。我注意到(在过去,它很可能已经改变)Firefox 中的实现并不关心 SDP 中的内容,而是默认执行它想要的操作。

关于webRTC:如何告诉 Opus 编解码器使用超宽带/全带宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32473078/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com