centos 7安装mediasoup
时隔3年又一次安装mediasoup
1、升级GCC 到4.9版本以上
2、安装node.js
退出登录
安装node.js
3、使用已有签名(阿里云第一年可以申请免费ssl签名)
4、安装mediasoup
aiortc
app // 客户端代码
broadcasters // 用户推流模块,比如用FFmpeg推流到mediasoup。
server // 服务端代码,包括信令服务+媒体服务
5、安装mediasoup server
会下载node需要的module,其中c++部分的mediasoup代码会下载到 mediasoup-demo/server/node_modules/mediasoup 目录下,这个目录其实就是 mediasoup ,这个项目worker目录下是c++,修改后直接make就可以。
出现warn不用管,出现error
若是还无法解决,请升级node版本。
若出现npm ERR! A git connection error occurred
出现这个错误说明版本有问题,需要重新确认各软件版本。
6、配置修改
接下来根据实际修改配置文件,从 config.example.js 复制一份修改就好
修改几个地方如下:
listenIp用0.0.0.0。tls的配置路径为ssl证书目录。
webRtcTransportOptions 和 plainTransportOptions的listenIps.ip设置你的内网ip,announcedIp为公网ip(不设置的话,置为null)
修改完配置文件后,后台启动服务
7、出现错误升级python至3.7
卸载python3.6.x
8、遇到headers.tar.gz failed, reason: connect ETIMEDOUT 104.20.23.46:443错误时是因为国内访问不了
9、编译安装app
10、遇到Invalid tag name ">=^16.0.0": Tags may not have any characters that encodeURIComponent encodes.这个错误
11、打开防火墙设置端口通过规则
12、分别去server及app目录下运行
13、若出现错误
/mnt/html/mediasoup-demo/server/lib/interactiveClient.js:16
socket.on('connect', () => process.stdin.setRawMode(true));
^
TypeError: process.stdin.setRawMode is not a function
at Socket.<anonymous> (/mnt/html/mediasoup-demo/server/lib/interactiveClient.js:16:43)
at Socket.emit (node:events:402:35)
at Socket.emit (node:domain:475:12)
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1147:10)
该错误是由于Node 守护进程不会以 process.stdin.setRawMode(true) 启动
14、运行
https://xxx.xxx.xxx.xxx:3000/?roomId=c6dkrubz&info=true&forceH264=true