栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

centos7.9搭建mediasoup-demo环境

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

centos7.9搭建mediasoup-demo环境

centos7.9搭建mediasoup-demo环境
  • 安装前准备服务器环境
    • gcc
    • python3
    • node
  • mediasoup-demo搭建
    • github克隆代码
    • 服务端环境搭建
    • 客户端环境搭建

安装前准备服务器环境

在ubuntu和centos8上都很容易搭建mediasoup-demo项目,但在centos7很难安装上,在此记录centos7.9上搭建mediasoup。
本次搭建centos7.9所需环境:

依赖版本
gcc8.3.1
python33.8.12
node14.19.3
gcc

gcc需升级到4.9版本以上 ,本次安装使用版本为gcc 8.3.1

$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-8-gcc*
$ scl enable devtoolset-8 bash
$ gcc -v
python3

python3需升级到3.7版本以上 ,本次安装使用版本为python 3.8.12

安装python3的依赖
$ yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
$ yum install libffi-devel -y

下载python3安装包
$ wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tar.xz
$ tar -xvJf Python-3.8.12.tar.xz

编译安装
$ mkdir /usr/local/python3 #创建编译安装目录
$ cd Python-3.8.12
$ ./configure --prefix=/usr/local/python3
$ make && make install

创建软连接
$ ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
$ ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

验证是否成功
$ python3 -V
$ pip3 -V
node

node需升级到10版本以上 ,本次安装使用版本为node14.19.3

下载node安装包
$ wget https://nodejs.org/dist/v14.19.3/node-v14.19.3-linux-x64.tar.xz
$ tar xvf node-v14.19.3-linux-x64.tar.xz

创建软链接
$ ln -s /root/node-v14.19.3-linux-x64/bin/node /usr/local/bin/node
$ ln -s /root/node-v14.19.3-linux-x64/bin/npm /usr/local/bin/npm

验证是否成功
$ node -v
$ npm -v

安装 cnpm
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
mediasoup-demo搭建 github克隆代码
$ git clone https://github.com/versatica/mediasoup-demo.git
$ cd mediasoup-demo
$ git checkout v3
服务端环境搭建
$ cd mediasoup-demo/server

修改mediasoup的版本号为3.9.1
$ vi package.json
"mediasoup": "3.9.1",

使用cnpm i安装依赖	
$ cnpm i

安装完成后,生成证书(有证书忽略)
$ mkdir certs
$ cd certs
$ openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout privkey.pem -out fullchain.pem

复制config.example.js 为config.js
$ cp config.example.js config.js
修改config.js文件中的配置(复制以下代码,修改ip地址为公网ip, 并修改证书)
$ vi config.js
	const os = require('os');
	module.exports =
	{
		domain : process.env.DOMAIN || '192.168.2.104',
		https  :
		{
			// listenIp   : '0.0.0.0',
			listenIp   : '192.168.2.104',
			// NOTE: Don't change listenPort (client app assumes 4443).
			// listenPort : process.env.PROTOO_LISTEN_PORT || 4443,
			listenPort : process.env.PROTOO_LISTEN_PORT || 4443,
			// NOTE: Set your own valid certificate files.
			tls        :
			{
				cert : process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/certs/localhost.pem`,
				key  : process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/certs/localhost.key`
			}
		},
		// mediasoup settings.
		mediasoup :
		{
			// Number of mediasoup workers to launch.
			numWorkers     : Object.keys(os.cpus()).length,
			// mediasoup WorkerSettings.
			// See https://mediasoup.org/documentation/v3/mediasoup/api/#WorkerSettings
			workerSettings :
			{
				logLevel : 'warn',
				logTags  :
				[
					'info',
					'ice',
					'dtls',
					'rtp',
					'srtp',
					'rtcp',
					'rtx',
					'bwe',
					'score',
					'simulcast',
					'svc',
					'sctp'
				],
				rtcMinPort : process.env.MEDIASOUP_MIN_PORT || 40000,
				rtcMaxPort : process.env.MEDIASOUP_MAX_PORT || 49999
			},
			// mediasoup Router options.
			// See https://mediasoup.org/documentation/v3/mediasoup/api/#RouterOptions
			routerOptions :
			{
				mediaCodecs :
				[
					{
						kind      : 'audio',
						mimeType  : 'audio/opus',
						clockRate : 48000,
						channels  : 2
					},
					{
						kind       : 'video',
						mimeType   : 'video/VP8',
						clockRate  : 90000,
						parameters :
						{
							'x-google-start-bitrate' : 1000
						}
					},
					{
						kind       : 'video',
						mimeType   : 'video/VP9',
						clockRate  : 90000,
						parameters :
						{
							'profile-id'             : 2,
							'x-google-start-bitrate' : 1000
						}
					},
					{
						kind       : 'video',
						mimeType   : 'video/h264',
						clockRate  : 90000,
						parameters :
						{
							'packetization-mode'      : 1,
							'profile-level-id'        : '4d0032',
							'level-asymmetry-allowed' : 1,
							'x-google-start-bitrate'  : 1000
						}
					},
					{
						kind       : 'video',
						mimeType   : 'video/h264',
						clockRate  : 90000,
						parameters :
						{
							'packetization-mode'      : 1,
							'profile-level-id'        : '42e01f',
							'level-asymmetry-allowed' : 1,
							'x-google-start-bitrate'  : 1000
						}
					}
				]
			},
			// mediasoup WebRtcTransport options for WebRTC endpoints (mediasoup-client,
			// libmediasoupclient).
			// See https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcTransportOptions
			webRtcTransportOptions :
			{
				listenIps :
				[
					{
						ip          : process.env.MEDIASOUP_LISTEN_IP || '192.168.2.104',
						announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP || '192.168.2.104'
					}
				],
				initialAvailableOutgoingBitrate : 1000000,
				minimumAvailableOutgoingBitrate : 600000,
				maxSctpMessageSize              : 262144,
				// Additional options that are not part of WebRtcTransportOptions.
				maxIncomingBitrate              : 1500000
			},
			// mediasoup PlainTransport options for legacy RTP endpoints (FFmpeg,
			// GStreamer).
			// See https://mediasoup.org/documentation/v3/mediasoup/api/#PlainTransportOptions
			plainTransportOptions :
			{
				listenIp :
				{
					ip          : process.env.MEDIASOUP_LISTEN_IP || '192.168.2.104',
					announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP || '192.168.2.104'
				},
				maxSctpMessageSize : 262144
			}
		}
	};

启动
$ npm start

若要后台启动 将INTERACTIVE:='true' 改为 false
$ vi package.json 
"start": "DEBUG=${DEBUG:='*mediasoup* *INFO* *WARN* *ERROR*'} INTERACTIVE=${INTERACTIVE:='false'} node server.js",

客户端环境搭建
$ cd mediasoup-demo/app

修改mediasoup-client版本号
$ vi package.json
"mediasoup-client": "^3.6.48",
安装依赖
$ cnpm i
启动(默认3000端口)
npm start
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1018664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号