mediaSoup编译流程(ubuntu20.04不用翻墙,以及踩坑记录)

news2024/9/22 1:20:47

ubuntu20.04,一定要确保能够ping通github.com因为我们有很多依赖包需要从上面下载

首先安装node.js >=16版本

sudo apt-get update

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
 

为node换源

查看node源:sudo npm config get registry

设置淘宝镜像地址:sudo npm config set registry https://registry.npmmirror.com

下载mediaSoup代码:

git clone https://github.com/versatica/mediasoup-demo.git

cd mediasoup-demo

git checkout v3

更换server下和app下的packege.json的东西:

server

app:

 

修改完成后切入到server下执行npm install,如果失败就删除node_modle多执行几次:

第一次使用sudo npm install --legacy-peer-deps执行失败没有装node-gyp

 安装gyp:sudo npm install -g node-gyp

 

第二次执行npm install 失败

删除node_modules重新install

 第三次npm install 失败,没有装make

 安装make:apt install -y make

第四次install失败,没装g++

安装g++:apt install -y g++

第五次npm install成功:

由于mediaSoup是https连接需要秘钥:

在server下创建一个certs文件夹sudo mkdir certs,进入certs中

编写一个生成秘钥sh文件,并给它执行权限:

 内容:

#!/usr/bin/env bash
# When OpenSSL prompts you for the Common Name for each certificate, use different names.

# CA key
openssl genrsa -out ca.key 2048
# CA csr
openssl req -new -subj "/CN=ca" -key ca.key -out ca.csr
# CA crt
openssl x509 -req -in ca.csr -out ca.crt -signkey ca.key -days 3650

# server key
openssl genrsa -out server.key 2048
# server.csr
openssl req -new -subj "/CN=server" -key server.key -out server.csr
# server.crt
openssl x509 -req -in server.csr -out server.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
# server.crt verify
openssl verify -CAfile ca.crt  server.crt

# client key
openssl genrsa -out client.key 2048
# client.csr
openssl req -new -subj "/CN=client" -key client.key -out client.csr
# client.crt
openssl x509 -req -in client.csr -out client.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
# client.crt verify
openssl verify -CAfile ca.crt  client.crt

# md5 checksum
md5sum * > md5.txt

 保存执行:

sudo ./xxx.sh 

会在certs下生成秘钥

将crt和key的路径贴在config.js中,并将config中的ip换成我们的ip:

 

 保存启动:npm start:

server启动成功

新开一个窗口

cd到app路径下,执行npm install再执行npm start

由于server已经把坑全填了,app异常顺利:

 

浏览器访问3000端口:OK

 

 

 

 

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

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

相关文章

数学建模—层次分析法

数模算法1:层次分析法 适用问题:评价类问题,决策(方案选择类) ** input**:判断矩阵(A) AHP处理 output:权重(得分)向量 1.整体导图 2.算法步骤及代码 2.1算…

从关键新闻和最新技术看AI行业发展(2023.5.22-6.22第一期) |【WeThinkIn老实人报】

Rocky Ding WeThinkIn 写在前面 【WeThinkIn老实人报】是WeThinkIn的全新栏目,旨在整理&挖掘AI行业的关键新闻和最新技术,同时Rocky会对这些关键信息进行解读,力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的优化建议&#xff0…

Git:Rebase和Merge之间的区别

一、merge merge的原理是找到这两个分支的祖先commit,在两个分支最新的commit进行三方对比合并 例如下图,共同的祖先commit2,master最新commit6,develop最新commit5,merge会基于2,5,6这三个commit进行对比&…

多模态信息融合研究

1、主要研究方向 多模态学习可以划分为以下五个研究方向: 多模态表示学习 Multimodal Representation:主要研究如何将多模态的数据所蕴含的语义信息通过embedding的方式实现向量化,便于后续的计算; 模态转化 Translation&#…

BN层的参数γ、β以及前、后向传播

γ、β 存在问题 在对输入做完标准化后,可能会出现以下情况:网络中间某一层学习到特征数据本身分布在sigmoid激活函数的两侧,标准化会强制把输入的均值限制为0、标准差限制为1,这样就把数据变换成分布在sigmoid激活函数的中间部…

补充python部分细节性知识点

未完,持续更新中。。。 一、数据类型 1.浮点型:float 使用浮点型的变量相加之后可能会存在值不准确的问题,可以考虑引入decimal模块,decimal其实也是一种数据类型,是十进制的数据类型,实际上就是将flaot类型进行一次…

Java安全——语言安全结构

Java安全 Java语言安全 Java语言安全结构 面向对象的一个设计突出点就是允许数据的隐藏和数据的封装。数据封装确定了数据的访问只能通过公共接口访问操作。而一般的操作是直接管理对象的数据元素。对于开发大型的,健壮性的面向对象的系统的重要性。 java实体的…

Linux下std::ifstream成员函数对应系统调用验证

最近在分析离线数据使用时的bug&#xff0c;发现代码中对std::ifstream成员函数使用存在疑问&#xff0c;所以就写了个简单测试程序来分析std::ifstream成员函数对应那些系统调用。 目录 1.gcount 2.seekg和tellg 3.read 代码如下&#xff1a; test.cpp #include <ios…

python中如何使用正则表达式提取数据

这篇文章主要介绍了python中如何使用正则表达式提取数据问题。具有很好的参考价值&#xff0c;希望对大家有所帮助。如有错误或未考虑完全的地方&#xff0c;望不吝赐教。 正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。 re…

mac m4a转mp3怎么转?

mac m4a转mp3怎么操作&#xff1f;小编之前编写了在windows系统电脑上进行音频格式转换的教程和方法&#xff0c;帮助了不少的小伙伴。最近有一个粉丝朋友向我求助&#xff0c;因为自己使用的是苹果mac电脑&#xff0c;有没有什么方法可以在上面将m4a音频格式转换成mp3。因为使…

从加密转型AI:追求可持续性发展还是盲目跟风?

很多批评者曾说&#xff0c;加密行业充斥着流行语&#xff0c;总是在追逐下一个新趋势&#xff0c;甚至会因为过度追求短期利润而忽视了可持续性发展的重要性。在大多数情况下&#xff0c;他们似乎是对的。 上周末&#xff0c;国内最早也是最大的比特币论坛巴比特宣布转型AI赛道…

ClickHouse单节点安装配置

创建目录 mkdir /opt/clickhouse 将文件复制到目录 cp /opt/clickhouse-*.rpm /opt/module/clickhouse/ 在/clickhouse目录下解压安装文件 rpm2cpio clickhouse-client-21.7.3.14-2.noarch.rpm | cpio -idmv rpm2cpio clickhouse-common-static-21.7.3.14-2.x86_64.rpm | …

OpenCV学习笔记 | 边缘检测Canny算法复现 | Python

摘要 OpenCV中的边缘检测是指在图像中检测出明显的边缘轮廓线&#xff0c;可以通过计算图像中每个像素的梯度来实现。Canny算法是一种常用的边缘检测算法&#xff0c;它主要通过连续的操作来寻找边缘&#xff0c;包括对图像去噪、计算图像梯度、非极大值抑制和双阈值处理等步骤…

第36节:cesium 下雨效果(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><vc-viewer @ready="ready" :logo="false"><!

[ JVM ] 常用参数 优化参考

基础概念回顾 JDK、JRE、JVM的关系&#xff08;JDK>JRE>JVM&#xff09; JDK JRE 开发工具 、JRE JVM 类库&#xff0c;具体关系如下图&#xff1a; JDK&#xff08;Java Development Kit&#xff09; 用于开发 Java 应用程序的软件开发工具集合&#xff0c;包括 了 …

【接口mock工具】推荐一个好用的api接口关联,接口mock,文档管理的工具-yapi

【接口mock工具】推荐一个好用的api接口关联&#xff0c;接口mock&#xff0c;文档管理的工具-yapi 能满足的功能 &#xff1a; 1. 接口mock 2. 接口文档生成 3. 接口自动化测试 4. 接口自动化测试结果可以发送到你的企业微信上面 5. 接口管理可以按照分组&#xff0c;分项…

python数据分析之利用多种机器学习方法实现文本分类、情感预测

大家好&#xff0c;我是带我去滑雪&#xff01; 文本分类是一种机器学习和自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;旨在将给定的文本数据分配到预定义的类别或标签中。其目标是为文本数据提供自动分类和标注&#xff0c;使得可以根据其内容或主题进行组织、排…

初见RNN(第七次组会)

初见RNN&#xff08;第七次组会&#xff09; 序列模型、马尔可夫假设循环神经网络 序列模型、马尔可夫假设 循环神经网络

[rocketmq] 浅谈结构

rocketmq 结构 NameServer &#xff1a;几乎是无状态节点&#xff0c;可横向扩展&#xff0c;节点之间无消息同步&#xff0c;主要负责对源数据的管理&#xff0c;包括对于Topic和路由信息的管理。 每个 Broker 在启动的时候会到 NameServer 注册&#xff0c;Producer 在发送消…

【UEFI实战】UEFI图形显示(从像素到字符)

GraphicsConsoleDxe 在【UEFI实战】UEFI图形显示&#xff08;显示驱动&#xff09;中已经介绍了如何使用显卡驱动安装的GOP来进行像素级别的显示&#xff0c;本文介绍的内容是对像素的包装&#xff0c;最终变成普通字符的输出。 模块简述 本模块将原本的GOP包装成了字符输出…