Skip to content

直播录制

biliLive-tools 支持 B站、斗鱼、虎牙、抖音四大平台的直播录制,包含弹幕和礼物信息。

初始实现由 LiveAutoRecord 拓展而来

支持平台

平台弹幕画质线路Cookie流格式流编码只音频付费直播
斗鱼
B站
抖音
虎牙

功能说明

  • 弹幕:录制弹幕到XML文件
  • 画质:支持选择不同画质
  • 线路:支持选择不同CDN线路
  • 流格式:支持选择流格式(FLV/HLS等)
  • 流编码:支持选择视频编码
  • 只音频:只录制音频流

弹幕信息

  • B站:弹幕、礼物、SC、舰长
  • 斗鱼:弹幕、礼物、高能弹幕
  • 虎牙:弹幕、礼物
  • 抖音:弹幕、礼物

录制器

biliLive-tools 提供三种录制器引擎:

功能FFmpegmesio录播姬引擎
FLV 录制
HLS 录制
时长分段
只音频
容器支持多种跟随链接容器flv
FLV 修复

提示

当选择到某录制器不支持的直播流时,会自动尝试使用 FFmpeg 进行录制。

视频格式

名称备注
自动默认为ts,不存在分段是使用m4s
MKV
TS
FLV存在分辨率变化或参数变化会花屏,请尝试修复

配置选项

直播间链接

  • B站:https://live.bilibili.com/房间号
  • 斗鱼:https://www.douyu.com/房间号
  • 虎牙:https://www.huya.com/房间号
  • 抖音房间号:https://live.douyin.com/房间号
  • 抖音号:https://wwww.douyin.com/user/xxxxx

WARNING

抖音号可能会被修改,请尽量使用房间号进行添加

画质

根据平台不同,支持不同的画质选项,并非你选择什么画质就一定会得到什么画质,非原画流都是服务端二压的,刚开播时并不会存在相关的流,请和流匹配重试次数搭配使用

提示

B站登录Cookie后可以解锁更高画质。

只音频

只录制音频流,节省存储空间和带宽。

适用场景:

  • 电台直播
  • 纯音乐直播
  • 不需要视频画面的直播

时长分段

按时长自动分段,避免单个文件过大,以及缓解时间戳的偏移。

文件命名规则

自定义录制文件的命名规则,支持以下占位符:

  • {platform} - 平台名称
  • {owner} - 主播名称
  • {title} - 直播标题
  • {year} - 年份
  • {month} - 月份
  • {date} - 日期
  • {hour} - 小时
  • {min} - 分钟
  • {sec} - 秒
  • {startTime} - 分段开始时间,Date对象
  • {recordStartTime} - 录制开始时间,Date对象
  • {liveStartTime} - 直播开始时间,Date对象,抖音同录制开始时间

示例:{platform}/{owner}/{year}-{month}-{date} {hour}-{min}-{sec} {title}

高级用法

支持 ejs 模板引擎,可以实现更复杂的命名逻辑。

例如,为不同平台配置不同存储路径:

<% if (platform=='斗鱼') { %>C<% } %><% if (platform!='斗鱼') { %>D<% } %>:\录制\{platform}/{owner}/{year}-{month}-{date} {hour}-{min}-{sec} {title}

例如,将直播开始时间设置为文件夹

{platform}/{owner}/<%= recordStartTime.getFullYear() %>-<%= recordStartTime.getMonth()+1 %>-<%= recordStartTime.getDate() %>/{year}-{month}-{date} {hour}-{min}-{sec} {title}

检查间隔

设置检查直播状态的时间间隔,默认60秒。

注意

间隔过短可能导致被平台风控。建议添加大量直播间时增加间隔。

录制结束立即重试

默认策略下,如果录制被中断,那么会在下一个检查周期时重新检查直播状态并重新开始录制,这种策略的问题就是一部分时间会被漏掉。

如果开启了该选项,且录制开始时间与结束时间相差在一分钟以上(某些平台下播会扔会有重复流),那么会立即进行一次检查。

Webhook集成

录制完成后可以自动发送到Webhook进行处理。

  1. 打开"直播间配置"
  2. 启用"发送至Webhook"
  3. 在"设置" -> "Webhook"中配置处理规则

查看 Webhook文档 了解详细配置。

通知

录制开始通知选项为录制开始通知,并非直播开始通知,只是很多情况下这两者是等价的,但实际这两者并不相同,通知的设计是尽可能在录制开始时通知用户,但又不会因可能的网络问题而重复提醒,一般来说一场直播只会提醒一次。

录制结束通知选项为录制结束通知,并非直播开始通知,只是很多情况下这两者是等价的,但实际这两者并不相同,通知的设计是尽可能在录制结束时通知用户,会在一次录制结束后三分钟检查录制状态,如果为不在录制中状态,则进行通知

常见问题

录制如何转换为MP4?

  1. 单个直播间配置打开"发送至webhook"
  2. "设置" -> "Webhook" 打开webhook开关
  3. "设置" -> "Webhook" -> "转封装为mp4" 打开开关

添加大量直播间后无法录制?

可能被平台风控:

  1. 关闭软件等待风控解除
  2. 减少直播间数量
  3. 加大检查间隔
  4. 检查网络和硬盘

电台直播压制弹幕时卡顿

由于视频帧数过低,压制会观看不流畅,请手动指定帧数参数,如在"ffmpeg配置"=>"额外输出参数"中指定-r 60

分辨率变化后不会切割?

设计如此。如果播放器不支持多分辨率,请使用 VLC 播放器。

或者尝试使用 mesio 或录播姬录制器。

抖音双屏录播如何分割主画面?

假设已开启"双屏直播流选项",主画面分辨率为 1920x1080。

ffmpeg设置视频滤镜 中输入:

crop=1920:1080:0:0;$origin

这会分离出主画面,副画面同理。

UI界面中直播状态等参数未实时更新

获取此类相关数据需要从源站获取,可能带来大量的并发,数据并非实时获取,如果想要彻底关闭这种行为,可关闭“设置”-“UI界面”-“录制页面额外请求”开关。

flv格式下无法播放或只有声音无画面

尝试使用最新版 potplayer 或转换为 MP4 格式

抖音 API 接口选择

抖音提供多种API接口,可以根据情况选择:

接口类型说明
web直播间接口效果不错,支持双屏直播参数
mobile直播间接口不易风控,也许支持电台直播,对IP有要求
直播间web解析易风控,有验证码,单个接口1M流量
用户web解析不易风控,海外IP无法使用,单个接口1M流量
负载均衡使用负载均衡算法来分摊防止风控
随机从几个接口里挑一个

提示

mobile直播间接口用户web解析 只对 3.1.0 及之后添加的直播间有效。

虎牙 API 接口选择

虎牙提供多种API接口,可以根据情况选择:

接口类型说明
auto一般使用web接口,星秀区使用wup接口
web你web看到的东西,星秀区会两分钟分段
wup神奇的接口
mp小程序接口,也可以录星秀区,但画质差了点

抖音风控怎么办?

  1. 调大检查间隔
  2. 修改“并发数”为1
  3. 调大“等待时间”为1000ms
  4. 修改使用的api接口

录制页面为什么显示“检查错误”

可能的原因有两种:

  1. 你被风控了,如果其他同平台的主播也如此显示,那绝大概率就是风控了
  2. 根据你的配置要求,无法找到可用的直播流

如何实现定时录制

参考 API文档,定时调用开始和停止接口

其他录制软件推荐

名称备注协议
录播姬录制B站flv流最稳的工具GPLV3
biliup支持B站上传,弹幕MIT
DouyinLiveRecorder支持平台多,无GUIMIT
StreamCap支持平台多,有GUIApache 2.0
DanmakuRender支持B站自动上传,弹幕,无GUI开源未知
bililive-go支持平台多,有GUIGPLV3
stream-rec自实现引擎,rclone同步MIT
oneliverec支持的平台多闭源免费

相关资源

Released under the GPLv3 License.