媒体服务器安装

安装 Docker

Docker 将成为 Kurento-Media-Server 的容器,我们需要它来实现微音频、摄像头、录音和共享桌面。

更新系统:

sudo apt update

安装一些需要的数据包:

sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

…为官方 Docker 存储库添加 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

…现在将 repo 添加到我们的 APT:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable"

…更新以使更改生效:

sudo apt update

…现在为了确保 Docker 将从我们添加的 repo 中安装,请运行以下命令:

apt-cache policy docker-ce

…必须显示类似这样的内容:

docker-ce:
  Installed: 5:23.0.4-1~ubuntu.20.04~focal
  Candidate: 5:24.0.2-1~ubuntu.20.04~focal
  Version table:
     5:24.0.2-1~ubuntu.20.04~focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

…并安装 Docker:

sudo apt install docker-ce -y

…我们检查安装是否正确并且正在运行:

sudo systemctl status docker

…将显示类似这样的内容:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-09-22 20:52:59 CST; 4min 21s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 962 (dockerd)
      Tasks: 8
     Memory: 100.0M
     CGroup: /system.slice/docker.service
             └─962 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Docker 镜像

LLMeetings 与 Kurento Media Server 的默认配置是 1:1 映射。每个 LLMeetings 实例都精确映射到 1 个 KMS 实例,并且 LLMeetings 和 KMS 在同一主机上运行。

运行 KMS 最快捷、最简单的方法是通过 Docker。但只有您是经验丰富的 Docker 用户,才能通过运行以下命令在本地运行 KMS。

// for example /home/$user/work/openmeetings
export OM_HOME=$YOUR_PATH
// for example export OM_HOME=/Users/wagns1/Documents/openmeetings/_REPO/openmeetings \
/op enmeetings-web/target/openmeetings-web-5.0.0-M5-SNAPSHOT
docker run -v $OM_HOME/data:$OM_HOME/data -p 8888:8888 kurento/kurento-media-server

每个 LLMeetings 实例都需要运行 Kurento Media Server (KMS)。这里有完整的安装模式列表:  安装 Kurento Media server.

kurento-media-server Docker 镜像是一个不错的 一体化 软件包,可轻松快速地启动。它带有所有默认设置, 足以让您尝试教程.

如果您需要从 Docker 容器中插入或提取文件,则有多种方法:您可以使用绑定安装;卷; 从现有容器中cp 一些文件;更改您的 ENTRYPOINT 以在启动时生成或复制文件;或以此 Docker 映像为基础并使用您自己的自定义项构建一个新映像。查看 Docker 中的 Kurento 以获取如何使用绑定安装提供您自己的配置文件的示例。

这些是图像的确切内容:

  • 本地 apt-get 安装 KMS,如本地安装所述,以及其所有额外插件(chroma、platedetector 等)。
  • 已安装调试符号,如安装调试符号所述,这样可以在 KMS 进程崩溃时获取有用的堆栈跟踪。如果发生这种情况,请报告错误
  • 所有 设置均 来自本地安装,位于/etc/kurento 中。有关详细信息,请参阅 配置.
运行

Docker 允许微调容器的运行方式,因此您需要阅读Docker运行参考并找出项目所需的命令选项。

这是一个很好的起点,它使用默认选项运行最新的 Kurento Media Server 映像:

docker pull kurento/kurento-media-server:7.1.0

docker run -d --name kurento --network host kurento/kurento-media-server:7.1.0

默认情况下,KMS 监听端口  8888. 想要使用 Kurento 协议控制媒体服务器的客户端应直接或通过提供的 客户端API 参考 SDKs打开与该端口的 WebSocket 连接。.

此 Docker 镜像中的健康检查器脚本执行一些非常类似的操作来检查容器是否健康。

一旦容器运行,您就可以使用 docker logs 命令获取其日志输出:

docker logs --follow kms >"kms-$(date '+%Y%m%dT%H%M%S').log" 2>&1

有关 KMS 日志的更多详细信息,请查看调试Logging

为什么使用主机网络参数

注意到我们建议的 docker run 命令如何使用 –network host了吗?建议对代理和媒体服务器等软件使用 Host Networking参数,因为否则发布大量容器端口会消耗大量内存。您可以在故障排除指南中阅读有关此问题的更多信息 。

主机网络驱动程序 仅适用于 Linux 主机,因此如果您使用的是 Mac 或 Windows 版 Docker,则需要了解 Docker 网络网关充当主机和容器之间的 NAT。要使用没有 STUN 的 KMS (例如,如果您只是测试一些教程), 您需要发布 KMS 将侦听传入数据的所有必需端口。

例如,如果您使用 Docker for Mac 并希望让 KMS 监听 UDP 端口范围 [5000, 5050] (从而允许这些端口上的传入数据),以及客户端API 参考的  TCP 端口 8888,请运行:

docker run --rm \
    -p 8888:8888/tcp \
    -p 5000-5050:5000-5050/udp \
    -e KMS_MIN_PORT=5000 \
    -e KMS_MAX_PORT=5050 \
    kurento/kurento-media-server:7.1.0
Docker 升级

Docker 部署方法最棒的一点是,更改版本或升级非常简单。只需 拉取 新的镜像版本并使用它来运行新容器:

# Download the new image version:
docker pull kurento/kurento-media-server:7.1.0

# Create a new container based on the new version of KMS:
docker run [...] kurento/kurento-media-server:7.1.0

本地安装

我们强烈推荐在产品环境中使用本地安装选项。使用此方法,您将从kurento团队构建的原生 Ubuntu 包安装 Kurento Media Server。

官方支持的平台:  Ubuntu 24.04 (noble)  (64 位)。

打开终端并运行以下命令:

  1. 确保已安装 GnuPG。
sudo apt-get update ; sudo apt-get install --no-install-recommends gnupg
  1. 将 Kurento 存储库添加到您的系统配置中。运行以下命令:
# Get DISTRIB_* env vars.
source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release

# Add Kurento repository key for apt-get.
sudo apt-key adv \
    --keyserver hkp://keyserver.ubuntu.com:80 \
    --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83

# Add Kurento repository line for apt-get.
sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
# Kurento Media Server - Release packages
deb [arch=amd64] http://ubuntu.openvidu.io/7.1.0 $DISTRIB_CODENAME main
EOF
  1. 安装 KMS

注意:此步骤 仅适用于首次安装。如果您已经安装了 Kurento 并想要升级它,请按照此处描述的步骤操作: 本地升级。

sudo apt-get update ; sudo apt-get install --no-install-recommends \
    kurento-media-server

这将安装 Kurento Media Server 的发布版本。

本地升级

要升级本地安装的 Kurento Media Server,您必须将新版本号写入在本地安装期间创建的 /etc/apt/sources.list.d/kurento.list 文件中。编辑该文件后,您可以选择以下两个选项来实际应用升级:

A.升级所有系统包

这是 Debian 和 Ubuntu 维护者方法所期望的标准程序。升级所有系统软件包是一种确保所有内容都设置为最新版本的方法,并且所有错误修复和安全更新也都已应用,因此这是最推荐的方法:

sudo apt-get update ; sudo apt-get dist-upgrade

但是,不要在 Docker 容器内执行此操作。运行 apt-get upgrade 或 apt-get dist-upgrade 不符合 Docker最佳实践; 相反,您应该直接迁移到较新版本的 Kurento Docker 镜像

B.在安装新版本之前,请先卸载旧版本的 Kurento。

但请注意,apt-get 不足以 删除所有 Kurento 软件包。我们建议您使用 aptitude来实现这一点,它比apt-get 好得多 :

sudo aptitude remove '?installed?version(kurento)'

sudo apt-get update ; sudo apt-get install --no-install-recommends \
    kurento-media-server