网络会议

在 WebRTC 会议场景(或 N 向呼叫)中,每个浏览器必须接收和处理其他 N-1 个浏览器生成的媒体流,并将其自己生成的媒体流传递给 N-1 个浏览器(即 应用层拓扑是网状网络(mesh network))。 尽管这是一个非常简单的方案,但是对于浏览器来说却很难管理,同时又要求线性增加网络带宽可用性。

由于这些原因,视频会议系统通常依赖于星形拓扑,其中每个对等方都连接到专用服务器,该服务器同时负责:

  • 与网络中的所有其他对等方协商参数
  • 控制会议资源
  • 汇总(或混合)各个流
  • 向参加会议的每个对等方分配适当的混合流

传送单个流显然会减少会议中涉及的每个对等方所需的带宽量和 CPU (以及GPU(图形处理单元))资源的数量。 专用服务器可以是对等方之一,也可以是专门为处理和分发实时数据而优化的服务器。 在后一种情况下,服务器通常被标识为多点控制单元(MCU)。

WebRTC API 没有提供任何特定的机制来辅助会议方案。 识别 MCU 的标准和过程委托给应用程序。 但是,这是一个巨大的工程挑战,因为它设想在 WebRTC 对等通信模型中引入集中式基础架构。 这种挑战的优势显然在于考虑到与代理服务器建立对等连接的能力,通过代理服务器本身提供的附加服务,可以增加 WebRTC 的优势。

我们计划在本书的下一版中为视频会议专门介绍至少一章。