Mediasoup 的安装与部署 #
环境要求 #
官方要求:
- cmake >= 3.5
- gcc 和 g++ >= 4.9 或 clang(具有C++ 11支持)
- node.js >= 10.0, npm >= 6.3
使用 cmake --version
检查是否需要[安装或升级](/工具/编程工具/编译工具/cmake/介绍与安装#CMake 的安装)
CMake,gcc --version
检查是否需要[升级
GCC](/操作系统/linux/升级gcc#编译 GCC), nodejs -v
检查是否需要[[|安装或升级]] Nodejs
除了上述的环境还需要
编译安装部署#安装
python
安装 #
下载 #
需要下载 mediasoup v3 mediasoup v3 demo github,在 github 上下载就可以
安装 mediasoup-demo #
cd mediasoup-demo/server
npm install
cd ../app
npm install
注意: 如果 npm 速度过慢或者超时,可以将源修改为淘宝的源或者[[|使用 cnpm]]
配置 server #
cd server
cp config.example.js config.js
因为新版本demo没有生成了证书,所以需要
自行生成证书并且放置相对应的目录(以
server 目录为根的相对路径,如果想使用绝对路径则需要将配置项中的
${__ dirname}
删掉).
修改 config.js 文件 #
...
tls :
{
//需要生成一个证书秘钥,这个用命令自行生成,并放置相对应的目录
cert : process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/certs/xxx_server.crt`,
key : process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/certs/xxx_server.key`
}
},
...
webRtcTransportOptions :
{
listenIps :
[
{
ip : process.env.MEDIASOUP_LISTEN_IP || '192.168.137.139', //修改为服务端的IP地址,如果是公网则为外网 IP
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP
}
],
...
plainRtpTransportOptions :
{
listenIp :
{
ip : process.env.MEDIASOUP_LISTEN_IP || '1.2.3.4',
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP
},
maxSctpMessageSize : 262144
}
}
};
注意事项:
- 确保将
https.listenIp
设置为0.0.0.0
; - 确保 TLS 证书位于
server/certs
名称为fullchain.pem
和的目录中privkey.pem
; - 默认的 mediasoup 端口范围是
2000-2020,不适合生产。应该使用更高的端口,但是然后应该在
network="host"
模式下运行容器;
启动服务 #
cd server
DEBUG="*mediasoup* *ERROR* *WARN*" INTERACTIVE="true" node server.js
启动客户端 #
cd app
npm start
在浏览器打开 #
访问 https://192.168.11.18:3000/?info=true
注意:
- 防火墙是否关闭或允许访问 3000 端口;
- URL中的
/?info=true
一定要带;
- URL中的
邀请参会 #
在 web 页面的上方中间,有一个 INVITAIONLINK
的按钮,点击后会复制邀请链接,当通过这个邀请链接进入 web
页面时就会进行参考。
遇见的问题 #
OSError: [Errno 2] No such file or directory #
这是 python 报的错误,怀疑是 python 使用的 gcc 编译器版本不对导致(因为
gcc 已经升级成了 8.4.0,但是 python 显示的 gcc 编译器还是
4.8.5),在本机用 8.4.0 重新编译一下 python 试试。
结果:编译 python2.7 解决的,python3 没有成功,原因不详。
RuntimeError: gcc <= 4.8 not supported, please upgrade your gcc #
这是因为手动编译的 gcc 安装时软连接没有修改好,运行 cc --version
检查一下就会发现输出的版本号依旧是老版本,重新建立下软链接即可。ln -sf /usr/local/bin/gcc /usr/bin/cc
参考自:
升级的GCC,仍然出现错误:gcc <=
4.8不支持,请升级您的gcc
server 代码 npm install 超时,导致 install 失败 #
cd node_modules
rm -rf clang-tools-prebuilt
rm -rf mediasoup
npm install