本文首发地址:开源实践网:Mediasoup项目实践(一)mediasoup-demo部署
Mediasoup部署环境依赖
- ubuntu
- Node.js v14.0.0
- GCC v9.1.1
- Python 2.7.5 (3也可以,需要指定版本)
一.依赖环境安装
1.1 nvm 的安装(用于管理node)
//安装
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
//刷新环境
source ~/.bashrc
//验证
nvm -v
1.2 安装 node
//安装node
nvm install v10.16.3
//更新npm
npm -g install npm@6.13.4
//切换阿里镜像(方便后边安装)
npm config set registry "http://registry.npm.taobao.org/"
1.3 安装 git
//安装
sudo apt-get install git
//验证
git --version
1.4 安装 python
//更新apt
sudo apt update
sudo apt install software-properties-common
//DeadsnakesPPA源添加
sudo add-apt-repository ppa:deadsnakes/ppa
//安装
sudo apt install python3.8
//验证
python3.8 --version
1.5 安装 make
//更新列表
apt-get update
//安装
apt-get install make
//验证
make -v
1.6 安装 gcc and g++
//安装build-essential DEB包
sudo apt install build-essential
//验证
gcc --version
二.mediasoup-demo的server 部署
按上面的步骤,部署完环境依赖后,开始demo的server部署
2.1 mediasoup-demo的源码获取
//使用git拉取项目(本人的clone的gtee镜像)
git clone git@gitee.com:redskt/mediasoup-demo.git
//进入项目
cd mediasoup-demo
//切换到v3分支
git checkout v3
2.2 服务端安装
//进入server(服务端文件夹)
cd server
//安装(含编译过程 请耐心等待)
npm install
//若安装过程出现python命令未找到,请使用下方命令进行安装
PYTHON=python3 npm install mediasoup@3 --save
注:这里可能因为网络问题导致安装不成功,可以将package.json中的库依赖修为引用自己gitee库的写法,必须先将mediasoup库拷贝到gitee上,当然你可以直接使用我下面的写法
引用git的写法
"mediasoup": "github:versatica/mediasoup#v3"
引用自己的写法
"mediasoup": "https://gitee.com/redskt/mediasoup.git#v3",
参考自https://www.npmjs.cn/files/package.json/
2.3 设置服务器配置文件
//拷贝一份配置文件
cp config.example.js config.js
//打开配置文件
sudo gedit config.js
2.4 配置相关信息
在打开的config.js里的大概123行140行 分别可找到
webRtcTransportOptions: 和 plainTransportOptions: 相关配置
这里是远程服务端测试环境配置:
webRtcTransportOptions :
{
listenIps : [
{
ip : '0.0.0.0' // (这里ip查看方法 -> ip addr ),
announcedIp : '192.168.0.103' //修改为服务端的IP地址,如果是公网则为外网
}
],
}
//同理 这里也需要修改
plainTransportOptions :
{
listenIp :
{
ip: '192.168.0.103'(这里ip查看方法 -> ip addr ),
announcedIp :‘192.168.0.103’ //修改为服务端的IP地址,如果是公网则为外网
},
}
2.5 配置https证书
服务器的https证书阿里云上申请免费证书
1.在server下新建certs文件夹
2.将上一步生成的证书放在certs文件夹下
3.大概26行可以找到证书配置地址
// Listening hostname (just for `gulp live` task).
domain : 'webrtc.xxxx.com', 你自己的域名
// Signaling settings (protoo WebSocket server and HTTP API server).
https :
{
listenIp : '0.0.0.0',
// NOTE: Don't change listenPort (client app assumes 4443).
listenPort : process.env.PROTOO_LISTEN_PORT || 4443,
// NOTE: Set your own valid certificate files.
tls :
{
// 你自己的证书
cert : process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/certs/5372190_webrtc.xxxx.com.pem`,
key : process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/certs/5372190_webrtc.xxxx.com.key`
}
},
4.将server.pem和server.key改为你的相关证书
2.6 启动服务端
//进入server(服务端文件夹)
cd server
//启动
npm start
//当然 也可以用debug模式启动
DEBUG="*mediasoup* *ERROR* *WARN*" INTERACTIVE="true" node server.js
2.7 安装并启动客户端
进入 app 文件夹
cd app
//安装同理
npm install
npm start
当控制台出现以下信息时,代表服务搭建已经成功
到此,整个demo搭建成功,我们可以尝试使用多个设备进入房间查看一下推拉流功能,后序我们这边讲使用NA端进入同一个房间