Execute deletion → Re-review → Loop until zero slips of the tongue → Generate subtitles
Quick Start
用户: 确认,执行剪辑
用户: 全删
用户: 保留静音3和5,其他都删
Prerequisites
Need to first execute /videocut:剪口播 to generate the deletion task TodoList
Process
1. 读取用户确认的删除任务
↓
2. 计算保留时间段
↓
3. 生成 FFmpeg filter_complex
↓
4. 执行剪辑
↓
5. 重新转录 + 审查 ←───┐
↓ │
有口误? ──是─────────┘
↓ 否
6. 生成字幕(SRT)
↓
7. 完成
Progress TodoList
Created at startup:
- [ ] 确认删除任务
- [ ] 执行 FFmpeg 剪辑
- [ ] 重新转录审查
- [ ] 生成字幕
Update version number during each loop (v2→v3→...)
1. Read deletion tasks (timestamp-driven)
Read from the TodoList output by /videocut:剪口播 .Use timestamps directly, do not search text:
口误(N处):
- [x] 1. `(start-end)` 删"错误文本" → 保留"正确文本" ← 勾选=删除
语气词(N处):
- [x] 1. `(前字end-后字start)` 删"嗯" ← 勾选=删除
静音(N处):
- [x] 1. `(start-end)` 静音Xs ← 勾选=删除
- [ ] 2. `(start-end)` 静音Xs ← 未勾选=保留
⚠️ Key rules
- Use timestamps directly: Parse from
(start-end), do not search text - Do not search again: The review draft has already calculated precise timestamps
- Checked = delete, unchecked = keep
2. FFmpeg command
ffmpeg -y -i input.mp4 \
-filter_complex_script filter.txt \
-map "[outv]" -map "[outa]" \
-c:v libx264 -crf 18 -c:a aac \
output.mp4
filter.txt format
[0:v]trim=start=0:end=1.36,setpts=PTS-STARTPTS[v0];
[0:a]atrim=start=0:end=1.36,asetpts=PTS-STARTPTS[a0];
[0:v]trim=start=2.54:end=10.5,setpts=PTS-STARTPTS[v1];
...
[v0][a0][v1][a1]...concat=n=N:v=1:a=1[outv][outa]
3. Re-transcribe and review
After editing, must:
- Re-transcribe with FunASR
- Check whether there are still slips of the tongue
- Yes → return to
/videocut:剪口播to re-identify - No → generate subtitles
4. Output files
01-xxx-v2.mp4 # 剪辑后视频
01-xxx-v2_transcript.json # 重新转录(验证用)
01-xxx-v2.srt # 字幕文件
Version increments: v1→v2→v3...
5. Feedback log
2026-01-15
- Filler word deletion boundaries are imprecise: When deleting filler words, the preceding characters were deleted too
- Cause: Directly using the filler word's timestamp to delete
- Correct: From the previous character's end to the next character's start
- Filler word + silence should be deleted together:
A [静音] 语气词 BThe entire segment (A.end - B.start) should be deleted - Lesson: When deleting filler words, the boundary is
前一字.endto后一字.start
2026-01-14
- The slip-of-the-tongue text was not deleted cleanly; only the silent segment was deleted
- Lesson: Read timestamps directly from the TodoList, do not search again
- "拉满新" was deleted and changed to "会的时候": Searching for the "拉满新" timestamp spans 7 seconds (including 6 seconds of silence), and "拉满" was deleted too
- Lesson: For slips of the tongue where the front is deleted and the back is kept, delete only the differing part
- "AI就是AI" contains AI twice: Only "就是" was deleted, the first "AI" was not deleted
- Lesson: Replacement-type slips of the tongue must delete the complete first version
- Systematic solution: Timestamp-driven, the review draft directly marks
(start-end), and the editing script no longer searches text