将WebRTC用于多人音视频通信

       WebRTC非常适合点对点(即一对一)通信。 但是,当我与客户讨论超出一对一(即一对多或多对多)的解决方案和服务时,问题就出现了:“我应该采用哪种架构?”。 有些服务提供商希望复用他们网络中的组播支持(我们正在为此尝试做一些实验),有些正在探索基于联播(simulcast)的解决方案,还有一些正在考虑像MCU /Mixer这样的集中式解决方案,而其中一些 只是愿意通过使用基于Mesh的技术将负担放在端点(endpoint)上。

       尽管能实现WebRTC多人音视频的方案,该技术最流行的用途不局限于多方视频会议场景。不要以为只是传统的音视频会议室,更多的情况包括:智能硬件、ipcamera、在线课堂,实时直播等。在每种情况下,核心功能都能够将来自多个来源的媒体流分配到多个目的地。因此......如果您是服务提供商,您如何使用WebRTC端点实施多方拓扑?
       根据您的要求,有几种不同的架构可能是合适的。这些架构基本上围绕两个方面:
☆集中式 VS 点对点(P2P)
☆Mixing VS Routing
       我将在这里描述最受欢迎的解决方案。如果您需要更深入地了解协议含义和实施细节,您可以在RTP拓扑IETF文档中找到所有相关信息。

Mesh解决方案
       Mesh方法是最简单的解决方案。它在新的WebRTC服务提供商中很受欢迎,因为它不需要架设服务器。该体系结构基于从每一个发送者创建多个一对一的数据流到每一个接收者。

将WebRTC用于多人音视频通信_第1张图片
       即使看起来效率低下,实际上它也是非常有效的,并且提供了尽可能低的延迟,并为根据实际情况为每个接收者提供独立的比特率。
       “唯一”问题是该解决方案需要大量的上行链路带宽来同时向所有目的地发送媒体流,而现有的浏览器实现需要大量的CPU功率来并行地对视频进行多次编码。

Mixer解决方案
       Mixer是多人视频会议的传统解决方案,并且已经使用了多年,取得了巨大成功。这个成功归功于它在终端(endpoint)中需要最少的成本。 该体系结构基于中心点与每个参与者保持单一的一对一流。然后,中央元件接收并混合每个传入的音频和视频流,为每个参与者生成一个单独的流。视频会议行业中这些集中式元件的一个常见术语是多点控制单元(MCU)。实际上,使用MCU通常是指Mixer解决方案。

将WebRTC用于多人音视频通信_第2张图片

       Mixer是与老旧设备互操作性非常好的解决方案。它们还允许全比特率适应,因为Mixer可以产生不同的输出流,给每个接收者提供不同的质量。Mixer解决方案的另一个优势是它可以在设备中利用硬件解码,只要设备具有硬件解码能力。
       主要的缺点是MCU的成本。另外,由于混合需要解码和重新编码,这会引入额外的延迟和质量损失。最后,转换和合成可能在理论上导致应用程序UI的灵活性较低(尽管此问题有解决方法)。

Router解决方案
       Router(或Relay)因H.264 SVC基础架构变得普及,并且这种架构被大多数新的WebRTC平台所使用,这些平台在没有任何老旧设备。该体系结构基于中心点接收来自每个发送者的流,并向每个参与者发送流。这个中心点只能进行数据包检测和转发,而不会对流媒体进行昂贵的编码和解码。常见术语是SFU。

将WebRTC用于多人音视频通信_第3张图片

       Router提供了一种便宜且可扩展的多方解决方案,与传统调Mixer解决方案相比,在保证视频质量的前提下具有更低的延迟。
       另一方面,这个方案的行业经验较少,将流适配到不同的接收者变得棘手。我们需要在终端中支持生成多种不同的流,这些流随后可以在路由器中被选择性地转发。

三种架构的流量对比

将WebRTC用于多人音视频通信_第4张图片

我们该用那种架构?
       不幸的是,没有简单的答案。事实上,一些商业解决方案包括对所有这些解决方案的支持,以优化不同客户的使用。但是,这里有一些一般性的经验法则。
1.如果您仅提供音频服务,或者需要与传统设备互操作,那么Mixer架构可能最适合您。另外,如果基础设施的成本不是问题,并且参与者具有异构连接,这可能是一个很好的解决方案。
2.假设你提供企业级服务,且有较好的宽带和高效的硬件(即一个企业内部服务),并且参与者数量有限,那么您可以使用Mesh体系结构获得良好结果。
3.一般而言,如果您提供大规模服务,则应优先考虑Router方案。归根结底,Router解决方案最接近于将智能置于网络边界的Internet模式,以在构建最终用户应用程序时实现更好的伸缩性和灵活性。

WebRTC中缺少什么?

       即使有商业和免费的解决方案在WebRTC上提供多方服务,仍然存在需要在基础技术中解决的问题,以实现更好的用户体验。这些包括:
1.改进了音频处理和编码,特别是声学回声消除和噪声抑制算法。
2.更先进和灵活的拥塞控制,允许开发人员即时修改流的参数,比如比特率,质量或视频分辨率。
3.simulcast和分层视频编码支持独立地将原始视频流适配到每个接收者,而无需昂贵的代码转换。
       总而言之,我们有能力开始基于WebRTC技术为我们的客户提供多方服务。随着标准的发展,随着更多API的提供,以及随着更多浏览器中更好的实现的出现,基于网络的视频会议的未来变得更加有前途。


原文链接:https://webrtchacks.com/webrtc-beyond-one-one/

你可能感兴趣的:(WebRTC)