在 WebRTC 房间中订阅/动态静音许多音频流的理想方法?

Posted

技术标签:

【中文标题】在 WebRTC 房间中订阅/动态静音许多音频流的理想方法?【英文标题】:Ideal approach to subscribing to / dynamically muting many audio streams in a WebRTC room? 【发布时间】:2020-11-07 12:24:25 【问题描述】:

我们正在使用 OpenTok 构建视频聊天室体验,虽然我们的基础工作正常,但我发现当房间里有很多参与者发布音频时,本底噪声非常高。像 Zoom 这样的非浏览器解决方案似乎没有这么高水平的“白噪声”,但我们似乎仍然能够立即听到每个参与者的声音。

我们试图解决的第二个问题是所需订阅的绝对数量:OpenTok 的limit 限制了每个房间 3000 个订阅。目前,每个客户都订阅每个发布者的提要。

在尝试不同的方法时,我突然想到这是所有视频聊天应用程序都必须解决的问题。目前是否有最佳方法来解决这个问题?我可以看到以下解决方案:

    在我们的语音活动检测 (VAD) 算法触发之前,将发布方的流静音,基本上是 streaming silence。 将订阅方的流静音,直到 VAD 触发。由于 VAD 是在发布商方面完成的,因此我们可能会丢失他们的音频开头。 仅在 VAD 触发时订阅流。这与之前的解决方案类似,但有助于减少我们的订阅数量。但是,我相信这里的延迟和不确定性(每个客户端都将单独订阅,对于某些客户端而言,这可能会比其他客户端更快)意味着我们肯定会失去讲话的开始。

目前使用 WebRTC 解决此问题的最佳方法是什么?我们的目标是 Chrome、Firefox 和 Safari。

【问题讨论】:

【参考方案1】:

OBS 是您问题的一站式解决方案,(https://obsproject.com/) 我想您知道。

如果您不使用或使用较少,我想告诉您,如果您正确探索它,它具有巨大的功能,我认为它会解决您的需求。

如果您的问题已解决,请使用并告诉我,如果未解决,请发表评论。

【讨论】:

【参考方案2】:

OpenTok 开发者倡导者在这里。

什么时间……我刚刚写了一篇关于这个的博客文章:Best Practices for Multi-Party Video Conferencing with the Vonage Video API

我认为它涵盖了大部分(如果不是全部)您的问题。此外,请务必加入 Vonage Community Slack,我们的整个团队和社区都可以提供帮助。

【讨论】:

以上是关于在 WebRTC 房间中订阅/动态静音许多音频流的理想方法?的主要内容,如果未能解决你的问题,请参考以下文章

webrtc 上用于远程流的网络音频分析器

WebRTC iOS,如何静音视频通话

没有 <audio> 元素的 WebRTC 音频 (RTCMultiConnection)

如何在有静音的地方批量拆分音频文件?

如何在 webrtc 中将麦克风静音/取消静音

检测视频/音频是不是在 html5 视频标签中停止