(节选自 tapecap skill)
## 全卷捕获,并让磁带保持原样
从磁带开头归档整盘内容时,请注意以下事项——这些很容易让代理出错:
* **先倒带。** 要从头开始完整捕获,请先运行:
`tapecap wind start`,然后运行 `tapecap capture`。
* **开头空白段会触发磁带结束超时。** 磁带通常以一段空白、无信号的引带开始。对于从头开始的捕获,这段静音看起来和磁带结束完全一样,因此默认的 `--eot-timeout`(5000 ms)会**立即触发,导致捕获在任何画面开始前就停止**。对于全卷捕获,请**用 `--eot-timeout 0` 禁用它**,并用其他方式限制运行时间,例如 `--duration`、Ctrl-C,或直接让它运行到真正的结尾;也可以把该值提高到远大于引带长度。不要把 0 字节/瞬间完成的捕获报告为“磁带结束”——应优先怀疑是这个问题。
* **完整捕获后,录像机停在尾部空白段。** 此时磁带已经越过最后一段画面,进入末尾空白区;那里没有时间码,因此后续的 `cue`/`--seek` 没有可锁定的目标,也就无法正确定位。进行任何后续 cue/seek 操作前,**先运行 `tapecap wind start`**,把磁带带回有录制内容、也就是重新有时间码的位置。
* **结束时倒回磁带。** 当所有捕获都完成,并且用户确认没有更多内容需要抓取后,运行 **`tapecap wind start`**,把磁带恢复到原本的倒带状态。让磁带保持完全倒回,是完成任务的一部分——在磁带回到开头之前,不要认为任务已经完成。
(节选自 tapeflow skill)
## 使用 tapecap 自动重新采集(可选)
`analyze` 只负责*找出*缺口——要填补这些缺口,就意味着需要重新播放磁带。如果用户要求**自动重新采集受损片段**(自动补采),你可以自行控制磁带机,但前提是同时满足以下两个条件:
* 已安装 **`tapecap`** CLI,并且它能够识别磁带机;
* 当前 agent 已安装 **tapecap skill**。
如果缺少其中任一条件,**不要临时 improvisation 式地自行采集**——只报告受损列表(工作流第 2 步),让操作员手动采集。只有两者都具备时,才可以执行自动补采,并且**每一次采集、定位和走带命令都必须遵循 tapecap skill**;下面的步骤只是 tapeflow 在此基础上增加的编排逻辑,目标时间码来自 `analyze` 的 `damage[]` / `tape`。每一轮都会在 `
1. **采集范围要比缺口更宽。** `damage[]` 条目的 `tcStart` / `tcEnd` 是*受损*边界,不是采集边界——采集窗口应在两侧都留出一定余量,让新片段能与相邻的完好素材充分重叠,便于合并时拼接进去。
2. **相邻片段批量处理,尽量少定位。** 按 `tcStart` 对 `damage[]` 排序,然后以一次连续走带的方式依次处理,直接跨越相邻受损点进行采集。只有当两个受损点之间的干净间隔超过 **约 2 分钟** 时,才快进到下一个位置——每次停止、重新开始和重新定位都会磨损走带机构,所以直接滚过一两分钟的好磁带,通常比停下并重新定位更划算。
3. **重新分析,单个受损点最多重试 3 次。** 每次采集后,重新运行 `analyze`。如果刚刚覆盖的受损点仍然出现在 `damage[]` 中,就倒带并只重新采集该点——最多 **3 次尝试**。如果一个点尝试 3 次仍未改善,本轮就不会再有改善;将其标记为跳过并继续处理其他点,避免在同一位置反复磨损走带机构。
4. **全局清理轮次(最多两轮)。** 当整盘磁带都处理完后,回到那些 3 次尝试后被跳过的受损点,再次尝试处理它们;每个点仍然遵循**三次失败即跳过**的规则。整盘磁带的这类清理轮次最多重复 **两次**。
5. **释放张力,然后进行最后尝试。** 如果两轮清理后仍有受损点失败,就将磁带完整走一遍——先完全倒带到 `tape.tcStart`,再快进到 `tape.tcEnd`——以释放磁带张力,然后对每个仍然失败的受损点再尝试 **2 次**。
6. **停止并询问用户。** 如果到这一步仍有受损点失败,**停止**——不要继续让磁带机在同一个无法恢复的位置反复循环。报告剩余问题(每个受损点的 `tc`、`kind` 和 `coverage` / `copies`),并询问用户是要按当前状态 `build` 合并文件(通常 `buildable` 仍为 `true`),还是留待之后手动尝试。
整个过程中源文件始终保持只读:每次重新采集都是新增的归档片段,绝不会覆盖原文件——它只是为合并过程提供更多素材,以便从中挑选干净帧。
