随着在线教育行业的兴起, 许多人把目光投向了国外市场,而如何搭建全球化的音视频网络就成为了其中的关键问题。百家云研发工程师陈聪详细介绍了如何利用Licode 开源服务器搭建全球分布式架构以解决常见的教育场景的问题。本文来自陈聪在LiveVideoStackCon 2018上的演讲,由LiveVideoStack整理而成。
文 / 陈聪
整理 / LiveVideoStack
大家好,我是来自百家云的陈聪,今天我将为大家带来与Licode的WebRTC全球分布式架构相关的技术分享。之所以想为大家介绍这个架构,是因为我在使用WebRTC开源服务器时发现WebRTC并没有提供类似于分布式或集群的整体解决方案,希望百家云在此领域的探索能为大家带来有价值的帮助。
1. SFU
1.1 SFU简介
SFU全称为Selective Forwarding Unit,我们可以将其原理简单理解为将一条流推给多个端并且在整个过程中不对视频进行编解码处理。相对于其他传统的需要重新编解码的解决方案而言,其优点在于低延迟、低消耗。当然,单SFU的缺点也显而易见。
1.2 单SFU问题
1)人数限制
单SFU面临的第一个问题是人数限制,主要出现在像“双师课堂”这种较为常见的教育场景中。在此场景中,一位老师为多名学生教学,多名学生接收由老师端发送的流。有时在“双师课堂”中容易出现老师端码率较高的情况,以1080p、30FPS的情形为例,此时一位学生所需带宽为3.5MB;如果有两百位学生在线观看则单个服务器的出口带宽就会达到700MB左右,并且随着学生人数的增加,所需出口带宽越来越多;而单个SFU的带宽是有限制的,如我们常用的阿里云、腾讯云的带宽在300~500MB左右。由于单个服务器的带宽限制,单节课同时在线人数便无法达到一个较为理想的规模。
2)地理分布,就近接入
地理分布与就近接入是我们在探索单SFU中面临的第二大问题,此问题主要出现在“小班课”的教育场景。虽然与“双师课堂”相比“小班课”在人数上没有那么大的规模,一般情况下一节课在线人数为6~15人&#x