概述
目录
前言
服务器环境
NodeJs的安装
下载Demo源码
配置服务端
部署及测试
可能会遇到的问题
前言
上篇文章对MediaSoup进行简单的介绍 【MediaSoup】多人音视频架构、流媒体的比较、mediasoup介绍 ,本章节主要对MediaSoup的环境进行部署以及demo搭建。
在下一篇文章中将对MediaSoup的源码进行分析和调试源码。
服务器环境
Ubuntu14.06 或以上
NodeJs10.0 或以上
npm 6.13.x
gcc-g++ version > 4.8 (低于4.8mediaSoup底层编译不通过)
*******【mediasoup由于用了大量c++11特性,要求>= 4.9】
【如果编译错误,尽可能删除node_modules 重新编译,如遇到 rebuild 相关错误】:
npm install -g node-gyp-install
npm install -g node-gyp
npm i --unsafe-perm
NodeJs的安装
Nodejs的安装方式一般有 二进制库安装和源码安装。
Linux(Ubantu,Centos) 后端环境部署,问题解决[不定期更新] 文章里有部署node,npm的教程
下载Demo源码
- git clone https://github.com/versatica/mediasoup-demo.git
- cd mediasoup-demo
- git checkout v3
下载完成后,源码有着以下的目录结构
app 客户端代码
broadcasters 用户推流的一个模块,如通过FFmpeg进行一个广播推流到Mediasoup服务器。
server 服务端代码,信令服务+媒体服务
配置服务端
安装server依赖
- cd server
- npm install //过程还有C++的编译,请耐心等待
- cp config.example.js config.js
安装客户端Web依赖
- cd app
- npm install
修改 config.js文件
新版本demo没有生成了证书,需要自行生成证书并且放置相对应的目录
...省略
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 || '0.0.0.0',
announcedIp : '192.168.11.18' //修改为服务端的IP地址,如果是公网则为外网
IP
}
],
...省略
plainRtpTransportOptions :
{
listenIp :
{
ip : process.env.MEDIASOUP_LISTEN_IP || '0.0.0.0',
announcedIp : '192.168.11.18'//修改为服务端的IP地址,如果是公网则为外网IP
},
maxSctpMessageSize : 262144
}
}
};
配置config.js 配置server目录下的config.js
server/config.js使用适当的设置编辑您的(侦听IP /端口,日志记录选项,有效的 TLS证书等)。
修改https 块中的监听地址:
修改为自己服务器所在ip和tls证书位置(建议将证书放到server/certs 目录下):
listenIp :'0.0.0.0',
tls :
{
cert : ${__dirname}/certs/webrtc.xxx.top.pem,
key : ${__dirname}/certs/webrtc.xxx.top.key
}
最后修改webRtcTransport
listenIps:修改为自己服务器地址所在ip地址。
在在云主机部署与VPS部署稍有差异,因为云主机有内网ip。所以第二部中config.js需要稍作修改。
我们修改config 文件
listenIp 需修改为云主机内网ip ,因为云主机应该是不知道自己的公网ip的。
下方webRtcTransport块中listenIps 中内容更改为
{ ip: ‘内网ip’ , announcedIp:‘公网ip’ }
然后正常使用node server.js 启动即可
部署及测试
启动服务器
- cd server
- DEBUG="*mediasoup* *ERROR* *WARN*" INTERACTIVE="true" node server.js
启动成功之后,接下来启动客户端
- cd app
- gulp dist
运行URL https://192.168.11.18:3000/?info=true
注意在浏览器执行时会默认创建随机的房间号
https://192.168.11.18:3000/?info=true&roomId=bfaygdnk
直接访问地址ip即可 后面url有房间号 ,想加入同一房间填入即可。
最后打开2个浏览器窗口,运行结果:
由于电脑没有摄像头,使用e2eSoft VCam软件模拟摄像头
用手机浏览器访问也是一样的效果,能够达到互通。
可能会遇到的问题
1:如果是公网部署,主机带宽比较低,初次打开比较慢,需耐心等待加载完成,后面缓冲后速度会变化,音视频延迟不受影响。
2: server代码 npm install 超时 导致install失败
- cd node_modules
- rm -rf clang-tools-prebuilt
- rm -rf mediasoup
- npm install
3:gulp: command not found 解决
执行
npm install -g gulp
后, 执行gulp -v
查看当前版本,出现gulp: command not found
错误提示,package.json
的devDependencies
里也木有 gulp 依赖。解决:
npm config set prefix /usr/local
- 重设路径后再执行
npm install -g gulp
就可以正常安装了。
最后
以上就是威武期待为你收集整理的【流媒体服务器Mediasoup】环境部署与demo搭建(二)的全部内容,希望文章能够帮你解决【流媒体服务器Mediasoup】环境部署与demo搭建(二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复