目录

前言

服务器环境

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-installnpm install -g node-gypnpm 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搭建(二)相关推荐

  1. p2p 文件服务器集群,基于云计算P2P流媒体服务器集群部署算法.doc

    基于云计算P2P流媒体服务器集群部署算法 基于云计算P2P流媒体服务器集群部署算法 摘 要: 针对云计算数据中心网络(DCN)环境下,P2P流媒体服务器集群部署引起的较高带宽占用问题,提出了一种基于云 ...

  2. p2p 文件服务器集群,基于云计算的P2P流媒体服务器集群部署算法.doc

    基于云计算的P2P流媒体服务器集群部署算法.doc 基于云计算的P2P流媒体服务器集群部署算法 摘 要: 针对云计算数据中心网络(DCN)环境下,P2P流媒体服务器集群部署引起的较高带宽占用问题,提出 ...

  3. SRS流媒体服务器——单机环境搭建和源码目录介绍

    SRS流媒体服务器--单机环境搭建和源码目录介绍 1. 目录 环境搭建 源码目录介绍 1. 环境搭建 srs官⽹:https://github.com/ossrs/srs 码云的源速度快:https: ...

  4. 【流媒体服务器Mediasoup】 NodeJs与C++信令通信详解及Linux下管道通信的详解(五)

    目录 前言 匿名管道进程间通信 进程间管道 的创建与图解 MediaSoup中的管道创建 MediaSoup Channel的创建 NodeJs和 C++ 管道通信的过程 MediaSoup 消息确认 ...

  5. SRS 4.0流媒体服务器开发环境搭建:包括推流、服务器配置、拉流测试

    SRS 4.0流媒体服务器入门系列 结合SRS官方Wiki以及本人对SRS的理解,推出<SRS 4.0流媒体服务器入门系列>,包括内容: SRS 4.0 开发环境搭建 SRS 4.0 配置 ...

  6. 【流媒体服务器Mediasoup】多人音视频架构、流媒体的比较、mediasoup介绍 (一)

    目录             前言 多人音视频架构 流媒体服务器的比较 Mediasoup流媒体服务器架构及特点 前言 WebRtc有两种含义,其一是Google开源的流媒体实时通讯客户端,主要运用于 ...

  7. 开源流媒体服务器SRS环境搭建

    一.环境搭建 1.1 C++环境 sudo apt-get update# 更新软件包 sudo apt-get install build-essential -y # 安装C++开发环境 sudo ...

  8. C/C++音视频高级开发-开源流媒体服务器SRS环境搭建

    一.环境搭建 1.1 C++环境 sudo apt-get update# 更新软件包 sudo apt-get install build-essential -y # 安装C++开发环境 sudo ...

  9. 搞一个远程服务器,环境一步步的搭建之一 远程桌面登录

    由于工作比较轻松,所以想搞点别的,因此最近在家搞了http://一个戴尔的1U服务器,1000块钱.可悲的是声音实在太大,不得不将其放入的到厕所中. 因此,除了上厕所 就必须远程操作了..好吧,上厕所 ...

最新文章

  1. 女程序员做编程也太难了吧! | 每日趣闻
  2. Android:ListView、ListActivity、 setListAdapter
  3. python快速编程入门教程-终于懂得python快速编程入门教程
  4. hdu 4362(单调队列优化dp)
  5. Java技术分享:什么是数据库连接池?
  6. C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标
  7. 2019ICPC(南昌) - The Nth Item(矩阵快速幂)
  8. arma3自定义服务器,Arma3 生存服架设教程,武装突袭3游戏服务器架设
  9. python map函数返回类型_使用map和lambda函数发送两个参数并返回两个值
  10. 微服务架构的优缺点_微服务架构DNS服务注册与发现实现原理
  11. linux 隐藏显示终端光标
  12. 当head遇上runat=server之后发生的纠结之事
  13. EFK+sentinl报警机制
  14. python标准库——time模块
  15. 深入浅出MFC-侯俊杰
  16. 2020牛客暑期多校训练营(第九场)K-The Flee Plan of Groundhog
  17. JavaSE入门:面向对象(三)
  18. 时间拆分法------高效率的使用完成开发工作之外的剩余时间掌握多门开发语言
  19. 新闻推荐系统:基于内容的推荐算法(Recommender System:Content-based Recommendation)
  20. [SSD固态硬盘闪存 3] QLC 闪存给SSD主控带来了很大的难题?

热门文章

  1. 三维动画制作视频教程——徐丽敏
  2. 继电器的工作原理、构成和功能介绍
  3. 做个好领导:员工的善意,无价!
  4. 机器学习中VC界和VC维草稿笔记
  5. 英语口语116之每日十句口语
  6. mysql 连接间歇性失联解决办法
  7. VB.net版机房收费系统——结账功能实现(代码部分)
  8. Confluence 6 通过用户管理编辑组成员
  9. 物联网通信协议(接入协议)
  10. camera中文版软件 ip_Synergy下载|Synergy 1.8.4 中文版