1.网络网格
要讲webRTC扩展到多个用户的连接,就需要在一个通话中包含多个用户,需要用到网络网格。
网络网格可以在一个完全的网络中让每一个节点都能与其他节点对话,而在一个部分网格中,每个节只能与一个子集中的节点对话。
- 在webRTC中,一个浏览器在统一时间所能支持的链接数量是无限的
- 但是每个链接都会附加一个开销,所以当一个用户加入时,链接的总数就会加倍
因为有上述问题,所以就需要用到星形网络。
2.星形网络
在一个星状网络中,每个用户都连接到一个主节点,该节点将正确的视频流发送到网络中的其他节点。
其中,主节点可以是通话中的任意一个节点,其他的节点都通过webRTC连接到主节点,而主节点则作为中继为其他节点传输流数据,最常见的就是用MCU服务器作为一个主节点。
2.1 MCU多点控制单元
典型MCU连接的工作流程:
- 所有用户成功连接到MCU服务器
- 在通话中的所有用户都将他们的视频和音频发送到服务器
- MCU将对每一个输入的流进行单独的解码和处理
- MCU可以选择将独立的视频流重新编码成一个单独的流以节约带宽
- MCU将含有其他用户视频数据的流回传给用户
这里主要的不同在于,将其他的视频流打包并且只提供一个流回传到每一个用户,这可以在很大程度上减少带宽已支持大量用户进行通话。