← ClaudeAtlas

videocutlisted

执行视频剪辑。根据确认的删除任务执行FFmpeg剪辑,循环直到零口误,生成字幕。触发词:执行剪辑、开始剪、确认剪辑
aiskillstore/marketplace · ★ 329 · Code & Development · score 79
Install: claude install-skill aiskillstore/marketplace
<!-- input: 删除任务 TodoList(口误+静音) output: 剪辑后视频、字幕文件 pos: 执行 skill,用户确认删除任务后调用 架构守护者:一旦我被修改,请同步更新: 1. ../README.md 的 Skill 清单 2. /CLAUDE.md 路由表 --> # 剪辑 > 执行删除 → 重新审查 → 循环直到零口误 → 生成字幕 ## 快速使用 ``` 用户: 确认,执行剪辑 用户: 全删 用户: 保留静音3和5,其他都删 ``` ## 前置条件 需要先执行 `/videocut:剪口播` 生成删除任务 TodoList ## 流程 ``` 1. 读取用户确认的删除任务 ↓ 2. 计算保留时间段 ↓ 3. 生成 FFmpeg filter_complex ↓ 4. 执行剪辑 ↓ 5. 重新转录 + 审查 ←───┐ ↓ │ 有口误? ──是─────────┘ ↓ 否 6. 生成字幕(SRT) ↓ 7. 完成 ``` ## 进度 TodoList 启动时创建: ``` - [ ] 确认删除任务 - [ ] 执行 FFmpeg 剪辑 - [ ] 重新转录审查 - [ ] 生成字幕 ``` 循环时更新版本号(v2→v3→...) --- ## 一、读取删除任务(时间戳驱动) 从 `/videocut:剪口播` 输出的 TodoList 读取。**直接使用时间戳,不要搜索文本**: ``` 口误(N处): - [x] 1. `(start-end)` 删"错误文本" → 保留"正确文本" ← 勾选=删除 语气词(N处): - [x] 1. `(前字end-后字start)` 删"嗯" ← 勾选=删除 静音(N处): - [x] 1. `(start-end)` 静音Xs ← 勾选=删除 - [ ] 2. `(start-end)` 静音Xs ← 未勾选=保留 ``` ### ⚠️ 关键规则 1. **直接用时间戳**:从 `(start-end)` 解析,不要搜索文本 2. **不要重新搜索**:审查稿已经计算好精确时间戳 3. 勾选 = 删除,未勾选 = 保留 --- ## 二、FFmpeg 命令 ```bash 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 格式 ``` [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] ``` --- ## 三、重新转录审查 剪辑后必须: 1. 用 FunASR 重新转录 2. 检查是否还有口误 3. 有 → 回到 `/videocut:剪口播` 重新识别 4. 无 → 生成字