前言
我以前保存直播,最容易翻车的不是不会录,而是总得记着“什么时候开播”。人只要离开电脑一会儿,开头可能就错过;直播时间一长,又得让电脑一直开着,录屏软件还不能中途退出。真正开始同时关注几个直播间以后,这种手动方式就更麻烦了:不同平台轮流开播,谁先开始、谁先结束,全靠自己盯着。对我来说,直播录制这件事如果还需要一直守着,就很难算真正省事。而且只要录制任务开始常驻,硬盘空间和远程管理安全就必须一起考虑,不能只看“有没有录下来”。
这次我把 Bililive-go 放到飞牛 NAS 里长期运行,让它持续监控直播间状态,检测到开播后自动开始录制,下播后自动停止并把文件留在 NAS 指定目录。实际流程里不仅添加了多个直播间,还能直接查看录像文件;其中一场接近 4 小时,最终生成了超过 20GB 的视频,也让我第一次直观看到“自动录制省心”和“长期录像很吃硬盘”是同一件事的两面。最后再用 cpolar 把 Web 管理页面提供到公网,固定二级子域名并加上 HTTP Auth,人在外面也能查看状态、临时加直播间,但不会把公网入口和录制本身混在一起。

1. Bililive-go 真正省掉的是“守着开播”
Bililive-go 是一个使用 Go 开发的开源直播录制工具。
项目地址:
https://github.com/bililive-go/bililive-go/
它虽然名字里带有 “Bili”,但并不只面向哔哩哔哩,功能说明里还提到了抖音、虎牙等平台;具体兼容范围仍然要以对应平台和项目支持情况为准。
它的工作方式和普通录屏不太一样。
添加直播间地址以后,程序会持续检查直播状态:
未开播 → 后台等待 → 检测到开播 → 自动录制 → 下播 → 自动停止并保存。

这也是我最看重它的地方。
不用提前打开直播页面,也不用把电脑桌面一直留给录屏软件。对于同时关注多个直播间的人来说,真正省下来的不是点一下“开始录制”,而是不用一直记着谁什么时候开播。
2. 这次部署环境:RK3566 + ARM 飞牛 NAS
这次使用的是飞牛 NAS,通过 Docker 部署 Bililive-go。
设备是 RK3566 小主机,刷入 ARM 版飞牛系统,内存约 4GB,内置 eMMC 约 8GB。
虽然 eMMC 空间不大,但设备可以接 SATA 硬盘,把真正占空间的录像留给大容量硬盘。
Bililive-go 的 Docker 镜像提供 linux/arm64 架构版本,所以这套环境可以继续使用。
如果还需要先完成 RK3566 安装 ARM 飞牛 NAS,原步骤保留了这篇教程:
https://www.cpolar.com/blog/tutorial-on-installing-arm-version-of-feibo-nas-system-on-rk3566-device-even-beginners-can-easily-complete-it

准备好飞牛 NAS、Docker 和录像目录以后,再进入真正的部署。
3. 在飞牛 Docker 中下载 Bililive-go 镜像
先打开飞牛 NAS 首页,进入 Docker。
确认 Docker 服务已经开启。
然后进入:
镜像仓库
搜索:
Bililive-go
选择:
chigusa/bililive-go
镜像标签保持:
latest
并下载。

下载完成以后切到:
本地镜像
点击启动。

4. 创建容器:先把自动启动、端口和录像目录配好
进入容器创建页面以后,先勾选:
开机自动启动

这一步我会保留。
因为自动录直播最怕的就是 NAS 重启以后容器没跟着起来,结果人在外面还以为它一直在后台监控。
端口设置里:
- 左侧是飞牛 NAS 本地端口;
- 右侧是容器内部端口;
- 容器端口保持
8080。
如果宿主机的 8080 已经被占用,左侧可以改成:
80818082- 或其他空闲端口。
接着配置存储目录。
在【存储位置】里选择或创建录像目录,容器路径保持:
/srv/bililive
权限保持:
读写

继续下一步。

最后勾选:
创建后启动
并创建容器。

到这里,真正需要记住的是两件事:
Web 端口决定后面怎么打开管理页面,/srv/bililive 决定录像最终写到哪里。
5. 先确认 Bililive-go Web 页面能打开
容器启动以后,进入左侧:
容器
找到:
bililive-go
把鼠标移到访问链接图标上,再点击对应本地端口。

浏览器能正常打开 Bililive-go 页面。

到这里,我只会判断:
容器已经启动,Web 管理页面能访问。
真正的自动录制还要等直播间加进去以后再验证。
6. 添加第一个直播间
进入:
监控列表
点击:
添加房间
把需要录制的直播间地址,也就是浏览器地址栏里的链接,填进去。
然后点击:
ok

添加成功以后,列表会显示:
- 主播名称;
- 直播间名称;
- 所属平台;
- 当前运行状态。

这时候 Bililive-go 才真正开始“盯”这个直播间。
7. 录下来的文件可以直接在页面里查看
点击:
文件
进入详情页面。

这里能看到录制文件名称和大小。
点击文件以后,还可以直接播放。

这一点我很喜欢。
录制软件最怕只管“录”,但后面找文件又得重新钻目录。现在监控状态和录像文件至少可以在同一个 Web 页面里继续查看。
8. 多个直播间一起监控,才是自动录制真正省事的地方
Bililive-go 不只能加一个直播间。
可以继续添加多个录制任务,而且这些直播间不需要来自同一个平台。

每个任务都会分别检测开播状态。
这样真正省掉的就是:
不用自己开多个网页,也不用分别等着每个主播开播。
因为前面已经把:
/srv/bililive
映射到了 NAS 的录像目录,所以保存下来的文件也能直接从飞牛文件管理器查看。

这一层形成的是:
直播间监控 → 自动录制 → NAS 本地文件。
9. 开播自动录、下播自动停,到底有没有真的发生?
直播间没有开播时,Bililive-go 会继续后台监控。
检测到开播以后,任务状态会自动切换到录制中。

这次还保留了一段之前真正录下来的结果。
一场直播接近:
4 个小时
最终文件超过:
20GB

从开播、持续录制到下播保存,整个过程由 Bililive-go 自动完成。
这一段对我来说比“支持自动录制”几个字更重要,因为它同时说明了两件事:
第一,自动启停确实跑起来了。
第二,直播录像真的很吃存储。
如果画质高、时间长,再同时录多个直播间,硬盘增长会非常快。
所以如果准备长期使用,我会优先把录像目录放在大容量硬盘里,并定期整理不再需要的文件。
10. 自动录制已经在 NAS 后台跑了,为什么还要公网访问?
Bililive-go 部署在 NAS 上以后,人离开家并不会让录制任务停止。
真正的问题是:
人在外面时,如果临时想:
- 添加一个新的直播间;
- 看当前是不是正在录;
- 确认某场直播有没有保存下来;
- 打开录像文件管理页面;
局域网地址就无法直接使用。
这里再加入 cpolar。
cpolar 在这套方案里只负责:
把 Bililive-go 的 Web 管理页面提供到公网。
录制检测、直播流获取、录像开始与停止、文件保存,仍然是 Bililive-go 自己负责。
11. 在飞牛 NAS 上安装 cpolar
先进入飞牛 NAS:
系统设置 → SSH
启用 SSH。
Windows 电脑按:
Win + X
打开管理员终端 / PowerShell。
连接飞牛 NAS:
ssh [email protected]
然后切换到 root:
sudo -i
安装 cpolar:
sudo curl https://get.cpolar.sh | sh
安装完成以后查看服务状态:
sudo systemctl status cpolar
如果看到:
active (running)
说明服务已经启动。
接着浏览器访问:
http://192.168.50.212:9200
进入 cpolar Web UI。
12. 先给 Bililive-go 创建随机公网入口
进入:
隧道管理 → 隧道列表
默认页面里会看到:
ssh→22/ TCPwebsite→8080/ HTTP
这里编辑 website,也可以新建一条。
这次配置为:
- 协议:
http - 本地地址:
8080 - 地区:
China VIP

这里需要留意前面的端口设置。
如果创建 Bililive-go 容器时因为冲突,把飞牛 NAS 本地端口改成了 8081 或 8082,那公网隧道也应该跟着指向实际使用的宿主机端口;这套演示后面继续使用的是 8080。
更新以后进入:
状态 → 在线隧道列表
可以看到同一隧道生成 HTTP 和 HTTPS 公网地址。

这里用 HTTPS 测试。

Bililive-go 管理页面可以正常打开。
这一层真正验证的是:
Bililive-go Web → 飞牛 NAS 本地端口 → cpolar → 外部浏览器。
13. 长期管理再配置固定二级子域名
随机地址适合先把公网链路跑通。
如果以后经常在外面打开 Bililive-go,我更希望访问入口固定下来。
进入 cpolar 预留页面:
https://dashboard.cpolar.com/reserved
选择:
保留二级子域名
按照下面信息填写:
这里填写:
- 地区:和前面隧道保持一致;
- 名称:例如
bililive; - 描述:方便自己辨识即可。
二级子域名具有唯一性,以账号实际保留成功的名称为准。
保留以后,回到:
隧道管理 → 隧道列表
编辑:
bililive
隧道。

把域名类型修改成:
二级子域名
再填入前面保留成功的名称。

更新以后进入在线隧道列表。

此时 bililive 隧道已经变成固定公网地址。
复制地址继续访问。

管理页面可以正常打开。
到这里,远程入口已经不需要每次重新找随机地址。
14. 公网入口固定以后,再补 HTTP Auth
Bililive-go 的 Web 页面不是单纯的展示页。
它可以:
- 添加直播间;
- 查看当前录制状态;
- 管理录像文件。
所以一旦长期放到公网,我不会只满足于“地址固定”。
还要考虑:
拿到地址的人是不是都能直接打开?
这里继续给 cpolar 隧道加 HTTP Auth。
进入:
隧道管理 → 隧道列表
找到:
bililive
并编辑。

展开:
高级 → HTTP Auth
按下面格式填写:
用户名:密码
这里要分清楚:
HTTP Auth 是 cpolar 公网隧道的访问认证,不是 Bililive-go 自己的用户系统。
账号和密码最好单独设置,并优先使用 HTTPS 地址。
配置完成以后更新。

重新打开 Bililive-go HTTPS 公网地址。
浏览器会先弹出身份验证窗口。

通过验证以后,才继续进入管理页面。
这样远程访问至少多了一层基础保护。
总结
Bililive-go 真正让我觉得省事的地方,不是“能录直播”,而是把最容易忘掉的两个动作自动化了:
开播自动开始,下播自动停止。
这次真正跑通的链路是:
RK3566 → ARM 飞牛 NAS → Docker → chigusa/bililive-go:latest → 容器 8080 → /srv/bililive → 添加直播间 → 多任务监控 → 自动开始 / 自动停止 → NAS 保存录像 → 近 4 小时 / 20GB+ 实际录像 → cpolar → 随机公网 → 固定二级子域名 bililive → HTTP Auth。
几个边界也需要一直分清:
- Bililive-go 负责直播状态检测、自动录制和文件保存;
- 这次部署使用 ARM64 飞牛 NAS,设备约 4GB 内存、8GB eMMC,并通过 SATA 硬盘承担录像存储;
- 容器内部端口保持
8080,宿主机端口如果改成8081、8082,公网映射也要对应实际端口; - 实际录制接近 4 小时就生成了超过 20GB 文件,长期多任务录制时存储容量必须提前考虑;
- cpolar 只负责 Bililive-go Web 管理页面的公网入口,不参与直播录制;
- 固定二级子域名解决的是长期访问地址变化问题;
- HTTP Auth 是公网入口保护,不等于 Bililive-go 自身增加了用户系统。
我喜欢这种部署的原因很简单:真正需要长期运行的任务交给 NAS,自己只在需要的时候打开管理页面。它不会让我少看直播,但至少不用为了“怕错过开头”一直守着直播间。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/user340/article/details/166346897















