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流媒体服务器

相关推荐
runner365.git32 分钟前
WebRTC实现VoiceAgent智能体
webrtc
runner365.git3 小时前
RTCPilot的信令流程
webrtc·音视频开发
runner365.git3 小时前
如何使用RTCPilot配置一个集群RTC服务
webrtc·实时音视频·音视频开发
深念Y1 天前
从WebSocket到WebRTC,豆包级实时语音交互背后的技术演进
websocket·网络协议·实时互动·webrtc·语音识别·实时音视频
AI视觉网奇3 天前
webrtc 硬编码
ffmpeg·webrtc
REDcker3 天前
WebRTC 接收端音频流畅低延迟播放:原理与源码对照(NetEQ / Opus)
音视频·webrtc
SUNNY_SHUN3 天前
LiveKit Agents:基于WebRTC的实时语音视频AI Agent框架(9.9k Star)
人工智能·github·webrtc
Pending4 天前
从 400 行到 40 行:一个 WebRTC 播放器的简洁实现之道
开源·webrtc·前端工程化
CrystalShaw5 天前
WebRTC原生PLC VS SILK之PLC
webrtc
乐鑫科技 Espressif6 天前
亚马逊 KVS WebRTC SDK 适配乐鑫芯片及 ESP RainMaker Camera
人工智能·webrtc·乐鑫科技