livekit/egressLiveKit Egress是LiveKit实时音视频平台的核心组件,专注于媒体流输出处理。它接收来自LiveKit SFU的实时音视频流,通过配置将流录制为文件、推送到CDN或生成可分发的媒体格式,为实时音视频应用提供完整的内容留存与分发能力。
从LiveKit官方仓库拉取最新镜像:
bashdocker pull livekit/egress:latest
bashdocker run -d \ --name livekit-egress \ -e LIVEKIT_URL="wss://your-livekit-server:7880" \ -e LIVEKIT_API_KEY="your-api-key" \ -e LIVEKIT_API_SECRET="your-api-secret" \ -e EGRESS_CONFIG_PATH="/etc/egress/config.yaml" \ -v ./config.yaml:/etc/egress/config.yaml \ livekit/egress:latest
| 环境变量 | 描述 | 示例值 |
|---|---|---|
LIVEKIT_URL | LiveKit SFU 服务器WebSocket地址 | wss://livekit.example.com:7880 |
LIVEKIT_API_KEY | LiveKit API访问密钥 | API_KEY_XXX |
LIVEKIT_API_SECRET | LiveKit API密钥对应的密钥 | API_SECRET_XXX |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
STORAGE_TYPE | 存储类型(local/s3/gcs/azure) | s3 |
S3_BUCKET | S3存储桶名称(当STORAGE_TYPE为s3时) | livekit-recordings |
yamlversion: '3.8' services: egress: image: livekit/egress:latest container_name: livekit-egress environment: - LIVEKIT_URL=wss://livekit-sfu:7880 - LIVEKIT_API_KEY=${LIVEKIT_API_KEY} - LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET} - STORAGE_TYPE=s3 - S3_BUCKET=livekit-recordings - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - AWS_REGION=us-west-2 volumes: - ./config:/etc/egress/config restart: unless-stopped depends_on: - livekit-sfu
通过LiveKit Server API发起录制任务(以Go SDK为例):
goimport ( "github.com/livekit/protocol/livekit" "github.com/livekit/server-sdk-go" ) func startRecording() error { client := lksdk.NewRoomServiceClient("[***]", "API_KEY", "API_SECRET") req := &livekit.RecordingRequest{ RoomName: "my-room", Output: &livekit.RecordingOutput{ FileType: livekit.RecordingFileType_MP4, Filepath: "recordings/meeting-123.mp4", }, // 可选:配置合成布局 Layout: &livekit.VideoLayout{ Type: livekit.VideoLayout_GRID, }, } _, err := client.StartRecording(context.Background(), req) return err }
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务