Bilirec 配置入门:录制哔哩哔哩直播间

Bilirec 配置入门:录制哔哩哔哩直播间

Bilirec 用于录制哔哩哔哩(bilibili,B站)直播间:给程序一个 B站房间号,可以手动保存正在进行的直播,也能订阅房间,在检测到开播时自动录制。它接收的是 B站直播流,保存媒体与可选的弹幕等互动记录,文件写到运行程序的设备上。

程序可以运行在 Windows、macOS 或 Linux 上,再由浏览器中的 Web 管理界面连接后端、配置房间和查看文件。哔哩哔哩是录制对象所属的平台,操作系统是后端运行环境;本文中的"平台账号"指 B站账号,后端访问账号则用于保护自己的录制服务。排查连接问题时,先分清这几层关系。

本文围绕 v0.3.0 的二进制启动、配置来源和检查顺序展开,依据官方发行与文档材料,不提供本机运行结论。示例中的房间号只表达接口格式,实际操作应替换为自己获准保存的 B站直播间。

确定运行对象和文件类型

bilirec 的发行附件包含 Windows 可执行文件、Linux amd64/arm64、macOS amd64/arm64,以及 Android arm64-v8a/x86_64 原生动态库。它们服务于不同运行方式;Android 库不是 APK,不能与独立 bilirec-mobile 客户端混用为同一种安装资源。

Linux amd64 的官方启动写法如下。ARM64 与 macOS 对应选择另一个文件名;Windows 文档使用双击可执行文件的方式。执行权限和系统架构都要先对应,不能靠改扩展名让一个平台附件变成另一个平台程序。

bash 复制代码
chmod +x bilirec-linux-amd64
./bilirec-linux-amd64

后端默认在本机 8080 端口提供服务。浏览器连接使用 http://localhost:8080 时,localhost 指浏览器所在设备。后端在远程机器上而浏览器仍填本机地址,会先出现连接问题,不应直接重装程序或更换画质配置。

管理前端入口是 https://app.bilirec.org/,在登录页填写后端地址。前端负责管理已有后端,访问页面不会在设备上自动安装或启动录制服务。HTTPS 页面连接远程后端须考虑 HTTPS;本机 HTTP 与远程 HTTP 的连接条件不同,不要把本机成功当成远程部署已经打通。

界面图用于辅助辨认选项;文档未标明截图版本,本文未进行本机运行测试。

图:填写后端地址和访问账号。

先查配置覆盖,再查变量本身

二进制加载配置涉及三层:当前工作目录的 .env.local、可执行文件目录的 .env,以及覆盖文件值的环境变量。首次运行会生成 .env。Docker 则仅用环境变量,不按二进制方式读取这些文件。

这意味着"修改了文件"与"运行进程采用了这个值"不是同一件事。排查时记录启动目录、修改的是哪个文件、是否还有同名环境变量。若从另一个目录启动程序,也应重新确认工作目录文件的影响。

v0.3.0 移除了部分旧别名。旧配置中的 CONVERT_FLV_TO_MP4 应改用 CONVERT_TO_MP4,DELETE_FLV_AFTER_CONVERT 对应 DELETE_SOURCE_AFTER_CONVERT,BACKEND_HOST 对应 PUBLIC_BASE_URL。检查迁移时应搜索旧名称,而不是只核对新的默认配置。

用户名密码保护后端访问;B 站登录则影响平台账号状态。前者通过 USERNAME 与 PASSWORD 配置,后者可采用 Controller、启动扫码或匿名模式。服务验证与平台登录各检查一次,才有条件继续判断直播流取得是否正常。

用一个任务验证接收与保存

图:录制与回放流程示意。

连接管理界面后,输入 B站直播间房间号,在确认页选择画质、流格式、音频、弹幕和录制时长。先创建一个有明确停止点的任务,有助于同时检查录制开始与结束后的文件处理。

API 也提供启动和停止接口。官方快速开始给出的基础形式是:

bash 复制代码
curl -X POST "http://127.0.0.1:8080/record/12345/start"
curl -X POST "http://127.0.0.1:8080/record/12345/stop"

这两条命令展示的是接口顺序,执行前应换成实际房间号,并满足自己的服务认证设置。界面和 API 都能管理任务,但接口返回与最终媒体可播放之间仍有保存和处理环节,需要继续检查文件结果。

建议把验收顺序写成:任务开始后查看状态;停止后查看媒体文件;打开回放确认音视频;若开启互动记录,再看对应弹幕文件和回放效果。这样能分开"任务创建失败""媒体未保存""播放不支持"和"互动记录没有开启"等不同问题。

画质属于请求选择,不代表直播端一定提供对应档位。流格式设置则决定允许尝试的范围。首次验证不要同时堆叠高画质、多路录制与转换,先拿到一份能解释来源的输出,再逐项改变条件。

图:确认这一场的时长、画质、格式和互动记录。

区分重连、分段和转换

v0.3.0 新增拉流空闲超时,STREAM_IDLE_TIMEOUT 默认二十秒,设为零可以关闭。长时间没有新数据时会断线重连。它处理的是连接卡住的情况,不能修复上游已经没能接收到的全部内容。

FLV 时间戳修复、断流重连及自动分段也是项目的既有能力。不同流格式的轮转行为不完全相同;出现多段文件时先对照直播变化与连接日志,确认每段的时间和播放情况。不能仅凭"文件有好几个"就把它当成异常重复下载。

转换需要独立准备依赖。使用本地方式要有 FFmpeg,云端方式使用 CloudConvert。v0.3.0 中,开启 CONVERT_TO_MP4 后,仅音频录像会转换为 m4a,视频转换为 mp4。录制成功但转换未完成时,应把原始媒体与转换任务分开排查。

Webhook 默认不发送,填写 WEBHOOK_URLS 后才启用。该版兼容录播姬 v2 事件,失败最多重试三次。若开启内置转换,FileClosed 等转换成功后才针对成品发出;对接 biliLive-tools 时官方要求保持 CONVERT_TO_MP4=false。这关系到处理流程的归属,不能两边都配置后又以"收到事件"判断最终文件已完成。

为持续录制安排存储策略

订阅房间后分别配置自动录制和通知。手动开录与房间自动开录的时长设置有区别,应检查当前任务使用的参数来源。先用一个房间验证自动行为,再增加房间数量,能减少配置和资源同时变化造成的混淆。

空间不足删旧录像是 v0.3.0 的可选能力,默认关闭。开启后会处理该房间最旧媒体及同名弹幕;它不会跨房间替你均匀清理空间,删完仍不足也不会继续开录。若要保留重要录像,备份和筛选应先于启用轮换。

Docker 用户应持久化记录、秘密信息与数据库三个目录,不能只挂录像目录就以为全部运行状态都已保留。官方示例使用 latest,但 latest 会随发布变化;固定版本教程不应把它直接标为 v0.3.0 的镜像证据。

文件页的 only_media 过滤只显示音视频及目录,能减少互动记录对浏览的干扰,但不会让那些文件消失。排查"列表里看不到弹幕文件"时,先看筛选状态,再检查实际对应记录;不要把媒体筛选结果误当成完整文件清单。备份和移动也应包括需要保留的互动文件。

最后再考虑并发。官方树莓派测试有明确的设备、容器限额和画质条件,不能据此承诺任意旧设备可录多少路。实际规划需要分别观察接收直播、磁盘写入与媒体转换的负担,按任务增加范围。

GitHub 仓库:https://github.com/bilirec/bilirec

下载与获取

相关推荐
znnnk2 天前
【网络优化】减少B站直播卡顿的上行占用:AdGuard nowebrtc规则 / WebRTC Control 实测
服务器·网络·webrtc·直播·bilibili·adguard
贾伟康1 个月前
【HarmonyOS 7新能力|041】弱网直播优化工程封装:把接入逻辑放进可维护的分层结构
性能优化·harmonyos·arkts·音视频开发·直播
Python自动化直播1 个月前
用 Python 爬虫给 AI 直播间做数据反馈机制
人工智能·python·ai·直播
程序员老赵1 个月前
Docker 部署 go2rtc:轻松搭建摄像头多协议流媒体平台
前端·docker·直播
PcVue China1 个月前
智控能耗,数驱能效 | PcVue线上研讨会进行中!
大数据·人工智能·能源·制造·直播·scada·pcvue17
AI直播技术杂谈2 个月前
周六机房压测,发现一个智能KT板渲染卡顿的根因
直播
音视频牛哥2 个月前
从移动终端到行业视频前端:SmartGBD 如何让 Android 与 HarmonyOS NEXT 接入 GB28181
音视频开发·视频编码·直播
一个灰2 个月前
从推流到运营:Monibuca V6 直播系统与后台管理一站式解析
rust·直播·streaming
EasyDSS2 个月前
企业培训视频散落各处?EasyDSS视频直播点播平台模块如何让知识资产“活“起来
音视频·媒体·直播·点播·easydss