news 2026/10/24 5:25:25

LiveAutoRecord 跨平台直播录制完整教程:从安装到多频道自动录制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LiveAutoRecord 跨平台直播录制完整教程:从安装到多频道自动录制

LiveAutoRecord 跨平台直播录制完整教程:从安装到多频道自动录制

【免费下载链接】LiveAutoRecord基于 Electron 的多平台直播自动录制软件项目地址: https://gitcode.com/GitHub_Trending/li/LiveAutoRecord

LiveAutoRecord 是一款开源的跨平台直播自动录制工具,支持 B站、斗鱼、虎牙、抖音四大直播平台的直播与弹幕录制。如果你需要让某个主播一开播就自动录像,又不想自己守着电脑,这个基于 Electron 的桌面客户端(也支持服务端部署和 NPM 包集成)就是为此设计的。

LiveAutoRecord 能做什么

先说清楚它的边界,避免预期错位:

  • 自动轮询开播:内置检查循环会按固定间隔查询每个频道的直播状态,检测到开播立即拉起 FFmpeg 开始录制,下播自动停止,全程不需要人盯
  • 多频道并行录制:添加多少个直播间就监控多少个,每个频道独立调度,互不干扰
  • 视频 + 弹幕双份产出:除了录屏,还会把弹幕、礼物消息落盘为 JSON 元数据文件,可开启"录制结束自动生成 SRT 字幕"
  • 三种接入形态:Electron 桌面客户端(Windows / macOS,Linux 理论上可用)、HTTP 服务端 + Web 前端(适合服务器 7×24 挂机)、NPM 包(@autorecord/manager+ 各平台插件,嵌进你自己的项目)
  • 默认产出 fMP4 格式:分片式 MP4,录制中途异常退出时已写入的部分仍可播放

它不是剪辑软件,也不负责分发,核心职责就是把直播流稳定地存成文件。

值得上手的几个理由

  1. 加频道只需要贴 URL。把直播间链接粘进添加界面,程序自动识别平台、解析房间号和主播名,不用手填房间号
  2. 录制是"无人值守"级别的。开播检测、断流恢复、磁盘清理都有默认策略,加完频道可以放着不管
  3. 弹幕不丢。多数工具只关心视频,LiveAutoRecord 同步收集弹幕/礼物并写入元数据文件,后期做字幕或回看素材都方便
  4. 对二次开发友好。调度引擎、平台插件、CLI、Web 前端彼此解耦,想自己做一个定制录制工具,直接复用核心包即可

LiveAutoRecord 安装与上手流程

前置依赖:Node.js 18+、pnpm 10、FFmpeg(客户端内置 FFmpeg 二进制,服务端/CLI 需系统 PATH 可用)。

源码安装与构建

git clone https://gitcode.com/GitHub_Trending/li/LiveAutoRecord cd LiveAutoRecord pnpm install pnpm build # 构建全部包 pnpm app:build # 打包 Electron 客户端(.exe / .dmg)

开发调试可用pnpm app:dev直接启动客户端。

服务端部署

如果机器常年开着,服务端部署更合适:

pnpm -F @autorecord/http-server start # 启动录制服务 pnpm -F @autorerecord/web preview # 启动 Web 管理界面(生产环境可用 nginx 托管 build 产物)

⚠️ 桌面客户端、服务端、CLI 三种形态共享同一份本地数据目录,同一时间只能跑一个实例,否则会出现数据库写入冲突。

添加第一个录制任务并等待开播

  1. 打开客户端,进入"录播任务"页,点击新增
  2. 粘贴直播间 URL(如https://live.bilibili.com/xxxx),补充备注
  3. 选择画质档位,保存
  4. 程序开始按间隔轮询,主播开播的那一刻自动开录,无需任何操作

不想用图形界面也可以直接用 CLI:lar add <url>添加频道,lar watch进入守护模式持续监控,所有命令都支持--json输出便于脚本和 AI Agent 消费,详见 CLI 使用指南。

功能一览

频道管理与任务状态

主界面以卡片形式列出所有录制任务:平台、房间号、备注、当前状态(空闲/录制中)一目了然,支持手动触发检查和立即开始/停止录制。

录制历史与文件管理

"录播历史"页汇总每一次录制的起止时间、时长、保存路径,支持直接播放、打开所在目录、生成 SRT。文件按存储路径模板分类归档,找哪一期直播不用翻目录。

内置播放播放器

历史列表里点播放即可调起内置播放器(基于 DPlayer),检查录制质量、回看片段不用切换第三方软件,支持网页全屏。

弹幕收集与 SRT 生成

录制过程中弹幕、礼物消息会被写入与视频同名的 JSON 文件;开启全局设置中的"录制停止时自动生成 SRT"后,服务端会用该元数据生成一份可直接挂到播放器上的.srt字幕。

支持的直播平台与插件扩展机制

平台插件包Provider ID
B站直播@autorecord/bilibili-recorderBilibili
斗鱼直播@autorecord/douyu-recorderDouYu
虎牙直播@autorecord/huya-recorderHuYa
抖音直播@autorecord/douyin-recorderDouYin

每个平台是一个独立的 npm 包,实现统一的RecorderProvider接口,核心就五个方法:

  • matchURL:用域名正则判断 URL 是否属于该平台
  • resolveChannelInfoFromURL:调平台 API 解析出房间号、标题、主播名
  • createRecorder/fromJSON:创建录制器实例与从持久化数据还原
  • setFFMPEGOutputArgs:接收 manager 下发的 FFmpeg 输出参数

需要登录才能拿高清流的平台(如 B站的 Cookie)通过可选的鉴权字段接入。想自己加一个平台,完整的接口定义、包模板和逐方法示例在 插件开发文档,参考实现可以看 B站录制器源码 或 斗鱼录制器源码。

实用技巧:存储路径、画质断流与磁盘清理

自定义存储路径模板

全局设置里可以改写savePathRule,支持的变量包括平台名、房间号(channelId)、主播名(owner)、直播标题(title)以及日期时间字段。默认按"平台/日期/时间+标题"分层存放,如果你习惯按主播归档,把它改成以owner开头的结构即可,界面右侧有字段说明提示。

画质档位与流源选择

画质分五档:lowest/low/medium/high/highest,插件会按档位映射到各平台实际提供的流。若平台同时有多种封装(flv / hls)和多个 CDN 源,还能通过streamPriorities、sourcePriorities指定偏好,比如优先走延迟更低的 flv,或锁定某个更稳定的源。

断流与坏文件的处理逻辑

录制过程中有两道守护:FFmpeg 日志里帧数连续停滞或超过 10 秒无任何输出都会被判为流中断并触发停止;停止时发送 SIGINT 让 FFmpeg 正常收尾,同时关闭弹幕连接、刷写元数据。默认 fMP4 分片输出(-movflags frag_keyframe)意味着即使中途崩溃,前面已经写入的片段通常也能播放。个别播放器对 fMP4 兼容性不好时,可在设置中更换输出格式。

磁盘空间建议

开启"自动删除过小文件"选项,可以让失败/空跑产生的几 KB 残片自动清理,避免历史列表里积累垃圾。长时间挂机录制仍建议配合系统级磁盘监控,毕竟录制文件本身不小。

常见问题速答

  • B站想录原画/高画质:需要配置平台 Cookie 鉴权,客户端里有对应的登录流程入口
  • 可以同时开客户端和服务端吗:不行,两者共享同一数据目录,一次只跑一个实例
  • Linux 能装桌面版吗:官方未提供 Linux 构建,Linux 用户建议走服务端部署

技术实现简述(面向进阶读者)

整个仓库是 pnpm Workspaces + Turborepo 的 monorepo,11 个包分成两层:apps/(electron、http-server、web、cli)和packages/(manager、shared、core 与四个平台插件)。依赖方向很干净:平台插件 → manager → shared,上层应用再组合它们。

  • 调度:@autorecord/manager里的 RecorderManager 维护检查循环(默认 3 并发),每个 Recorder 走idle → recording → stopping-record → idle状态机,属性变更通过 Proxy 拦截触发Updated事件,上层靠RecordStart/RecordStop等事件驱动 UI 和通知
  • 录制:fluent-ffmpeg 构建录制命令,按"画质 → 流优先级 → 源优先级"选流,详见 架构文档
  • 存储:配置与录制记录用 lowdb(JSON 文件)持久化,路径由env-paths('live-auto-record')决定(如~/.config/live-auto-record/),每次录制另有独立 JSON 元数据文件
  • 前端:Vue 3 + Vuetify + Pinia,通过 SSE 接收实时录制事件;服务端为 Express REST + SSE
  • 发布:@changesets/cli管版本,npm 包与 Electron 客户端各自走 CI 流水线

它适合谁

LiveAutoRecord 比较适合这几类人:

  • 追播固定的几位主播,不想每次手动开录、又怕下播丢片尾的用户
  • 需要长期离线存档的开发者,想把它部署到家里 NAS 或云服务器上 7×24 挂机
  • 要批量处理直播素材的团队,依赖"视频 + 弹幕 JSON + SRT"的产出格式做后期
  • 想基于现成引擎做产品的开发者,直接复用@autorecord/manager与平台插件,省掉逆向各平台直播协议的工作

如果你的需求就是"主播开播就自动录、录完还能看弹幕",装好客户端、贴个直播间链接,剩下的交给它就行。

【免费下载链接】LiveAutoRecord基于 Electron 的多平台直播自动录制软件项目地址: https://gitcode.com/GitHub_Trending/li/LiveAutoRecord

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/24 5:24:43

金蚕蛊留在业务系统里的伤口,ABAP 如何识别持续消耗型故障

一张销售订单今天保存成功,明天运行的交货作业却把它挑了出来,报一次错。作业次日照常执行,同一张订单又报一次错。过了几天,业务人员看到的仍然只是订单暂时无法交货,技术团队看到的却是不断累积的失败记录、重复调用和人工处理时间。这种故障很适合借《仙剑奇侠传 1》里…

作者头像 李华
网站建设 2026/10/24 5:24:42

什么是GEO?别再把它当成SEO的升级版了

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 5:23:45

【FDE系列】阶段2:Day 39:Linux 综合实战 — 让服务无人值守

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 5:23:45

【FDE系列】阶段2:Day 37:权限、进程与文本三剑客

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 5:18:43

硬盘分区与文件系统全解析:从MBR到LVM

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华