更新日志
unreleased
本次更新重写了 Mesio 的 HLS 录制引擎以提升健壮性,并统一了 Mesio 下载 HLS 与 FLV 流的方式。加密 HLS 流的处理更加可靠,繁忙或加密流的内存占用保持有界,分段去重在播放列表刷新导致鉴权令牌(如 Twitch 签名链接)轮换时也能继续生效。一些已不再影响录制的 Mesio 引擎设置被移除,现有配置会自动迁移。
FLV 与 HLS 媒体处理也减少了 CPU、内存与磁盘 I/O 开销。媒体分析结果会被复用,大型 HLS 分段的队列按字节预算限流,FLV 元数据则就地回填,不再平移已完成文件的后续内容。现代增强型 RTMP 关键帧以及多种截断或格式异常的输入也能更可靠地处理。
斗鱼提取也做了一轮小而实用的整理:现在可以直接在清晰度选择器里选择仅音频流,H.265 会根据斗鱼 CDN 返回的元数据识别,更多"房间不可用"响应也会按离线状态处理,而不是变成不必要的提取失败。
控制台的主题系统也翻新了一遍。现在无论网页端还是桌面端,深色模式和自定义主题都会在页面显示出来之前就准备好——用深色模式的用户打开桌面应用,再也不会先白屏一闪了。明暗切换也比以前更顺滑、更稳定。
平台
新增平台:SOOP
现在可以直接添加 SOOP(前 AfreecaTV,
play.sooplive.co.kr/play.sooplive.com)主播并用原生多清晰度 HLS 录制。密码锁房与需要登录的直播可通过平台设置或 Cookie 支持;配置了 SOOP 账号后,应用会自动校验并续期会话 Cookie,供后续检测复用。开启弹幕后可记录公屏聊天与礼物。新增平台:Bigo Live
现在可以直接添加 Bigo Live(
bigo.tv)主播并用原生 HLS 录制。密码锁房可通过平台设置或主播 URL 的?pwd=参数支持;开启弹幕后可记录公屏聊天与礼物。默认会签发与网页一致的完整性 token,以提升接口兼容性。公开接口下的画面为单一竖屏中等清晰度(大约 480p–540p),浏览器侧更高清晰度不在此路径提供。
桌面应用
深色模式下启动不再白屏一闪
以前主窗口会在主题还没来得及应用时就显示出来,用深色模式的话,每次打开应用都会先白一下。现在主题会在窗口出现之前就位;启动画面也会跟着你在应用里选的主题走,而不是只看系统设置——比如系统是浅色、但你把应用设成了深色,那么从启动画面到进入应用,看到的一直都是深色。
Windows GPU 检查不再闪现控制台窗口
在配有 NVIDIA GPU 的 Windows 系统上,桌面应用此前可能会在启动时以及每次后台 GPU 健康检查运行时短暂闪现黑色控制台窗口。GPU 检查现在不会再打开控制台窗口,启动时也不再执行一次多余的连续检查。
主题与外观
自定义主题一打开页面就生效
保存过的主题预设、导入的主题、自己调过的颜色,现在都会在页面显示之前恢复好,网页端和桌面端都一样,打开时不会再闪一下默认配色。升级新版本之后,只要这次更新没有改动主题本身,你的主题也照常立刻生效。
明暗切换更顺滑、更可靠
切换明暗时的圆形展开动画,之前偶尔会整个屏幕先变了色、动画才慢半拍地播出来,现在不会了。顶栏的切换按钮也改成按你眼下看到的样子来切换——模式设为跟随系统时,第一下点击就有反应,不用再点两次。另外,如果切换前后外观其实没有变化(比如系统本来就是深色,你从深色切到跟随系统),就只记住你的选择,不再白白播一遍动画。
主题设置在多个标签页之间保持同步
在一个标签页里换了预设、调了颜色或圆角,其他开着的标签页会立刻跟着变,和明暗模式一直以来的表现一样。
删除确认按钮的文字颜色修好了
之前因为缺了一条样式,删除模板、通知渠道或工作流时,确认按钮上的文字颜色显示不正确,现在已经恢复正常。
HLS 录制引擎
重写 HLS 引擎,录制行为更可预测
Mesio 的 HLS 引擎围绕单一控制循环重写,由它统一掌管全部下载状态——该抓取哪些分段、重试截止时间、完成情况追踪——而不再分散在多个协作任务中。负载之下的录制行为现在是确定性的:进行中的下载、解密处理与输出缓冲各自受明确的内存预算约束,因此高速流或加密流不会再让内存无限增长。
加密(AES-128 / fMP4)HLS 更可靠
解密现在在主调度循环之外运行并受内存门控,因此即便加密分段突发涌入也能保持响应,而不会堆积。对于分片 MP4(fMP4)流,引擎会保证初始化分段先于依赖它的媒体写入,避免编解码不匹配导致的损坏;初始化分段彻底失败时会作为可见的缺口呈现,而不是让录制卡死。
分段去重在鉴权令牌轮换时仍然有效
当播放列表刷新轮换签名、令牌等查询参数时,分段不会再被重复下载。对于令牌方案已知的来源(例如 Twitch 签名链接),引擎可以剥离这些轮换参数,使同一分段在多次刷新间被识别;下载途中过期的签名链接也会自动切换到较新的链接透明重试。
跳过的分段与缺口会被明确标示
当直播窗口滑动、分段在抓取前就已掉出窗口时,引擎会发出明确的缺口信号,而不是悄无声息地卡住,从而让缺失的数据可被观测,而不是表现为录制画面冻结。
FLV 与 HLS 媒体处理
更低的处理开销与有界内存占用
FLV 编解码器与关键帧分类、HLS 传输流分析现在都只计算一次,并在整条修复流水线中复用。分辨率探测只读取有上限的流数据,处理工作会批量执行,HLS 队列按字节预算而不是分段数量限制。批次处理期间会一直持有字节记账凭证,因此批处理不会暂时绕过预算。如果分片 MP4 媒体在延迟的初始化分段到达前耗尽了初始化前安全缓冲区,修复流水线会先轮换输出,再写入该初始化分段。这些改动减少了重复解析,也避免少数超大分段导致内存占用不成比例地增长或产生无效文件顺序。
FLV 元数据改为就地更新
写入器现在会在录制开始时预留基础元数据空间,仅音频流和不建立关键帧索引的录制也包括在内。启用关键帧索引时,较大的索引预留区会在写入器关闭前完成回填。修复步骤不再平移或重写已完成 FLV 文件的其余内容,因此减少了磁盘 I/O,也避免大文件在录制结束时出现明显停顿。旧的低延迟 CLI 选项仍会为了兼容而被接受,但元数据更新始终使用就地路径。
FLV 修复对异常输入更稳健
增强型 RTMP 视频关键帧现在能正确识别,文件末尾的完整标签不再被跳过,空媒体载荷可以安全处理,GOP 缓冲区也有了硬上限。这些变更改善了新编解码器的分割与元数据生成,同时避免损坏或异常流让修复缓冲区无界增长。
Mesio 下载器
统一 HLS 与 FLV 下载会话
Mesio 的 HLS 与 FLV 下载器现在共用同一套会话模型,因此进度上报、重试处理与取消行为在两种协议间表现一致。
精简 Mesio 引擎设置
引擎设置表单中移除了若干已不再影响录制的 Mesio HLS 设置,包括 性能(Performance) 标签页(批处理调度器与零拷贝开关),以及流式阈值(streaming threshold)和原始分段缓存(raw segment cache)等字段。已保存的配置会由数据库迁移自动清理——无需任何手动操作,其余的超时、重试、解密密钥与缺口跳过设置照常生效。
斗鱼直播流
仅音频选项合并到清晰度选择器中
斗鱼的清晰度设置现在把 仅音频 放在了同一个选择器里。需要时仍然可以手动输入自定义斗鱼 rate,常用的原画、高清、低清以及 AAC 音频则可以直接从列表中选择。
H.265 识别以斗鱼 CDN 元数据为准
斗鱼直播流现在会使用 CDN 列表中返回的
isH265标记来识别 HEVC 流。所选 CDN 支持 H.265 时,提取器会优先使用斗鱼提供的专用player_1地址,并在该地址不可用时回退到普通直播流地址。不需要在前端单独维护 H.265 开关,仅音频请求也会继续使用 AAC 流响应。更多房间不可用响应会被正常处理
斗鱼错误码
-3、-4和-5现在都会被视为直播不可用或离线状态。房间关闭、主播在提取过程中下播,或斗鱼临时返回不可用响应时,会减少不必要的硬错误。
流水线上传
上传目标路径支持按会话开始时间锚定日期
rclone 流水线步骤新增
time_anchor设置。可以保持默认的job_created行为,也可以选择session_start,让%Y/%m/%d等日期占位符使用直播会话的开始时间,从而让跨午夜直播仍保存在同一个日期远端目录中。copy/move 步骤也可以选择job_created或session_start,默认仍保留既有的执行时刻展开行为。上传目标日期按服务器本地时区渲染
当上传目标路径使用显式参考时间展开时,时间占位符现在会按服务器本地时区渲染。此前该路径使用 UTC,在非 UTC 部署中可能导致远端日期目录与本地录制文件名的日期不一致。时区偏移取自被渲染的时间点本身,因此夏令时切换前后的录制仍保持与文件名一致的日期,重试的上传也会落在与原次运行相同的日期目录中。
流水线步骤表单
帮助文本中的占位符名称恢复显示
部分流水线步骤表单的帮助文本中占位符名称显示为空白——例如弹幕转换步骤显示"可使用 和 占位符",而看不到
{input}与{output}。rclone 与 copy/move 的目标路径字段现在也会在表单中直接列出支持的占位符。copy/move 步骤配置无效时报错更清晰
当 copy/move 步骤保存的配置无法解析时(例如选项值拼写错误),现在会报告实际的解析错误,而不是误导性的"未指定目标目录"提示。
录制可靠性
下载启动连续失败后,录制可自动恢复
当直播流的 CDN 短暂拒绝下载(例如斗鱼边缘节点在直播间仍在线时返回 HTTP 404),连续三次失败会让主播进入短暂的错误退避。此前退避写入与会话恢复路径之间存在时序竞争,可能使录制会话保持"进行中"却没有任何下载在运行——直播间一直显示在线并报错,但录制不会重启,只能手动重新启用监控。现在下载启动闸门会像其他被拒绝的下载一样上报此次拒绝:会话被干净地关闭,并在退避到期时安排一次状态检查,流恢复可达后录制自动继续。
直播看门狗会重启悄然消失的下载
作为对所有"下载启动被静默丢弃"路径的兜底,周期性直播看门狗现在能识别"平台显示在线、但五分钟内没有任何下载活动"的状态,并重新触发下载启动,而不是丢弃这次检查结果。
禁用主播不会再被进行中的状态检查"撤销"
此前在某次状态检查仍在进行时禁用主播,该检查可能在禁用之后把主播重新标记为在线、创建录制会话并启动下载。现在会话创建会在数据库串行化点重新读取主播状态,已保存的禁用始终生效——迟到的检查结果会被丢弃,不会覆盖用户意图。