mediasoup号称尖端的WebRTC的视频会议系统,官网为 https://mediasoup.org/.
安装极其简单:
npm install mediasoup
npm install mediasoup-client
从ibc开发这套系统一直跟进到最新的版本,经历了V1到V2的变迁,api从webrtc到ortc的变更,一点一点的完善,目前好评度越来越高。
有没有兴趣跟我一起学习研究这个优秀的系统呢?
需要强调一点的是:希望大家能提前对ORTC有个大概的了解。
脱颖而出mediasoup,可以用小而美来形容她:
纵使她很让人喜欢,但也有不尽人意的地方:
首先呢找一台linux服务器吧,推荐用ubuntu,安装最新版本的npm,快速安装可参考npm最新版本安装方法。另外网速不好的同学建议修改npm源npm源修改办法。
$ git clone https://github.com/versatica/mediasoup-demo.git
$ cd mediasoup-demo
$ cd server
$ npm install
config.example.js
重命名 config.js
然后可以自定义设置,目前先不做修改:$ cp config.example.js config.js
$ cd app
$ npm install
gulp-cli
(可能需要使用 sudo
):$ npm install -g gulp-cli
$ cd server
$ node server.js
$ cd app
$ gulp live
这里对于config.js 强调一点:
//局域网访问:默认不需要修改
rtcAnnouncedIPv4 : null,
//公网可以访问:将rtcAnnouncedIPv4修改为公网的IP,重启server即可(仅限有公网IP的云服务器)。
rtcAnnouncedIPv4 : '111.111.111.111',
rtcMinPort : 40000,
rtcMaxPort : 49999,
下图举例三个Client (browser或者客户端)同时加入一个房间,每个app同时发布一路视频和一路音频,并且接受来自其他app的音视频流,mediasoup内部的结构如下:
到此为止,可能会有一个简单的了解了,这里不再细分,有兴趣的话可以私下找我交流。
mediasoup作为一个SFU服务器,有着出色的性能和极小的开销,多进程负载均衡的方式让我们体会到它的强悍。美中不足的是它的信令只有nodejs接口,并不能满足所有人的胃口。庆幸的是出于对c++的情怀,我将所有的nodejs逻辑翻译成了c++版本,并且开发了对应的native客户端:
未来将加入的新功能
现献上效果图
server端(有没有熟悉的味道):
Windows Client:
Windows Client与Web互通:
**Demo下载地址: https://pan.baidu.com/s/18Nfnu_MAafFnkyzBrJnq1g 提取码: jbtu **
另外附上我的Github地址https://github.com/harvestsure欢迎互粉。