一个面向 Linux 服务器的 B 站直播录制工具,主打长期后台运行和尽量少人工介入。
适合作为 Docker 常驻服务使用,支持开播检测、自动录制、断线恢复、录后转码和基础磁盘清理。
- 自动轮询直播状态,开播后开始录制
- 录制中断后自动重试,分段文件可自动合并
- 录后自动转码,优先 NVENC,不可用时回退 CPU
- 周期写入
status.json,配合 Docker healthcheck 做存活检测 - 支持运行中修改
config.ini,无需重启即可切换RoomId - 支持按磁盘剩余空间、文件数量、保留天数做基础清理
- Python 3.10
bilibili-api-python- FFmpeg / FFprobe
- Docker Compose
- Optional NVIDIA NVENC
- 准备配置文件
cp config.example.ini config.ini-
编辑
config.ini,至少填写真实的RoomId -
启动服务
./scripts/up.sh查看状态:
./scripts/up.sh ps
docker compose logs -f bili-recorder停止服务:
./scripts/up.sh down./scripts/up.sh 会自动探测宿主机 GPU。可用时叠加 docker-compose.gpu.yml,不可用时自动回退 CPU 模式。
配置文件示例见 config.example.ini。
RoomId: 要监听的直播间号CheckInterval: 轮询间隔,单位秒SaveDir: 录制输出目录MinFreeSpaceGB: 最低剩余磁盘阈值,小于该值时跳过新录制
Format: 原始录制格式,支持flv/mp4/mkvVideoEncoder/AudioEncoder: 原始录制阶段的编码方式StallTimeoutSeconds: 文件长时间不增长时判定为卡死MaxRecoverRetries: 录制异常后的自动恢复次数
TranscodeEnabled: 是否启用录后转码AutoPreferNvenc: 自动优先 NVENCVideoEncoder/FallbackVideoEncoder: CPU 转码主编码器与回退编码器OutputFormat: 转码输出格式KeepSource: 转码成功后是否保留源文件
CleanupEnabled: 是否启用清理KeepDays: 保留天数KeepCount: 保留文件数CleanupExtensions: 参与清理的扩展名
# 启动或更新
./scripts/up.sh
# 查看容器状态
./scripts/up.sh ps
# 实时日志
docker compose logs -f bili-recorder
# 查看健康检查
docker inspect --format='{{json .State.Health}}' bili-recorder运行中切换直播间:
sed -i 's/^RoomId = .*/RoomId = 123456/' config.iniMIT