官网:mediasoup
GitHub:GitHub - versatica/mediasoup-demo: mediasoup official demo application
操作系统:Ubuntu20.04
Mediasoup-demo版本:v3
一、安装工具
sudo apt install build-essential
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install nodejs
sudo npm install -g gulp-cli
pip install launchpadlib
二、下载源码
git clone https://github.com/versatica/mediasoup-demo.git
cd mediasoup-demo
git checkout v3
或者直接从GitHub上下载源码的ZIP压缩包,貌似这种方法更靠谱,git命令下载老是失败
三、安装node插件
cd server
npm install
cd app
npm install
四、服务器配置
先拷贝默认配置文件
cp config.example.js config.js
同配置janus一样,mediasoup也需要支持https服务,所以证书和密钥是少不了的。
在server目录下新建一个certs文件夹,将申请的证书和密钥都拷贝进去,接着我们修改config.js文件。
1、将证书和密钥的名称替换为自己拷贝进去的文件名
如果只是局域网中测试,可以使用自己生成自签名证书:
openssl genrsa > privkey.pem
openssl req -new -x509 -key privkey.pem > fullchain.pem
2、webrtc监听的webRtcTransportOptions和plainTransportOptions的ip地址配置改为本机内网ip,否则连接时会出现error 500的错误(Can not join room),可以修改config.js
也可以不修改config.js,直接用环境变量,更推荐环境变量的做法
export MEDIASOUP_LISTEN_IP='172.25.186.221'
五、启动服务器和客户端
cd server
npm start
cd app
npm start
打开控制台,查询本机ip地址。
然后在浏览器中输入web服务器的地址,比如:https://192.168.0.107:3000/,即可体验Mediasoup-demo。
六、公网部署
webRtcTransportOptions和plainTransportOptions的listenIp.ip为内网IP,listenIp.announcedIp为公网IP,所以需要指定该服务的公网IP:
export MEDIASOUP_ANNOUNCED_IP='114.55.98.33'