基于WebRTC的MCU开源项目Licode的环境搭建
由于项目需求,需要构建多人通讯,调研了多人通讯的三种常见结构:
1.前一篇博客已经基于codelab实现了三人聊天,这种多人系统基于Mesh结构。具体来说,假设有N+1个客户端,那么对于每一个客户端都需要与其他N个对象建立PeerConnection,这样消耗了大量的带宽和CPU资源。对于客户端数量较少的应用比较适合,延迟小、开发简单、画面无损失。
2.基于MCU的结构,该MCU的核心功能就是视频和音频的Mix。通过将多路信号混合成一路,达到减少带宽和CPU资源消耗的目的。对于N+1个Clients,每个对象只要和MCU建立一个PeerConnection,大大减少资源消耗,适用于客户端数量较多的应用,但是该方案会损失画面质量,实现比较复杂,对MCU服务器性能要求很高(多路信号的编码解码)。
3.基于Router结构,该结构结语1 2之间。每个客户端将本地信号上传到Router,并从Router上下载其他客户端的信号。这样,相比1方案,并不需要向每一个客户端发送相同的本地信号,因此带宽消耗大概减少一半,同时不损失信号质量,且能提升客户端的数量。
支持多人通讯的WebRTC的开源项目很多,这里选择Licode搭建开发环境,相比其他项目,Licode比较轻量级,便于初学者学习,而且它属于Router结构,符合需求。
官方地址:lynckia.com/licode/install.html
按照指南搭建即可,最好FQ搭建环境。
搭建完成后,其官方Demo效果如下。测试了下,5台手机,一台电脑同时在线没有问题,但传输延迟在1s左右。