Kurento多对多webrtc会议搭建测试
环境ubuntu18.04
KMS版本6.13.0
多对多通信demo7.0.0
KMS运行起来后,通过运行它的一个个demo,来实现不同的功能,它的demo很多如下:
https://github.com/Kurento

里面有一对一,多对多,还有一些特效的demo。这里运行的是多对多通话的demo。
它的KMS可以通过apt方式安装,然后拉下来每个demo源码来跑,每个demo的介绍使用在官网都有文档,如下:

建议完全按照官网的步骤运行,下面的方法包括配置一些环境问题和测试。
deviser@deviser:~/temp/KMS/kurento/tutorials/java/group-call$ which java
/usr/bin/java
根据以上地址,配置java环境变量
vim ~/.bashrc
export JAVA_HOME=/usr
export PATH=$JAVA_HOME/bin:$PATH
更换阿里云后
sudo apt-get update
sudo apt-get upgrade
查看java环境的版本
javac --version
javac 11.0.19
java --version
openjdk 11.0.19 2023-04-18
OpenJDK Runtime Environment (build 11.0.19+7-post-Ubuntu-0ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.19+7-post-Ubuntu-0ubuntu118.04.1, mixed mode, sharing)
mvn -v
Apache Maven 3.5.2
Maven home: /usr/share/maven
Java version: 11.0.19, vendor: Ubuntu
Java home: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-213-generic", arch: "amd64", family: "unix"
没有需要安装
sudo apt install openjdk-11-jdk-headless
Kurento Media Server简称KMS
安装gnupg,它是管理密钥和认证的工具,用来为后面添加KMS的源管理认证
sudo apt-get update && sudo apt-get install --no-install-recommends --yes gnupg
根据需要添加变量,这里用的是18.04
DISTRO="xenial" # KMS for Ubuntu 16.04 (Xenial)
DISTRO="bionic" # KMS for Ubuntu 18.04 (Bionic) //由于使用的是Ubuntu18.04服务器,所以选择这个添加源
```cpp
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
# Kurento Media Server - Release packages
deb [arch=amd64] http://ubuntu.openvidu.io/6.13.0 $DISTRO kms6
EOF
安装
sudo apt-get update && sudo apt-get install --yes kurento-media-server
一些服务器命令,这里启动服务器
sudo service kurento-media-server start
sudo service kurento-media-server stop
sudo service kurento-media-server status
sudo service kurento-media-server restart //重启kms
ps -ef | grep kurento-media-server
cat /var/log/kurento-media-server/error.log //查看日志
配置coturn服务器,参考
给KMS配置coturn
cd /etc/kurento/modules/kurento/
vim WebRtcEndpoint.conf.ini
//找到下列语句先将这两句取消注释,把尖括号里的内容替换成具体的IP地址和端口号
stunServerAddress=127.0.0.1
stunServerPort=3478
//填上可用的TURN 服务器地址、端口、用户名和密码(另见ubuntu18.04下安装coturn穿透服务器)
turnURL=helloworld:helloworld@127.0.0.1:3478?transport=udp
//重新启动KMS服务
sudo service kurento-media-server restart
检查Kurento的RPC WebSocket是否正常,并且能够接收和处理消息。为此,发送一个虚拟请求并检查响应是否符合预期
curl -i -N \-H "Connection: Upgrade" \-H "Upgrade: websocket" \-H "Host: 127.0.0.1:8888" \-H "Origin: 127.0.0.1" \http://127.0.0.1:8888/kurento
返回如下
HTTP/1.1 426 Upgrade Required
Connection: close Server:
WebSocket++/0.7.0
git clone https://github.com/Kurento/kurento.git
cd kurento/tutorials/java/group-call/
git checkout 7.0.0//相当于KMS6配7的demo了,用官网的源拉不下来7的KMS,许是我环境的问题
sudo mvn -U clean spring-boot:run//这里用了sudo,不用发现报错
关闭防火墙,开通tcp和udp的8888端口,KMS默认监听8888端口。
用firefox或者chrome打开,以下网址,有安全提示忽略,选高级按钮,接受风险进入。
https://localhost:8443/
如下:
PC1:其中大的是远端PC2的视频,小的是本地

PC2:其中大的是远端PC1的视频,小的是本地

测试发现,进入房间后,如果点击“leave room",之后再进入刚刚的房间,那么看不到本地和远端的,必须重刷新页面,再进入才能恢复。
参考:
官方文档
阿里云服务器(Ubuntu18.04版本)中安装Kurento流媒体服务器
Kurento的维护人员基于Kurento开发了商业的方案,叫OpenVidu,它较Kurento更容易上手,部署,其功能包含视频电话,视频课堂,视频会议等。其demo可以在以下连接体验,在两个pc上打开浏览器即可测试。
OpenVidu_demo
但这个服务分为免费和付费的。如下:

以上测试只用两个浏览器,但我们用的server其实是官网的server。想要自己部署到本地可参考如下教程。包括流媒体服务器,信令服务器,客户端等。
OpenVidu

相关文章:
Kurento多对多webrtc会议搭建测试
环境ubuntu18.04 KMS版本6.13.0 多对多通信demo7.0.0 KMS运行起来后,通过运行它的一个个demo,来实现不同的功能,它的demo很多如下: https://github.com/Kurento 里面有一对一,多对多,还有一些特效的demo。…...
蓝桥杯 (饮料换购,C++)
思路: 1、先加上初始的饮料数n。 2、再加上n可以兑换的饮料数n/3,求多余的瓶盖n%3。循环直至瓶盖数无法兑换新的一瓶饮料。 #include<iostream> using namespace std; int main() {int n,a0,sum0;cin >> n;sum n;while (n){n n a;//加上上…...
《java核心卷Ⅰ》知识点总结(可作面试题)
🛫 JDK和JRE傻傻分不清?🛫 HelloWorld的输出都经历了啥?🛫 Java的三个版本都是啥?🛫 关于main方法你都知道啥?main方法被声明为private会怎样?🛫 强制and自动类型转换都…...
发成绩小程序,一键群发成绩给家长,省事
大家好!又到了学期末,是不是又开始为了学生的成绩而烦恼了?别担心,今天就给大家带来一款超级实用的成绩查询系统!从此告别繁琐的手动操作,一键群发成绩给家长,轻松又愉快! 成绩查询系…...
barzilar_borwein算法微调函数的优化收敛
import optimtool as oo from optimtool.base import np, sp, pltpip install optimtool>2.4.2加载barzilar_borwein算法 import optimtool.unconstrain as ou barzilar_borwein ou.gradient_descent.barzilar_borwein初始化输入数据 f ( x ) ∑ i 1 n / 2 c ( x 2 i −…...
SpringBoot篇---第一篇
系列文章目录 文章目录 系列文章目录一、为什么要用SpringBoot二、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?三、运行Spring Boot有哪几种方式?一、为什么要用SpringBoot Spring Boot 优点非常多,如: 一、独立运行 Spring Boot而且内嵌了各种servlet容器,…...
算法通关村第二关-白银挑战反转链表拓展问题
大家好我是苏麟 , 今天聊一聊链表反转拓展问题 . 反转链表拓展问题 1.指定区间反转 描述 : 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 题目…...
【rust/树莓派】使用rppalembedded-graphics控制st7789 LCD屏幕
说在前面 树莓派版本:4bLCD模块:ST7789V2 240*280 LCD树莓派系统:Linux raspberrypi 5.15.76-v8 #1597 SMP aarch64 GNU/Linuxrust版本:rustc 1.73.0 模块详情 某雪的1.69inch LCD模块,包含杜邦线 准备工作 树莓派…...
WebSocket—STOMP详解(官方原版)
WebSocket协议定义了两种类型的消息(文本和二进制),但其内容未作定义。该协议定义了一种机制,供客户端和服务器协商在WebSocket之上使用的子协议(即更高级别的消息传递协议),以定义各自可以发送…...
淘宝/天猫获取购买到的商品订单物流信息 API分享
开发背景: 淘宝是中国最大的电商平台之一,拥有海量的用户和卖家。为了方便卖家和买家之间的交易,淘宝提供了订单物流API的开发接口。通过这个接口,卖家可以快速获取到买家的订单信息以及物流状态,从而更好地管理自己的…...
PS软件 点击 “另存为 Web 所用格式” ,提示错误 无法完成操作 系统找不到指定路径
软件:Adobe Photoshop 问题: PS 点击 另存为 Web 所用格式 ,提示错误 无法完成操作 系统找不到指定路径 解决: 如果是Win10以上的系统,出现这种情况基本就是被系统自带的杀毒软件阻止了,可以看一下电脑右…...
解决“您点击的链接已过期”;The Link You Followed Has Expired的问题
今天WP碰到一个坑。无论发布文章还是更新插件、更换主题都是这么一种状态“您点击的链接已过期”;The Link You Followed Has Expired 百度出来的答案都是修改post_max_size 方法1. 通过functions.php文件修复 这种方法更容易,只需将以下代码添加到Wor…...
说说对ajax、axios、jsonp的理解
下面是对 AJAX、Axios 和 JSONP 的简要说明: 1:AJAX(Asynchronous JavaScript and XML): AJAX 是一种用于创建异步通信的技术,通过在后台与服务器进行数据交换,实现页面的局部更新,…...
黄金代理这么多,怎么选?
目前,现货黄金代理已成为了市场中成熟的模式,我们只要在搜索引擎上搜索如何在市场中开户,会搜到各种各样的黄金代理,其中更是不乏服务非常优秀的。部分投资者早就接受了黄金代理的存在,并且率先开始在黄金代理中进行开…...
一个工作三年的前端是如何做性能优化的
你是怎么做性能优化的?关于这一个问题,也是我们前端开发程序员经常会讨论到的问题,接下来这篇文章将总结一下前端方面的性能优化及方式。 为什么要做性能优化 性能优化是为了提高网页的加载速度和相应速度,给用户带来更好的体验…...
如何确定自己的armbian系统是不是ARM64架构
使用 arch 命令: arch 命令会返回当前系统的架构信息。 arch系统是ARM64架构,返回 aarch64。系统是ARM32架构,它会返回 armv7l 或类似的值。 使用 uname 命令: 确认系统架构的方法是使用 uname 命令 uname -a这会显示系统的详…...
leetcode_1155 掷骰子等于目标和的方法数
1. 题意 n个k面的骰子,投掷出骰子的点数之和为target的所有可能。 掷骰子等于目标和的方法数 2. 题解 动态规划,实际上相当于一个0-1背包。 令 d p [ i ] [ j ] dp[i][j] dp[i][j]为前 i i i个骰子和为j的方案数 则 d p [ i ] [ j ] ∑ t 1 k d p…...
2023年中国精准放疗未来展望分析:将朝着精准化、数字化和智能化发展[图]
肿瘤放射治疗是利用放射线治疗肿瘤的一种局部治疗方法。放射线包括放射性同位素产生的α、β、γ射线和各类x射线治疗机或加速器产生的x射线、电子线、质子束及其他粒子束等。放射治疗在肿瘤治疗中的作用和地位日益突出,已成为治疗恶性肿瘤的主要手段之一。 现代放…...
大数据之LibrA数据库常见术语(二)
Cgroups Control Groups,控制组(FusionInsight LibrA中也称之为优先级组)。SUSE Linux和RedHat内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。 CLI Command-line Interface,命令行界面。应用程序和用户交互…...
华为面试题
一、实习 1、健康险核心 batch 自动查询和一键重启 2、后端如何实现免密登录 Spring Boot与Spring Security: 如果你使用的是Spring框架,Spring Security可以为你提供大量的安全功能。创建一个基于Spring Boot的新项目,并添加Spring Securi…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
