Skip to content

更新日志

v0.2.1

这个版本的重点不在单一大功能,而在于整体录制链路的正确性、会话生命周期一致性、可观测性增强、Douyu 兼容性修复,以及前端稳定性与体验打磨。同时也包含了一轮较大规模的依赖与 CI 维护更新。

重点更新

1. 分段原因(Split Reason)正式打通到全链路

本次更新把录制分段原因从底层处理逻辑一直贯穿到了上层展示。

现在,分段原因会在以下层级中保持一致:

  • FLV pipeline
  • HLS pipeline
  • pipeline-common 公共层
  • 后端事件与下载管理器事件
  • API 返回结构
  • 数据库存储
  • WebSocket / protobuf 消息
  • 前端会话详情页与录制片段展示

这意味着你现在可以更明确地知道一段视频为什么会在某个时间点被切开,例如:

  • 视频编码变化
  • 音频编码变化
  • 分辨率变化
  • 时长限制触发
  • 文件大小限制触发
  • HLS discontinuity
  • 流结构变化
  • 上游 header 重置或流重启

这一改动不是单纯增加一个展示字段,而是一次跨后端、数据库、协议层与前端展示层的语义升级。

2. 会话生命周期与禁用/退避逻辑更严格、更一致

本次更新修复了 disabled streamer、临时禁用、错误退避、session 关闭之间的一些边界行为。

主要变化包括:

  • 临时禁用状态下,disabled_until 现在会成为真正的权威约束
  • 新的 live 事件不会再错误绕过临时禁用窗口
  • set_live 不会错误重置 backoff / error 状态
  • SegmentStarted 时,仅清理 last_error,不再顺带清空 backoff 相关状态
  • 当 disabled 的 streamer 被确认已经离线时,会主动关闭其活跃 session
  • cancellation 现在被视为一次成功完成路径,而不是失败状态

这些更新会让监控与录制状态更稳定,减少状态抖动、误恢复、session 长时间悬挂等问题。

3. Douyu 兼容性更新

Douyu 相关改动是这段时间内最需要关注的兼容性变化之一。

本次更新:

  • 适配了新的 Douyu API 请求要求
  • 更新了 ver 参数处理
  • 修正了请求编码行为
  • 对新的错误码做了处理,包括重试与区域限制相关逻辑
  • 移除了旧的 Douyu HS CDN support

如果你依赖旧的 Douyu HS CDN 配置路径,升级后建议重点检查相关录制流程。

4. 弹幕统计能力增强并接入界面

本次更新补齐了弹幕统计的采集、暴露与展示:

  • 后端开始采集 danmu statistics
  • API 层对相关数据进行了暴露
  • 前端会话页面新增了统计展示与图表能力

对于需要分析直播活跃度、弹幕节奏或回看质量的用户,这会是一个很实用的增强。

5. 前端稳定性与体验提升

前端这轮更新主要聚焦于“更稳”和“更统一”:

  • 修复 FOUC(页面初始闪烁 / 未样式化内容)问题
  • 回退并修正 theme provider 相关问题
  • 统一 dashboard 各页面的 skeleton loading 与动画切换体验
  • 抽离并统一动画定义
  • 改进 session 页面播放体验
  • 改进 SSR / Tauri 环境下的媒体 URL 行为

这些改动虽然不一定体现为新的功能入口,但会直接提升实际使用时的流畅度和可靠性。

6. 通知质量提升

通知相关更新主要集中在易读性与兼容性:

  • 下载通知现在会优先展示 streamer display name,而不是 UUID
  • 修复 Telegram HTML payload 转义问题
  • 清理 Web Push 中与 AES128GCM 相关的旧头部处理逻辑

对于依赖通知来追踪下载状态、录制状态的用户,这些修复会让通知内容更直观,也更不容易出错。

升级前建议重点关注

以下几项属于建议在升级时明确检查的内容:

Douyu HS CDN 已移除

如果你之前使用了 Douyu HS CDN 相关配置,需要在升级后重新确认配置和录制流程是否符合预期。

Split reason 数据模型发生变化

分段原因现已成为后端、数据库、API 和前端都会消费的一部分。如果你有外部脚本、二次开发、数据分析逻辑依赖旧的 session/segment 语义,建议一并检查。

包含数据库迁移

本次 split reason 相关改动附带新的数据库 migration。部署升级时应确保迁移正常执行。

HLS 配置被清理和重组

Mesio HLS 配置在后端模型与前端表单/schema 两侧都做了整理。若你高度依赖 HLS 细节配置,升级后建议逐项复查。

Cancellation 语义改变

如果你有脚本、告警或外部系统依赖“取消 = 失败”的旧逻辑,需要按新的完成语义重新确认行为。

Disabled streamer 的 session 收尾行为变化

现在当 disabled streamer 被确认离线时,活跃 session 会被关闭。如果你之前依赖旧行为进行人工判断或外部调度,也建议一并确认。

其他改进

录制、处理链与性能

  • 压缩处理器改进了进度反馈、取消能力和 buffered I/O
  • writer callback 路径减少了不必要的 canonicalization 开销
  • pipeline 与 worker pool 的日志输出做了批处理
  • mesio FLV downloader 的 cancellation token 传播更合理
  • AMF0 解码新增更宽容的 lossy decoding 支持

工程与维护

  • 前端依赖、Rust 依赖、文档依赖进行了一轮集中更新
  • GitHub Actions 中与 artifact 相关的 action 版本已更新
  • 对 frontend-only PR 跳过 Rust CI,减少不必要的 CI 开销
  • 仓库通过 .gitattributes 统一了文本文件 LF 行尾策略

总结

如果把这次更新概括成一句话,那就是:

这是一次围绕“录制行为更正确、状态更一致、信息更可见、平台兼容更稳、前端体验更顺”的综合更新。

对于普通用户来说,最直观的变化会体现在:

  • 前端加载与主题体验更稳定
  • 会话状态与收尾行为更符合预期
  • 通知内容更清晰
  • session 详情页能看到更完整的分段原因与弹幕统计

对于自托管用户或做集成的用户来说,最值得重点检查的是:

  • Douyu 相关配置与录制行为
  • split reason 与 migration 带来的数据模型变化
  • HLS 配置整理后的兼容性
  • cancellation / disabled / session 生命周期语义变化

Released under the MIT License.