• 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
    
    • 1
    • 2

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

    vim ~/.bashrc
    export JAVA_HOME=/usr
    export PATH=$JAVA_HOME/bin:$PATH
    
    • 1
    • 2
    • 3

    更换阿里云后

    sudo apt-get update
    sudo apt-get upgrade
    
    • 1
    • 2

    查看java环境的版本

    javac --version
    javac 11.0.19
    
    • 1
    • 2
    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)
    
    • 1
    • 2
    • 3
    • 4
    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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    没有需要安装

    sudo apt install openjdk-11-jdk-headless
    
    • 1

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

    sudo apt-get update && sudo apt-get install --no-install-recommends --yes  gnupg
    
    • 1

    根据需要添加变量,这里用的是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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    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
    
    • 1
    • 2
    • 3
    • 4

    安装

    sudo apt-get update && sudo apt-get install --yes kurento-media-server
    
    • 1

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

    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 //查看日志
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    配置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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    检查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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    返回如下

    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,不用发现报错
    
    • 1
    • 2
    • 3
    • 4

    关闭防火墙,开通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

    ffmpeg是音视频必备,但即使从业数年,它似乎依然有无穷的秘密,感兴趣添加笔者微信:YQW1163720468,加入webrtc微信群讨论。但记得备注:webrtc爱好者

  • 相关阅读:
    存档&改造【03】Apex-Fancy-Tree-Select花式树的导入及学习
    linux内核发包工具pktgen
    Typescript学习笔记 | 字节青训营笔记
    C++ - 右值引用 和 移动拷贝
    记录 UniApp开发中遇到的坑
    LeetCode //C - 86. Partition List
    【源码系列】MyBatis与Spring整合原理源码
    【vscode下载安装】只需简单一步——使用镜像解决vscode下载慢、失败的问题
    LeetCode617. Merge Two Binary Trees
    Go中的有限状态机FSM的详细介绍
  • 原文地址:https://blog.csdn.net/weixin_43466192/article/details/133993764