20. mediasoup服务器的布署与使用

Mediasoup Demo部署

架构服务分析

在这里插入图片描述
服务端提供3个服务:
1.www服务,浏览器通过访问服务器目录获取客户端代码,通过V8引擎,启动底层WebRTC
2.nodejs提供websocket服务和http服务,用于信令交互
3.Mediasoup C++提供的流媒体服务,用于音视频的分享与抓取

环境配置

在这里插入图片描述

  1. Nodejs安装
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    我们这里选择二进制安装
apt install nodejs
apt install npm

然后可以使用node -vnpm -v查看版本

Mediasoup Demo的布署

下载源码

安装git

//安装
sudo apt-get install git
//验证
git --version
git clone
https://github.com/versatica/mediasoup-demo.gitcd mediasoup-demo
git checkout v3

在这里插入图片描述

  • app 是客户端代码
  • broadcasters 是推流的模块
  • server是信令服务和媒体服务,是通过管道进行通讯的。
    在这里插入图片描述
    他的C++部分是在 /server中的package.json里面这个,这些都是js中的依赖,配置的时候会自动安装。

配置服务端

这里需要安装npm和node,建议安装下面指定版本的
node: v14.21.1
npm:6.14.17
nodejs:
在这里插入图片描述

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bashsource ~/.bashrcnvm install 14.21.1node -v

npm:

sudo apt-get install npm#查看npm版本
node -v#若版本不符合要求,可使用如下命令安装指定版本
npm install -g npm@6.14.17

然后进入server文件夹下:

cd /server
npm install 

之后:

cp config.example.js config.js
vi conig.js

在这里插入图片描述
之后npm start

npm start

之后进入app目录

cd app/
npm install -g gulp-cli
gulp live

之后就可以了。我这里没有成功,视频里面成功了。
在这里插入图片描述

docker部署

docker安装

  1. 下载mediasoup-demo镜像
    下载mediasoup-demo镜像:
sudo docker pull lc0060305/mediasoup-demo:v5
  1. 下载run.sh脚本
    下载run.sh脚本
wget https://cdn.avdancedu.com/image/article/docker/v1/run.sh

但是有个地方可能会报错:可以将这一行删去
在这里插入图片描述
3. 启动docker
需要给run.sh增加执行权限后启动docker:

chmod +x run.sh
sudo MEDIASOUP_ANNOUNCED_IP=公网IP ./run.sh
  1. 运行mediasoup-demo项目
    启动docker成功后,需要启动mediasoup服务。
    查询mediasoup服务docker ID:
sudo docker ps

获取dockerID后进入到mediasoup的docker中:

sudo docker attach containerID

在/service目录下执行startservice.sh脚本:
服务启动好后,输入ctrl+p, ctrl+q退出docker

./startservice.sh

使用游览器进行视频会议,测试链接:https://公网IP:3000/?roomId=imohqpdp,这样,两个浏览器都访问同一会议室。

Nodejs服务端开发

在这里插入图片描述

vi server.js
'use strict'const http=require('http');const express=require('express');const app=express();const http_server=http.createServer(app);
http_server.listen(9999,'0.0.0.0');
npm install express

在这里插入图片描述

  1. node.app.js
    这个控制台关闭就停止了
  2. nohup node app.js &
    这个如果不想运行了就得用kill杀死这个进程
  3. forver start app.js
    这个得安装forver,停止的时候就是forver stop app.js

之后我们就先启动一下:
在这里插入图片描述
在这里插入图片描述

HTTPS基本知识

「实战」WWW服务

为什么要使用HTTPS服务

  • 个人隐私及安全原因
  • https是未来的趋势
  • HTTPS = HTTP + TLS/SSL

在这里插入图片描述
在这里插入图片描述

通过WWW服务发布mediasoup客户端代码

在这里插入图片描述

vi server_myhttps.js
'use strict'const https = require('https');const express = require('express');const serve_index = require('serve-index');
const fs = require('fs');const options = {key : fs.readFileSync('./cert/'),cert : fs.readFilesync('./cert/')
}
const app = express();
app.use(serve_index('./public'));
const https_server = https.createServer(options,app);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BL104应用在智慧零售多协议采集监控远程实时查看

在智慧零售领域,如今的市场竞争日益激烈,传统的零售模式已经难以满足消费者对服务和体验的高需求。智能化技术的引入,尤其是基于物联网的解决方案,成为提升零售业务效率和服务质量的关键。钡铼BL104 Modbus转MQTT网关作为一种先进…

同时使用磁吸充电器和Lightning时,iPhone充电速度会变快吗?

在智能手机的世界里,续航能力一直是用户关注的焦点。苹果公司以其创新的MagSafe技术和传统的Lightning接口,为iPhone用户提供了多样化的充电解决方案。 然而,当这两种技术同时使用时,它们能否带来更快的充电速度?本文…

Talk|新加坡国立大学贾鑫宇:适用于高自由度机器人的运动控制器

本期为TechBeat人工智能社区第600期线上Talk。 北京时间6月13日(周四)20:00,新加坡国立大学博士生—贾鑫宇的Talk已经准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “适用于高自由度机器人的运动控制器”,向大家系统地介绍了如何通…

千脑计划:模拟人类大脑皮层,开启AI新纪元

随着科技的飞速发展,人工智能已成为当今时代的热门话题。然而,目前主流的深度神经网络虽然取得了显著成就,但也面临着能耗高、稳定性差等问题。为了解决这些挑战,一项名为“千脑计划”的宏伟项目应运而生,旨在通过模仿…

数据结构:4.1.1二叉搜素树及查找

静态查找:要找的集合的元素是不动的,主要是find操作,没有delete操作 动态查找:要查找的集合会经常发生插入删除的操作 静态查找的一个很好的方法就是二分查找 把数据直接放在树上 结点右子树的值>结点的值>结点左子树的…

学习使用js和jquery修改css路径,实现html页面主题切换功能

学习使用js和jquery修改css路径&#xff0c;实现html页面主题切换功能 效果图html代码jquery切换css关键代码js切换css关键代码 效果图 html代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>修改css路径</title&g…

管道保温的介绍

通风空调管道及各种水管的保温材料主要有&#xff1a;聚氨酯泡沫塑料保温、高级橡塑保温、酚醛泡沫塑料保温等。现对以上材料的特性、适用范围、施工要点等进行介绍&#xff0c;以供各位借鉴。 01 常用的绝热材料 1、聚氨酯泡沫塑料保温 该材料用于直埋管段的保温。在工程中…

网络安全:入侵检测系统的原理与应用

文章目录 网络安全&#xff1a;入侵检测系统的原理与应用引言入侵检测系统简介IDS的工作原理IDS的重要性结语 网络安全&#xff1a;入侵检测系统的原理与应用 引言 在我们的网络安全系列文章中&#xff0c;我们已经涵盖了从SQL注入到端点保护的多个主题。本篇文章将探讨入侵检…

ChatGPT Plus GPT-4o Claude 3 Opus合租拼车全新方式

无需自己搭建&#xff0c;登录即可用&#xff0c;国内直连访问&#xff0c;聚合多家最强大模型&#xff0c;随意选择使用。立即体验 datapipe.top 支持 OpenAI 最新 GPT-4o &#xff0c;获得快速高质量的对话&#xff0c;保证可用配额。支持多种大模型&#xff0c;GPT-4o &…

XGBoost算法详解

XGBoost算法详解 XGBoost&#xff08;Extreme Gradient Boosting&#xff09;是一种高效的梯度提升决策树&#xff08;GBDT&#xff09;实现&#xff0c;因其高性能和灵活性在机器学习竞赛中广泛使用。本文将详细介绍XGBoost算法的原理&#xff0c;并展示其在实际数据集上的应…

Flutter 项目设置 Flutter 版本

即便使用了 fvm 设置了版本&#xff0c;AdroidStudio Setting 中如果不修改路径&#xff0c;Editor 依然会编译错误。目前还没看懂如何通过命令、文件来记录AdroidStudio Setting中的设置。 fvm list 来查看 flutter 路径&#xff1a;

怪物猎人物语游戏加载慢、卡加载解决方法一览

怪物猎人物语是《怪物猎人》系列史上首部RPG类型游戏。本作采用动漫式的画风风格&#xff0c;在玩法上完全不同于以往系列作&#xff0c;但本作完整的保持《怪物猎人》系列的世界观&#xff0c;依靠正统的RPG玩法给玩家带来不同以往的游戏体验。因为游戏快要上线了&#xff0c;…

5分钟搭建大模型应用!腾讯将「实用主义」贯彻到底

让企业像搭积木一样构建大模型应用&#xff0c;简单可上手。 在经历了一年多的技术锤炼后&#xff0c;大模型正在迈向真刀真枪抢落地的关键阶段。 对于更多企业而言&#xff0c;如何将看上去酷炫的大模型技术落到实处成了眼下的重要命题。 与此同时&#xff0c;「甲子光年」…

04 Pytorch tensor

一&#xff1a;老版本的 variable 二&#xff1a;新版 tensor 曾经&#xff1a;求导相关 如今&#xff1a;数据相关 –dtype: 张量的数据类型&#xff0c;三大类&#xff0c;共9种。torch.FloatTensor, torch.cuda.FloatTensor –shape: 张量的形状。如&#xff1a;&#x…

智慧校园软件开发:为学校量身定制的技术解决方案

为了满足智慧校园的需求&#xff0c;一套全面的软件解决方案被设计出来&#xff0c;旨在优化学校管理和提升教学质量。首先&#xff0c;通过实施统一的认证门户&#xff0c;结合OAuth2和SSO技术&#xff0c;确保不同用户群体能便捷且安全地访问所需资源。 教务管理系统被构建成…

信创数据库沙龙 | 全国预告

#数据库沙龙 #国产数据库 #信创数据库

虚拟DOM

目录 由状态到UI状态渲染命令式操作DOM声明式操作DOM 效率的取舍虚拟DOMVNodePatch 由状态到UI 状态 状态可以是JavaScript中的任意类型。Object、Array、String、Number、Boolean等都可以作为状态&#xff0c;这些状态可能最终会以段落、表单、链接或按钮等元素呈现在用户界…

课程设计---哈夫曼树的编码与解码(Java详解)

目录 一.设计任务&&要求&#xff1a; 二.方案设计报告&#xff1a; 2.1 哈夫曼树编码&译码的设计原理&#xff1a; 2.3设计目的&#xff1a; 2.3设计的主要过程&#xff1a; 2.4程序方法清单&#xff1a; 三.整体实现源码&#xff1a; 四.运行结果展示&…

javaSE:继承

在谈继承之前&#xff0c;我们先观察下面这个代码&#xff1a; //定义一个猫类 class Cat {public String name;public int age;public float weigth;public void eat(){System.out.println(this.name"正在吃饭");}public void mimi(){System.out.println(this.nam…

YoloV9改进策略:注意力篇|BackBone改进|自研像素和通道并行注意力模块(独家原创)

摘要 本文使用FFA-Net的注意力改进YoloV9,FFA-Net提出了通道注意力和像素注意力相结合的方式,提高Block的表征能力,我把这两种注意力结合起来改进YoloV8的BackBone,取得了非常好的效果,即插即用,简单易懂,非常适合大家入手。 论文翻译:《FFA-Net:用于单图像去雾的特征…