【流媒体服务器Mediasoup】环境部署与demo搭建(二)

目录

 

前言

        服务器环境

NodeJs的安装

下载Demo源码

配置服务端 

部署及测试

可能会遇到的问题 


前言

        上篇文章对MediaSoup进行简单的介绍  【MediaSoup】多人音视频架构、流媒体的比较、mediasoup介绍 ,本章节主要对MediaSoup的环境进行部署以及demo搭建。

       在下一篇文章中将对MediaSoup的源码进行分析和调试源码。

服务器环境

  Ubuntu14.06  或以上

  NodeJs10.0    或以上

  npm 6.13.x     

 

NodeJs的安装

   Nodejs的安装方式一般有 二进制库安装和源码安装。

   Linux(Ubantu,Centos) 后端环境部署,问题解决[不定期更新]  文章里有部署node,npm的教程

下载Demo源码

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

 下载完成后,源码有着以下的目录结构

 【流媒体服务器Mediasoup】环境部署与demo搭建(二)_第1张图片

  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

【流媒体服务器Mediasoup】环境部署与demo搭建(二)_第2张图片【流媒体服务器Mediasoup】环境部署与demo搭建(二)_第3张图片

启动成功之后,接下来启动客户端

  • cd app
  • gulp dist

 【流媒体服务器Mediasoup】环境部署与demo搭建(二)_第4张图片

运行URL  https://192.168.11.18:3000/?info=true

注意在浏览器执行时会默认创建随机的房间号

https://192.168.11.18:3000/?info=true&roomId=bfaygdnk

直接访问地址ip即可 后面url有房间号 ,想加入同一房间填入即可。

最后打开2个浏览器窗口,运行结果:

由于电脑没有摄像头,使用e2eSoft VCam软件模拟摄像头

 【流媒体服务器Mediasoup】环境部署与demo搭建(二)_第5张图片

用手机浏览器访问也是一样的效果,能够达到互通。

 

可能会遇到的问题 

1:如果是公网部署,主机带宽比较低,初次打开比较慢,需耐心等待加载完成,后面缓冲后速度会变化,音视频延迟不受影响。

2: server代码 npm install 超时 导致install失败

  •     cd node_modules
  •     rm -rf clang-tools-prebuilt
  •     rm -rf mediasoup
  •     npm install

你可能感兴趣的:(MediaSoup,Linux)