【C++音视频】mediasoup-demo部署

【C++音视频】mediasoup-demo部署,第1张

  • 服务器环境
  • Nodejs & npm 安装
  • git、pyhton安装
  • 下载 mediasoup-demo
  • 安装server
  • 设置配置文件
  • 配置ssl证书--配置https环境
    • 本地调试环境:
    • 真实运行环境
    • 配置ssl证书
  • 启动服务器
  • 安装并启动app
  • 浏览器访问

服务器环境
  • Ubuntu 18.04 或其他
  • Python3.7以上
  • Nodejs 12.0以上—文章发布时
  • npm 6.12.0以上—文章发布时

实际环境需求可查看官方要求https://mediasoup.org/doclass="superseo">cumentation/v3/mediasoup/installation/#requirements

Nodejs & npm 安装

可以采用nvm、nodesource等包管理器,也可以直接使用源码编译的方式安装,后者比较耗时。

如果没有安装过nodejs和npm可以在这里找到历史版本https://nodejs.org/zh-cn/download/releases/

如果已经安装过npm,可以用一个版本管理工具n来安装所需要的版本

这里用nvm

//安装
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
//刷新环境
source ~/.bashrc
//验证
nvm -v

//安装node
 nvm install v12.13.0
 //更新npm,会根据上面node的版本自动确定版本
 npm -g install npm
 //切换阿里镜像(方便后边安装)
 npm config set registry "http://registry.npm.taobao.org/"
git、pyhton安装
//安装
sudo apt-get install git
//验证
git --version

//更新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

修改软链:

安装完python3.8之后,还要修改软链
(直接把python和python3原来的软链删掉了,因为原来还有别的软链可以分别指向2和3.7版本)

/usr/bin/python3.8 /usr/bin/python3 ```
可以顺便确认一下pip的版本,不过pip版本应该不影响,因为`npm install`内部会自动装一个pip供内部调用。

也可以不修改软链:

下载 mediasoup-demo
git clone https://github.com/versatica/mediasoup-demo.git
cd mediasoup-demo
git checkout v3

git clone失败可以试试这个
git config --global --unset http.proxy
git config --global --unset https.proxy

实在不行就去https://ping.chinaz.com/github.com去这里找个延迟低的ip
然后vim /etc/hosts
xxx.xxx.xxx.xxx github.com
xxx.xxx.xxx.xxx www.github.com

安装server
cd server
npm install

如果遇到问题,请回到上面确认一下自己的node和npm版本是否满足官网的最新要求,版本尽量新但也不要太新。
很多问题实际上都是版本对不上出现的。
Node.js 12.13.0 Erbium 2019-10-21 7.7.299.13 6.12.0 72 OK ------使用了16.15.0版本进行npm install然后用12.13.0 rebuild
Node.js 12.18.3 Erbium 2020-07-22 7.8.279.23 6.14.6 72 不行

设置配置文件
//拷贝一份配置文件
 cp config.example.js config.js
 //打开配置文件
 vim config.js


修改两个红色的ip
第一个改成0.0.0.0,表示所有网卡都可用
第二个改成自己的ip

配置ssl证书–配置https环境

由于涉及到音视频设备的调用和视频流媒体的传输,浏览器要求需要使用https。

可以本地实现https也可以在公网上实现

本地实现的话要考虑本地局域网内的设备能够相互通信,否则只有服务器可以正常访问自己设置好的https网站,其他局域网内的设备就没法访问了。另外即使访问得到网站还得考虑是否有音视频设备,没有的话也是白搭。

公网实现的话要域名、ssl证书、备案都得做全。此时任意一台设备都可以访问这个https网站。

建议还是走本地自己玩玩比较方便,从2022年2月15日起,先实名认证才能买在国内域名商买域名(国外买的好像没法备案),买完域名还得审核,审核完才能DNS云解析以及申请和验证ssl证书,然后还得过一段时间才能备案。。。

本地调试环境:

本地生成证书:https://www.cnblogs.com/ssyfj/p/14782767.html

真实运行环境

首先获得自己的域名

然后域名通过dns解析到自己的服务器ip

使用ssl证书绑定的自己的域名

此时通过https://域名即可访问到自己的服务器

注意服务器在国内的话需要各种实名认证以及备案
(没备案直接封,俺就被封了,俺用goDaddy买的域名,然后用goDaddy的DNS解析服务器解析到了我的阿里云主机上,不要学俺)

证书获取:
上阿里云

配置ssl证书

在server文件夹下面新建certs文件夹并将证书配置到图中所示位置,config.js大概26行左右。

启动服务器
cd server 
npm start

按照报错信息排除错误

成功

安装并启动app
cd app 
npm install
npm start

启动过程中可能会因为node版本提示不能require一个json文件,

找到gulpfile.js错误行修改如下:

// const PKG = require('./package.json');
const PKG = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));

启动成功

浏览器访问


要注意端口是否开放,特别是云服务器要配置好安全组,websocket需要4443端口、浏览器通过3000端口访问服务器。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/919081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存