专业视频剪辑 是做什么的?
此技能包含三个协同工作的部分:
- 编辑判断力:剪什么、在哪里剪、为什么剪,使结果像是品味之人制作而非机器拼凑。
- 编辑器 (
vedit):一个完全在命令行操作的轻量级时序编辑器。剪辑、标题、淡入淡出、音效和语音预设都通过它处理,用户也可以在浏览器中打开同一个项目。 - 音效工具:索引音效库、搜索音效,并将音效精准放置在特定帧上。
以下路径相对于本技能文件夹。工具需要 Python 3.9+ 和 FFmpeg 5+(无需安装其他内容)。
坦诚说明你能和不能做的事情
- 你无法听到音频或观看视频。通过测量(转录、场景和静音检测、
scripts/qc_audio.py)进行判断,并明确说明。渲染后,提供两到三个时间戳供用户实地检查。 - 切勿发明音效文件名或 ID。仅使用
scripts/sfx_search.py返回的 ID。 - 如果
scripts/sfx_search.py --stats显示没有目录存在,则表示音效库尚未建立。提供下面的单次设置并在下载前等待用户确认。如果用户拒绝或设置失败,仍进行编辑工作,并引导他们参考references/sfx-library-setup.md。切勿自行下载任何其他音效库。
核心原则(精简版)
完整文本及示例:references/editorial-principles.md。在剪辑或审阅剪辑前请先阅读。
- 情感优先。 询问观众在每个时刻应感受什么。如果他们能始终感受到情感,剪辑就成功了。
- 剪辑层级。 当一次剪辑无法满足所有条件时,按以下列表从底部开始放弃:情感、故事、节奏、视线跟踪、平面性、空间连续性。永远不要用高优先级的项目换取低优先级的项目。
- 在想法结束时剪辑,即观众可能眨眼的那一刻。剪辑点应是一个可能的眨眼点。
- 以最少的素材做最多的事。 暗示优于明示。更少、更好的选择。不做剪辑也是一种决策。
- 只评判屏幕上呈现的内容。 忽略投入的努力、成本和意图。
- 像魔术师一样引导注意力:决定视线去向,并让下一个镜头与之匹配。
- 诊断后再修复。 问题往往比观众宣称感受到的位置更早出现。
工作流程
| 阶段 | 操作内容 | 参考文档 |
|---|---|---|
| 1. 收片 | 确认交付物(平台、宽高比、帧率、时长)以及一句话概括的意图。 | technical-pipeline.md |
| 2. 记录 | 索引所有素材:带单词时间戳的转录、镜头类型、静音部分、最佳镜头。为每个设置选取一个代表性帧。 | editorial-principles.md |
| 3. 粗剪 | 使用最佳素材按顺序构建故事。先结构后打磨。 | editorial-principles.md |
| 4. 精修 | 应用剪辑层级和眨眼时间。第一次完整通过后重新审视之前舍弃的素材。 | editorial-principles.md |
| 5. 音效 | 定位、搜索、放置和混合音效。 | sfx-placement.md |
| 6. 检查 | 以观众身份完整观看一次。运行 QC 脚本。 | 下方 |
| 7. 交付 | 重新链接到全质量素材,匹配色彩/电平,先导出母版。 | technical-pipeline.md |
交接工作时需说明:编辑目标、主要结构选择、删减内容及原因、已知折衷方案,以及值得尝试的替代方案。
编辑器 (vedit)
使用它实际进行编辑。先阅读 references/editor.md,其中包含所有命令、项目格式和操作方法。基本命令:
python3 editor/vedit.py new myfilm --size 1920x1080 # 新建项目文件夹(Windows 上若 python3 缺失,则使用 python)
python3 editor/vedit.py -p myfilm settings --preset vertical # 目标画布尺寸(Reels/TikTok/Shorts);也可使用 --lufs -14
python3 editor/vedit.py -p myfilm analyze clip.mp4 # 检测静音和场景变化,用于选择剪辑点
python3 editor/vedit.py -p myfilm import clip.mp4 # 打印资产 ID,如 a1
python3 editor/vedit.py -p myfilm add a1 --in 12.5 --dur 8 # 将 8 秒片段放入时间线
python3 editor/vedit.py -p myfilm grade c1 --look cinematic # 调色;也可使用 --brightness --contrast --saturation --temperature --lut FILE
python3 editor/vedit.py -p myfilm key c1 scale --at 0 --value 1; python3 editor/vedit.py -p myfilm key c1 scale --at 8 --value 1.15 --ease inout # 缓慢推镜头
python3 editor/vedit.py -p myfilm transition c1 c2 --type dissolve --dur 0.5
python3 editor/vedit.py -p myfilm key c1 speed --at 0 --value 1 # 速度曲线:在 `speed` 上添加更多关键帧(片段自身音频会被静音);也可使用:reverse c1, freeze c1 --at 4 --dur 2
python3 editor/vedit.py -p myfilm tracker add c1 --at 4 --x 0.6 --y 0.3 # 跟踪一个点;然后:mask c1 --effect blur, follow c1 m1 t1(模糊人脸)或 attach c2 t1(标题跟随运动)
python3 editor/vedit.py -p myfilm stabilize c1 # 平滑相机抖动(需要 FFmpeg 支持 libvidstab)
python3 editor/vedit.py -p myfilm captions subtitles.srt # 每个字幕对应一个文字片段
python3 editor/vedit.py -p myfilm sfx a3f9c012 --at 8.0 # 音效 ID 来自 scripts/sfx_search.py;音效命中点落在 8.0 秒
python3 editor/vedit.py -p myfilm set c1 preset="voice enhancer"
python3 editor/vedit.py -p myfilm check # 修复它报告的每个错误
python3 editor/vedit.py -p myfilm render --preview # 快速渲染;然后使用 `frame --at T` 查看 PNG 图片
python3 editor/vedit.py -p myfilm measure --at 4 # 亮度/色彩数值,用于判断曝光和调色
python3 editor/vedit.py -p myfilm serve # 让用户在浏览器中打开并调整项目
- 你拥有完全控制权:每条命令输出 JSON,错误信息清晰,
batch可将多个编辑操作作为一个更改应用,undo可撤销一次。关键帧可驱动缩放、位置、旋转、透明度、颜色、音量和速度;editor.md列出了其余功能(遮罩、跟踪、绿幕、裁切、翻转、轨道静音和隐藏、画布预设)。 - 使用
frame --at T查看画面而非猜测,使用measure判断色彩,通过测量判断音频,而非声称它听起来很好。 - 保持克制:温和的风格、一种过渡效果、少量缓慢移动。如果去掉某个效果没有任何损失,就删掉它。
- 跟踪和遮罩通过测量而非肉眼判断:在
tracker add后,检查found并使用frame --at T查看帧。跟踪适用于尺寸稳定、有纹理的刚性物体,会丢失转向或隐藏的目标。 - 用户可能在您工作时于浏览器中更改时间线。在他们告知后,在编辑前运行
show。 - 语音预设(
phone call,deeper voice,robot voice等)来自捆绑的 Premiere.prfpset文件,也可通过presets import FILE.prfpset从其他文件中提取。它们近似 Premiere 的效果;参见references/voice-presets.md。 - 如果未设置音效库,
sfx命令会失败并提示清晰的信息;请在下方提供 SFX 设置选项。
SFX 工具包
所有脚本都支持 --help。它们仅使用标准库和 FFmpeg。
一次性设置。 本技能不包含任何音频文件,因为音效的许可证禁止重新分发。默认音效库是免费的 Sonniss GDC 2026 Game Audio Bundle,从 Sonniss 服务器下载。运行前,告知用户大小(第 1 部分 1.3 GB,包含 82 个音效;全部 5 部分共 7.5 GB,包含 347 个音效)和许可证(一句话:免费用于个人和商业媒体项目,无需署名;禁止转售或重新分发音效;禁止用于 AI 训练),并获取同意:
python3 scripts/setup_library.py --accept-license # 第 1 部分
python3 scripts/setup_library.py --accept-license --parts all # 全部
它会将 zip 文件保存到此技能内的 library/ 文件夹,支持断点续传,重复利用已下载部分,然后构建目录。如果找不到 python3,Windows 上使用 python。
要使用用户自己的音效(或额外使用),直接进行索引(参见 references/sfx-library-setup.md):
python3 scripts/build_catalog.py /path/to/sounds.zip # 或一个文件夹,或一个包含 zip 文件的文件夹
无论哪种方式,结果都是一个仅文本的目录文件:~/.pro-video-editing/catalog.json。它不包含任何音频。
每个项目:
python3 scripts/sfx_search.py --stats # 查看可用内容
python3 scripts/sfx_search.py "fast airy whoosh" --max-dur 1.5 --limit 8
python3 scripts/sfx_search.py "button click" --exclude ID1,ID2 # 避免重复使用同一取音
python3 scripts/render_mix.py in.mp4 cues.json --check # 检查 cue 表
python3 scripts/render_mix.py in.mp4 cues.json -o out.mp4 # 渲染
python3 scripts/render_mix.py in.mp4 cues.json --sfx-only fx.wav # 导出音效轨用于 DAW 或调色师
python3 scripts/qc_audio.py out.mp4 --target -14 # 响度和真峰值检查
搜索输出列:id,时长,类别,peak@(音效击中点),标签,文件名。使用 peak@ 来理解音效将与剪辑何处对齐。
Cue 表
{
"default_gain_db": -9,
"duck": true,
"humanize": true,
"cues": [
{"id": "a3f9c012", "at": 2.50, "sync": "peak", "note": "into the title card 的呼啸声"},
{"id": "19be4d70", "at": 2.50, "gain_db": -12, "note": "其下的柔和层"}
]
}
at是音效的同步点必须落在的视频时间。at_frame则按帧号放置。sync:peak(默认)将最响亮时刻对齐,onset对齐起始攻击,start对齐第一个样本。工具会自动计算开始时间,因此即使音效在剪辑开始前播放,命中点也能帧精确。- 每个 cue 可选参数:
gain_db,fade_in,fade_out,trim_start,duration,pitch_semitones(±12 半音内),note。 duck会降低音效电平以突出原始音频(对话)。humanize会在相同音效重复时添加微小的增益和音调变化。- 在
note中写明原因。这使 cue 表可审查,也有助于后续编辑。
--check 会报告未知 ID、超出视频范围的时间、重复取音、叠层过多以及过于繁忙的表。在渲染前修复它所报告的所有问题。
SFX 规则
完整指南及定位方法:references/sfx-placement.md。
- 定位前先有理由。 每个音效都必须服务于情感或故事。如果去掉它没有任何损失,就删掉。
- 将击中点对准剪辑或运动,而不是接近它。对于呼啸声和撞击声使用
sync: peak。 - 轻量叠层:同一时刻最多三个音效(例如撞击、低频、尾部)。
- 变化取音。 绝不要在连续两次中使用同一个音效;再次搜索时使用
--exclude。 - 留出静音。 击中点前的间隙能让击中效果更强烈。
- 保持对白清晰。 在有对话时保持
duck开启,并在对话下将默认增益保持在 -9 dB 或更低。 - 密度:大约每 10 秒 12 个 cue 就已经非常密集。平静的内容需要少得多。
验证检查清单
在宣布剪辑完成之前:
- 每次剪辑都通过了层级检查,且情感优先
- 不存在仅为增加节奏而进行的剪辑;暂停是经过深思熟虑的
- 剪辑点位于想法边界,而非想法中间
-
render_mix.py --check报告无错误,且警告已解决或给出合理解释 -
qc_audio.py显示真峰值 ≤ -1 dBTP,且响度接近目标值 - 输出时长、帧尺寸、帧率和音频布局符合交付规范
- 已向用户提供具体的时间戳以供监听
参考索引
references/editorial-principles.md:哲学、剪辑层级、眨眼时机、对话、节奏、问题诊断references/editor.md:编辑器命令、关键帧、调色、过渡、字幕、交付设置、项目格式、AI 工作方法、浏览器编辑器references/voice-presets.md:语音预设、提取 Premiere.prfpset文件、精度限制references/sfx-placement.md:定位方法、按用途划分的音效指南、电平、叠层、闪避references/sfx-library-setup.md:获取音效库、构建目录、管理标签、许可证references/technical-pipeline.md:媒体管理、代理、色彩、编解码器、互换、导出