视频编辑
真实素材,确定性编辑,可验证输出。每一步操作都是一个 video-tools MCP 工具;直接调用它们,而不是手写 ffmpeg,这样路径、编码和响度始终正确。
基本原则
- 绝不动原始文件。 写入到
video-out/<slug>/目录,按步骤编号命名(如01_trim.mp4、02_jumpcut.mp4)。除非设置overwrite=true,否则工具会拒绝覆盖。 - 先查看再剪裁。 对每个源文件先使用
probe和contact_sheet。使用detect检测场景切点和静音段。如果需要字幕且已安装watch插件则使用它;否则提取音频为.wav并用现有的转写工具(whisper、用户可用的云 API)进行转写,同时说明所用的工具。 - 每步只做一项修改,然后通过
contact_sheet查看结果,再进行下一步。 - 画面优先,声音其次,导出最后:裁剪 → 字幕 → 音乐 → 响度 → 导出。
标准流程
| 目标 | 工具调用 |
|---|---|
| 查看 | probe(path, measure_loudness=true)、contact_sheet(input)、detect(input) |
| 选择范围 | trim(input, output, start, end)(默认精确) |
| 讲话视频收紧 | remove_silence(input, output, threshold_db=-35, min_silence=0.45, padding=0.12);对嘈杂房间将 threshold_db 升高到 -30,如果单词被剪掉则增加 padding |
| 拼接 | concat(inputs, output, crossfade=0);不同尺寸/帧率/无音频的片段会自动适配 |
| 字幕 | 根据转写结果编写 .srt 文件(每行最多约 32 字符,2 行,每段 1-6 秒),然后 `burn_captions(style=clean |
| 音乐 | add_music(input, music, output, music_db=-16, duck=true);音乐会被循环、修剪、淡入淡出,并通过侧链压缩在语音下自动闪避 |
| 竖版 / 正方形 | `reframe(aspect="9:16", fit=blur |
| 变速 | 对裁剪后的片段执行 speed(factor),然后 concat |
| 缩略图候选 | 从 contact sheet 中选择 3-5 个精彩瞬间调用 frame(time) |
| 仅响度 | normalize_audio(target_lufs=-14) |
| 导出 | `export(preset=youtube |
从长视频生成短视频
detect+ 转写 → 挑选一个 15-60 秒的片段,要求前 2 秒有吸引点且包含一个完整想法。trim→remove_silence→reframe 9:16→burn_captions style=bold→export shorts。- 如果用户需要更有力的开头,且已安装
viral-hook技能,则提供该选项。
完成
始终对最终文件运行 video-qa 技能,匹配相应的目标平台。