Mediasoup项目实践(一)mediasoup-demo部署

本文首发地址:开源实践网: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 [email protected]
 //切换阿里镜像(方便后边安装)
 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 [email protected]: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端进入同一个房间

你可能感兴趣的:(Mediasoup项目实践(一)mediasoup-demo部署)