LumeRecorder
用你自己的服务器录制直播电视
LumeRecorder 是一款小巧、免费且开源的 DVR 服务器,运行在你家里。Lume 告诉它录什么,它便独立完成录制,即使所有 Apple 设备都处于睡眠状态也不受影响。录制内容可在你所有设备上的 Lume 中播放,正在录制的节目也能边录边看。
录制功能属于 Lume Pro。服务器本身免费。
你需要准备
一台常开的机器
NAS、迷你主机、家庭服务器、64 位 Raspberry Pi,或一台保持唤醒的 Mac。Docker 镜像支持 Intel/AMD 和 ARM。
Docker
Docker 或 Docker Desktop;搭载 Apple 芯片的 Mac 也可使用 Apple 的 container 工具。大多数 NAS 都内置了 Docker。
磁盘空间
视频流按原样保存,不重新编码。一个高清频道通常每小时占用几 GB。
同一网络
服务器和你的 Apple 设备应位于同一家庭网络中,以便 Lume 找到服务器并播放录制内容。
第 1 步
启动服务器
选择你运行容器的方式。无论哪种方式,录制内容和设置都保存在旁边的数据文件夹中,更新后依然保留。
将以下内容保存为新文件夹中的
docker-compose.yml,然后在该文件夹中启动。使用主机网络,Lume 即可自动发现服务器。services: lume-recorder: image: ghcr.io/bilipp/lumerecorder:latest container_name: lume-recorder restart: unless-stopped network_mode: host volumes: - ./data:/datadocker compose up -d在 Synology、QNAP、Unraid 或 TrueNAS 上,你可以把同一个文件粘贴到系统的 Docker 或 Container Manager 中,作为新项目创建。
在装有 Docker Desktop 的 Mac 或 Windows 电脑上,请发布端口而非使用主机网络。将以下内容保存为
docker-compose.yml并启动。services: lume-recorder: image: ghcr.io/bilipp/lumerecorder:latest container_name: lume-recorder restart: unless-stopped ports: - "8090:8090" volumes: - ./data:/data environment: BONJOUR: "0"docker compose up -dDocker Desktop 无法在网络中广播服务器,因此需要在 Lume 中手动输入地址。请确保 Docker Desktop 在登录时自动启动。
在搭载 Apple 芯片的 Mac 上,你可以用 Apple 的
container工具代替 Docker。container system start mkdir -p ~/LumeRecorder-data container run -d --name lume-recorder \ -p 0.0.0.0:8090:8090 \ -v ~/LumeRecorder-data:/data \ -e BONJOUR=0 ghcr.io/bilipp/lumerecorder:latest容器运行在轻量级虚拟机中,因此需要在 Lume 中手动输入 Mac 的地址。有预约录制时,请勿让 Mac 进入睡眠。
想不用容器直接运行?需要 Swift 6 和 ffmpeg,请参阅从源代码构建。
第 2 步
获取配对码
服务器启动时会在日志中输出一个 6 位配对码,之后每 10 分钟生成一个新的。你可以随时用以下命令查看当前配对码:
docker exec lume-recorder lume-recorder pair使用 Apple 的工具时,请改为运行
container exec lume-recorder lume-recorder pair。在 NAS 上,配对码也会显示在容器的日志界面中。第 3 步
配对 Lume
- 在 Lume 中打开 设置 › 直播电视 › 录制服务器。
- 阅读 配对前须知,然后轻点 我知道了。
- 在 此网络上的服务器 中选择你的服务器。如果没有列出,请轻点 手动输入地址,输入服务器的 IP 地址(例如
192.168.1.20),然后轻点 连接。如未指定端口,Lume 将使用 8090。 - 输入服务器上的 配对码,然后轻点 配对。
只需配对一次:配对信息会通过 iCloud 同步到你的其他 Apple 设备。
第 4 步
开始录制
- 立即录制: 在频道菜单或播放器中选择 录制。
- 稍后录制: 在 指南 中打开节目,选择 预约录制。
- 观看: 从直播电视工具栏或 设置 › 直播电视 打开 录制内容。在 Apple TV 上,你还可以让它显示在直播电视侧边栏中。
设置项
在 docker-compose.yml 中以 environment 条目修改(使用 Apple 的工具时为 -e NAME=value)。
| 变量 | 默认值 | 作用 |
|---|---|---|
SERVER_NAME | 主机名 | Lume 中显示的服务器名称。 |
PORT | 8090 | 服务器监听的端口。 |
MAX_CONCURRENT | 4 | 可同时进行的录制数量。每个录制占用一个与服务商的连接。 |
MIN_FREE_GB | 2 | 可用空间低于此 GB 数时,录制不会开始。 |
BONJOUR | 1 | 设为 0 可关闭自动发现,适用于自动发现无法工作的环境。 |
TZ | UTC | 日志时间戳的时区,例如 Asia/Shanghai。 |
修改后请再次运行 docker compose up -d。
故障排除
Lume 找不到服务器
请确认 Lume 可以使用本地网络(iPhone 和 iPad:设置 › 隐私与安全性 › 本地网络)。自动发现仅在 Linux 的主机网络下有效。使用 Docker Desktop、Apple 的工具、桥接网络或不同 VLAN 时,请轻点 手动输入地址 并输入该机器的 IP 地址。
我的 NAS 已经运行了自己的 Bonjour 服务
同一台机器上的两个发现服务会互相干扰。请将 BONJOUR 设为 0,并通过地址添加服务器。LumeRecorder 的 README 介绍了如何改用 NAS 自带的服务进行广播。
配对码被拒绝
配对码每 10 分钟更换一次,请获取当前的配对码。连续输错五次后,配对将锁定一分钟。
观看时录制失败
服务器会单独与你的服务商建立连接。如果你的套餐只允许同时一个连接,边看边录可能会失败。请向服务商提高连接上限,或避免两者重叠。
录制因空间不足或录制数量过多而失败
释放磁盘空间或降低 MIN_FREE_GB;如果服务商允许更多连接,可提高 MAX_CONCURRENT。
服务器重启后会怎样?
正在进行的录制会在服务器恢复后继续,中间会有短暂空缺。服务器关闭期间已过时间的预约录制会被标记为失败。
更新
在 docker-compose.yml 所在的文件夹中拉取新镜像并重启。录制内容和配对信息都保留在数据文件夹中。
docker compose pull && docker compose up -d所有选项、HTTP API 和源代码都在GitHub 上的 LumeRecorder 仓库中。
← 返回 Lume