摘要

一盘回合制策略对局的录像里有大量“等待”:玩家在思考、鼠标在游走、单位播放待机动画,画面几乎不动。用户想把一段 45 分钟的对局剪成约 10–20 分钟、可供观众观看的版本,删掉重复等待,但保留每次行动和它前后的连续画面。

本实验没有训练新模型,而是复用项目早先做“关键帧”时训练的一个画面稳定判定模型:它看连续 5 帧,判断这一小段画面是否“稳定”(原本用来挑适合做文字识别的静止截图)。在此基础上加了“行动切换保护”,生成保留/删除清单,再按清单从原分辨率视频同步裁剪视频和音频。

结果:

版本 成片时长 删除比例 状态
首版(行动前 3 秒 / 后 2 秒保护) 28:49.8 36.15% 已渲染,交用户审阅
修订版(行动前后各 1 秒) 22:14.9 约 50.72% 已渲染,交用户审阅
激进方案 19:58.3(计划) — 发现跨行动误删,未交付

两版都没有达到 10–20 分钟的期望。所有检查都是抽样的机器验证和助手稀疏目视,不是逐个行动的完整标注,也没有人耳听审。

要回答的问题

  • “适合挑截图的稳定”能否直接当作“没有观看价值、可以删除”?
  • 怎样在缩短时长的同时,不删掉选人、攻击、移动、施法、提示窗、日志变化这类重要片段?
  • 跳切后的视频与音频是否仍和原录像时间对得上、节奏不变?

数据与来源

  • 输入:用户指定的一段完整录像(9 月 20 日),2560×1440、AAC 48 kHz 立体声,全长约 1 小时 45 分。原视频只读,前后大小与修改时间均未变。
  • 定位:先看 51 张按分钟间隔抽的原帧,再看起止边界,人工选定第 59:56 到 1:45:05 这一盘,共 2709 秒(45:09),包含选人、选兵、战斗及退出后的几秒。这是人工定位辅助,不是自动对局分段;不推断胜负。
  • 稳定模型:早先实验(内部编号 B033)训练的 43 维五帧特征加 Extra Trees 分类器,冻结不重训。本次素材不进入任何模型训练。

方法

1. 低分辨率分析代理

用 FFmpeg 按媒体时间抽出 10 fps、640×360 的分析代理视频,保持原录像时间偏移。五帧窗口首尾跨 0.4 秒,目标范围共 27,090 个窗口中心。模型在阈值 0.5 下判定其中 79.36% 为“稳定”——这只是模型接受率,不是语义正确率。

2. 基线:只删长稳定段的内部

把连续稳定的区间视为候选删除段,但留开头和结尾一小段上下文(例如前 2 秒、后 1 秒)。

3. 为什么还不够:稳定 ≠ 没有内容

计时器、鼠标、待机动画会让等待期间画面持续小幅变化;反过来,一次小的行动切换在全图上可能只是很小的变化。如果把稳定窗口之间的短暂“不稳定缺口”合并掉以删得更多,就会把行动切换藏进长删除段里。

4. 行动锚点保护

游戏画面上有一个行动条(显示行动顺序的单位头像队列)和“当前行动单位”头像。在 320×180 坐标下,盯住首个行动图标区域 [58,0,103,24] 和当前头像区域 [57,150,83,179],五帧端点灰度差分别超过 0.035 和 0.07 就视为一次行动切换,前后保护一段时间。另外保留一个独立的局部变化检测(阈值 0.065)及其前后上下文。所有保护区间先求并集,再从候选删除段中扣除,不重复输出片段。

这些阈值是在这段录像上开发得到的参数,不是对其它画面布局的通用保证。

5. 渲染

  • 按同一清单从原分辨率视频裁剪;用户要求保持原帧率与连续性后,正式版本采用源视频可变帧率直通,不放大 10 fps 代理,也不倍速。
  • 音频按同一源时间裁剪,每段只加 10 ms 边缘淡入淡出,最后一次性编码为 AAC。被删区间里的语音和音乐不会保留,没有语音保护。
  • 修订版增加可选的整片双遍响度调整(目标约 −16 LUFS,处理前真峰值目标 −3.5 dBTP,给 AAC 编码留余量)。

设置

  • 首版比较了九组剪辑计划;修订版重新扫描同一代理得到 11 组计划(旧 9 组时长不变),模型与行动区域、阈值保持不变。
  • 修订版的保护范围:行动锚点前后各 1 秒;普通局部变化前 0.5 秒、后 0.7 秒;稳定段本身前留 0.8 秒、后留 0.5 秒;最短删除 2 秒;开头 6 秒、结尾 15 秒保护不变。

结果

首版九组方案对比

方案 输出秒数 删除段数 判断
连续稳定,前留 2 秒后留 1 秒 1886.4 133 保守基线
短缺口 0.4 秒,局部变化保护 1480.8 172 开发对照
短缺口 0.6 秒,前后文较短 1198.3 196 发现跨行动误删,不交付
整条行动栏低阈值保护 1835.0 123 较保守对照
整栏保护再放宽缺口 1834.5 123 几乎无额外收益
整栏中阈值,前 2.5 秒后 1.5 秒 1600.0 147 仍有小变化风险
整栏中阈值,更宽前后文 1750.1 129 开发对照
整栏更短上下文 1500.5 158 不以最短时长为赢家
局部首个行动图标 / 当前头像保护 1729.8 141 导出审阅稿

首版成片计划 1729.8 秒(28:49.8),删除 979.2 秒(36.15%);142 段连续片段,最短 2 秒、最长 63.6 秒、平均 12.18 秒。

修订版:缩短上下文

方案 行动锚点前/后 普通局部变化前/后 计划长度 连续片段数
首版 3 秒 / 2 秒 0.8 秒 / 1.2 秒 28:49.8 142
修订导出版 1 秒 / 1 秒 0.5 秒 / 0.7 秒 22:14.9 200
仅计划对照 0.5 秒 / 0.5 秒 0.3 秒 / 0.5 秒 20:11.0 221

修订版比首版短 394.9 秒,相对 45:09 原片删除 1374.1 秒(约 50.72%),最短保留段 1.2 秒。半秒版更碎,只做了计划,未导出、未做视觉审阅。

成片检查

检查 首版 修订版
全片解码 50,904 帧,无错误 39,210 帧,无重复/丢帧
实际时长与计划差 13.333 ms 31.37 ms
首/中/尾三段与原片帧节奏对照 359 帧,最大帧间隔差 0.667 ms 357 帧,最大帧间隔差 0.967 ms
响度(编码后) −32.39 LUFS,真峰值 −10.05 dBTP −16.42 LUFS,真峰值 −1.55 dBTP
音频源→输出对应 未检查 均匀 7 段,波形相关 0.868–0.999,最大估计延迟 0.375 ms

删除段目视抽查:激进方案看了 24 个删除段 × 3 张原帧;最终方案看了最长 12 段加均匀 12 段(去重后 23 段 × 3 张),另看成片按分钟间隔的画面(首版 29 张、修订版 23 张)。抽查到的删除主要是等待、重复选目标和阅读静止面板。

声音问题

用户反馈在“其他播放器”里听不到首版的声音。检查发现首版不是没有音轨:AAC 立体声存在、有实际信号,只是原录像和成片都很轻(整片 −32.39 LUFS)。修订版加入响度调整后提高约 16 LU。但仅凭文件检查无法断定用户的播放器为何完全无声;没有改系统音量、输出设备或播放器设置。

失败与负结果

  • 激进方案误删:短缺口 0.6 秒的方案(约 19:58)删除了第 5741.6–5787.8 秒的一段,抽样画面显示它跨过了几次行动切换。原因是模型稳定窗口加短缺口合并会把小的行动切换藏进长段,整条行动栏的均值又会稀释局部变化。该方案未交付。
  • 第一次响度处理被拒:处理前真峰值目标 −1.5 dBTP,AAC 编码后测得 +0.24 dBTP,被新增验证拒绝。改为留 2 dB 峰值余量,只读复用同一批视频与中间音频片段重新处理。失败文件保留为证据,不作为交付。
  • 固定 30 fps 先导片:用户要求原帧率后,56.8 秒的固定 30 fps 先导片只留作历史调试。
  • 时长目标未达到:两版都长于期望的 10–20 分钟;没有为凑时长继续删除未检查的内容。

局限

  • 所有检查是抽样的机器验证和助手稀疏目视,不是每次行动、每个短提示的完整标注,不能报告“完整保留率”。成片仍可能压短预览、选目标或短暂悬停过程,重复等待也没有删干净。
  • 没有人耳听审,也没有在用户的播放器上复现。
  • 行动区域和阈值是在这一段录像上调出来的,换布局或换分辨率不保证有效。
  • 测试套件通过(首版 2982 passed / 6 跳过;修订版最终 2991 passed / 6 跳过)只说明代码回归正常,不说明剪辑质量。首轮曾有 4 个 Windows 长临时路径失败,换短路径后通过。
  • 计时(特征重建约 58.15 秒、渲染与合并约 210.24 秒)是在有其它测试并行时测的,不是独占机器基准。

结论与下一步

“稳定”是挑截图的好信号,但不能直接当作“可以删”:必须加上局部行动切换保护,否则会误删行动。加保护后得到的 28:49.8 和 22:14.9 两版成片保持原分辨率、原帧率节奏和音画对应(抽样验证),但仍没达到 10–20 分钟。

下一步先等用户反馈剪辑连续性、是否漏掉动作、是否还有多余等待,以及声音是否正常;再补一组人工标注的“应剪 / 应留”参考区间。暂不继续压到 10 分钟、不重训模型;未上传任何视频平台。