Kurento多对多webrtc会议搭建测试

环境ubuntu18.04

KMS版本6.13.0

多对多通信demo7.0.0

KMS运行起来后,通过运行它的一个个demo,来实现不同的功能,它的demo很多如下:
https://github.com/Kurento

里面有一对一,多对多,还有一些特效的demo。这里运行的是多对多通话的demo。

它的KMS可以通过apt方式安装,然后拉下来每个demo源码来跑,每个demo的介绍使用在官网都有文档,如下:

建议完全按照官网的步骤运行,下面的方法包括配置一些环境问题和测试。

cpp 复制代码
deviser@deviser:~/temp/KMS/kurento/tutorials/java/group-call$ which java
/usr/bin/java

根据以上地址,配置java环境变量

cpp 复制代码
vim ~/.bashrc
export JAVA_HOME=/usr
export PATH=$JAVA_HOME/bin:$PATH

更换阿里云后

cpp 复制代码
sudo apt-get update
sudo apt-get upgrade

查看java环境的版本

cpp 复制代码
javac --version
javac 11.0.19
cpp 复制代码
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)
cpp 复制代码
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"

没有需要安装

cpp 复制代码
sudo apt install openjdk-11-jdk-headless

Kurento Media Server简称KMS

安装gnupg,它是管理密钥和认证的工具,用来为后面添加KMS的源管理认证

cpp 复制代码
sudo apt-get update && sudo apt-get install --no-install-recommends --yes  gnupg

根据需要添加变量,这里用的是18.04

cpp 复制代码
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
cpp 复制代码
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

安装

cpp 复制代码
sudo apt-get update && sudo apt-get install --yes kurento-media-server

一些服务器命令,这里启动服务器

cpp 复制代码
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

cpp 复制代码
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是否正常,并且能够接收和处理消息。为此,发送一个虚拟请求并检查响应是否符合预期

cpp 复制代码
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

cpp 复制代码
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流媒体服务器

相关推荐
dualven_in_csdn2 天前
【webrtc】继续编译aar 2025-12-12
webrtc
kkk_皮蛋2 天前
WebRTC 是什么?能做什么?(概览篇)
webrtc
kkk_皮蛋3 天前
WebRTC 中的临界锁实现:从 CritScope 到 RAII 机制的深度解析
webrtc·策略模式
嘻哈baby3 天前
WebRTC实时通信原理与P2P连接实战
网络协议·webrtc·p2p
好游科技3 天前
使用WebRTC开发直播系统与音视频语聊房实践指南
音视频·webrtc·im即时通讯·社交软件·私有化部署im即时通讯·社交app
好游科技4 天前
语音语聊系统开发深度解析:WebRTC与AI降噪技术如何重塑
人工智能·webrtc·交友·im即时通讯·社交软件·社交语音视频软件
福大大架构师每日一题4 天前
pion/webrtc v4.1.7 版本更新详解
webrtc
kkk_皮蛋4 天前
深入理解 WebRTC 视频质量降级机制
网络·音视频·webrtc
kkk_皮蛋4 天前
深入理解 WebRTC 临界锁实现与 C++ RAII 机制
开发语言·c++·webrtc
好游科技5 天前
使用WebRTC开发直播系统源码与音视频语聊房实践指南
音视频·webrtc·im即时通讯·社交软件·社交语音视频软件