BBDown v1.6.13
修复与安全性加固
- 直播录制加载登录凭据,自动录制账号可看最高画质:
live命令此前不加载凭据,getRoomPlayInfo对未登录请求只返回游客画质(最高 720P);现在录制前统一走InitializeRequestSessionAsync(--cookie显式传入优先,否则读取本地BBDown.data),并新增--cookie/--access-token选项;画质请求从qn=10000提升为qn=30000(按账号权限回落,接口只列 ts/fmp4 时自动回退qn=10000再取一次),启动时打印实际解析到的画质;登录检测超时自动安全降级,防止离线启动时异常崩溃。 - Ctrl+C 停止保留已录制内容:取消发生在分段读取中时,已写字节此前会随"无数据"分支整段丢弃(录制几分钟后 Ctrl+C 会丢掉全部内容);现在读/写阶段被取消都照常返回已写字节,当前分段计入已录内容并参与合成保存。
- 录制结束与终结态清理临时目录:成功后或未录到任何分段便遇终结态异常退出时,不再残留空的
path.flv.segs根目录(会话目录清空后自动删除空的.segs;根下仍有其它会话的保留分段时不删);合成失败仍保留分段供手动恢复。 - 断流/网络中断自动重连续录:
- 读停滞看门狗:连接既不复位也不 EOF、只是不再有数据(网络黑洞)时,无超时客户端上的
ReadAsync会永久挂起、录制卡死——现在每收到数据重置 60 秒计时,超时按读中断自动重连; - 无限重连:旧实现重连 3 次即放弃,断网几分钟必然提前终止、网络恢复后不会自动继续——现在只要直播间仍在直播且用户未取消,就持续指数退避重试(3s→30s 封顶),网络恢复后自动续录;
- 分段尾裁剪:网络中断/取消使段尾只剩半个 FLV 标签时,ffmpeg concat demuxer 会在截断处报错中止整个合成——合成/改名前先把每个分段裁到最后一个完整标签,且支持 Filter 标志掩码识别;
- 终结态区分:直播间不提供 flv(仅 HLS/ts)与本地写盘失败(
LiveStreamWriteException异常过滤对齐)不再无限重试,直接报错并保留已录分段。
- 读停滞看门狗:连接既不复位也不 EOF、只是不再有数据(网络黑洞)时,无超时客户端上的
新增测试
- 直播录制集成测试新增至 499 个并全部通过:取消保留内容、断流重连合成、读停滞看门狗重连、下播 NoData、
qn=30000最高画质请求与回落、无 flv 终结态、FLV 截断尾裁剪(含 Filter 位)、终结态空目录清理与登录检测取消传播/超时降级等用例(本地假 B 站服务器覆盖完整录制循环)。
Commits
- release: v1.6.13
- test: 修正 CheckLoginWithDetails 取消令牌传播测试语义与断言
- fix: 直播录制健壮性修复——登录凭据加载/取消保存/断网自动重连/临时目录清理 (#28)
Downloads
| Platform | Architecture |
|---|---|
| Windows | x64, arm64 |
| Linux | x64, arm64 |
| macOS | x64, arm64 |
Full Changelog: v1.6.12...v1.6.13