Livekit本地部署Egress录制服务

Livekit本地部署Egress录制服务

Egress官方推荐使用Docker方式部署。官方文档

创建Egress配置文件

新建config文件

vim config.yaml

config.yaml文件内容


log_level: debug

#  api_key 参考livekit 部署 配置的 
api_key: 2yJimTMFeF9h15PHEv
api_secret: Mvi9ZgqGJ3LqwEAcTVvWse3conEyQt92FEKTVERzd

# livekit  的地址,切记本地不要用 wss:ip  假证书这种形式
ws_url: ws://10.50.103.1:7880
# 布局模板路径
template_base: /templates
# 可用于连接到不安全的websocket 本地部署一定要改为true
insecure: true

redis:
  # reids 地址 注意和 livekit 配置的reids 一致
  address: 10.50.7.1:6379
  password: redis密码
  db: 0

Docker 部署 Egress 服务

视频存放目录和模板存放目录赋权

chmod 777 /root/Egress/output
chmod 777 /root/Egress/templates

使用以下命令启动 LiveKit Egress 服务的 Docker 容器:

docker run -d \
  --name livekit-egress \
  --cap-add SYS_ADMIN \
  -e EGRESS_CONFIG_FILE=/config.yaml \
  -v /root/Egress/config.yaml:/config.yaml \
  -v /root/Egress/output:/output \
  -v /root/Egress/templates:/templates \
  livekit/egress



参数说明:
  • -d:让容器在后台运行(守护模式)。
  • –name livekit-egress:给容器指定一个名称 livekit-egress,方便管理。
  • -v /root/Egress/config.yaml:/config.yaml:将主机上的 /root/Egress/config.yaml 配置文件挂载到容器内的 /config.yaml 路径。
  • -v /root/Egress/output:/output:将主机上的 /root/Egress/output 目录挂载到容器内的 /output 目录,录制文件会保存在这里。
  • -v /root/Egress/templates:/templates:将主机上的 /root/Egress/templates 目录挂载到容器内的 /templates 目录(假设你的 Egress 需要模板)。
  • livekit/egress:指定要运行的 Docker 镜像,即 livekit/egress。
  • –config /config.yaml:告诉 livekit-egress 服务使用容器内的 /config.yaml 作为配置文件。
验证和注意事项:
  • 路径检查:确保 /root/Egress/config.yaml、/root/Egress/output 和 /root/Egress/templates 在主机上确实存在并且内容正确。
  • 权限检查:确保 Docker 进程对这些路径具有读取权限,尤其是在 /root 目录下。
  • 容器检查:使用 docker ps 检查容器是否正在运行,使用 docker logs livekit-egress 查看日志,确保服务启动没有报错。

官方配置文件详解


以下是 LiveKit Egress 官方配置文件的逐行解释:

必填字段 (Required fields)
api_key: livekit server api key

作用: 指定 LiveKit 服务器的 API 密钥,用于验证和访问 LiveKit 服务。可以通过环境变量 LIVEKIT_API_KEY 来代替该配置。
示例: api_key: YOUR_LIVEKIT_API_KEY
api_secret: livekit server api secret

作用: 指定 LiveKit 服务器的 API 秘钥,用于与 api_key 配合进行身份验证。可以通过环境变量 LIVEKIT_API_SECRET 来代替该配置。
示例: api_secret: YOUR_LIVEKIT_API_SECRET
ws_url: livekit server websocket url

作用: 指定 LiveKit 服务器的 WebSocket URL,Egress 服务将通过该 URL 连接到 LiveKit 服务器。可以通过环境变量 LIVEKIT_WS_URL 来代替该配置。
示例: ws_url: ws://your-livekit-server:7880
redis:

作用: 配置 Redis 数据库的连接信息,Redis 用于 LiveKit 的消息队列和存储。
子字段:
	address: must be the same redis address used by your livekit server
	作用: 指定 Redis 服务器的地址,必须与 LiveKit 服务器使用的 Redis 地址一致。
	示例: address: 127.0.0.1:6379
	username: redis username
	作用: 指定 Redis 的用户名(如果有设置)。
	示例: username: redis_user
	password: redis password
	作用: 指定 Redis 的密码(如果有设置)。
	示例: password: redis_password
	db: redis db
	作用: 指定 Redis 数据库的编号。
	示例: db: 0
可选字段 (Optional fields)
health_port: if used, will open an http port for health checks

作用: 如果配置,将打开一个 HTTP 端口用于健康检查,允许监控服务的运行状态。
示例: health_port: 8081
template_port: port used to host default templates (default 7980)

作用: 指定用于托管默认模板的端口,默认值为 7980。
示例: template_port: 7980
prometheus_port: port used to collect prometheus metrics. Used for autoscaling

作用: 指定用于收集 Prometheus 指标的端口,通常用于自动扩展监控。
示例: prometheus_port: 9090
log_level: debug, info, warn, or error (default info)

作用: 设置日志级别,可以选择 debug(调试)、info(信息)、warn(警告)或 error(错误)。
示例: log_level: info
template_base: can be used to host custom templates (default http://localhost:<template_port>/)

作用: 指定用于托管自定义模板的 URL 基础路径。默认使用 http://localhost:<template_port>/。
示例: template_base: http://localhost:7980/
enable_chrome_sandbox: if true, egress will run Chrome with sandboxing enabled. This requires a specific Docker setup, see below.

作用: 如果设置为 true,Egress 将在启用沙盒的情况下运行 Chrome。这需要特定的 Docker 配置,通常用于提高安全性。
示例: enable_chrome_sandbox: false
insecure: can be used to connect to an insecure websocket (default false)

作用: 如果设置为 true,允许 Egress 连接到不安全的 WebSocket。这在开发环境中常用。
示例: insecure: true
文件上传配置 (File upload config)
此部分用于配置录制文件的上传目的地,只能选择一个配置(S3、Azure 或 GCP)。这些配置可以在每个请求中被覆盖。

s3:
作用: 配置用于将录制文件上传到 AWS S3。
	子字段:
	access_key: AWS_ACCESS_KEY_ID env can be used instead
	作用: 指定 AWS 的访问密钥。可以使用环境变量 AWS_ACCESS_KEY_ID 来代替该配置。
	secret: AWS_SECRET_ACCESS_KEY env can be used instead
	作用: 指定 AWS 的密钥。可以使用环境变量 AWS_SECRET_ACCESS_KEY 来代替该配置。
	region: AWS_DEFAULT_REGION env can be used instead
	作用: 指定 AWS 的区域。可以使用环境变量 AWS_DEFAULT_REGION 来代替该配置。
	endpoint: optional custom endpoint
	作用: 可选的自定义 S3 端点,用于连接到非 AWS 的兼容 S3 服务。
	bucket: bucket to upload files to
	作用: 指定要上传文件的 S3 存储桶名称。
 azure:
	作用: 配置用于将录制文件上传到 Azure Blob 存储。
	子字段:
	account_name: AZURE_STORAGE_ACCOUNT env can be used instead
	作用: 指定 Azure 的存储帐户名称。可以使用环境变量 AZURE_STORAGE_ACCOUNT 来代						替该配置。
	account_key: AZURE_STORAGE_KEY env can be used instead
	作用: 指定 Azure 的存储帐户密钥。可以使用环境变量 AZURE_STORAGE_KEY 来代替该	配置。
	container_name: container to upload files to
	作用: 指定要上传文件的 Azure Blob 容器名称。
gcp:
	作用: 配置用于将录制文件上传到 Google Cloud Storage。
	子字段:
	credentials_json: GOOGLE_APPLICATION_CREDENTIALS env can be used instead
	作用: 指定包含 Google Cloud 凭据的 JSON 文件路径。可以使用环境变量 	GOOGLE_APPLICATION_CREDENTIALS 来代替该配置。
	bucket: bucket to upload files to
	作用: 指定要上传文件的 Google Cloud Storage 存储桶名称。

Egress服务启动验证

使用docker logs查看日志,如有starting template server on address localhost:7980 表示启动成功了
在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微光•无单位

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值