剪辑蒙太奇 是做什么的?
目的
将用户在手机上拍摄的短视频,以及他们拥有的任何音乐或录音,编辑成一个可直接发布的9:16竖屏蒙太奇:
- 每个片段的最佳瞬间,按讲述故事的顺序排列;
- 卡点剪辑;
- 第一个镜头设置钩子,每个镜头都有标签,结尾有行动号召(CTA);
- 在重要时刻保留片段原始声音(如某人说话、滋滋声、欢呼声),并逐词添加字幕;
- 在整个视频下方添加用户的画外音,并配有同步字幕。
然后,与用户逐一版本地进行编辑,直到用户满意(例如“用她笑的那部分”、“先放厨房”、“放大片段声音,不要音乐”),同时不丢失之前的版本。
这是蒙太奇的默认设置,且完全免费。 所有渲染都在本机使用插件的 scripts/video/ 工具完成(montage.js 根据简短脚本构建页面,render.js 生成MP4)。无需账户,无积分消耗,且没有任何内容离开本机。真实素材也是对地点或产品最真实的呈现:不涉及任何AI生成内容。
哪些需要付费,以及何时提及:
| 用户拥有的素材 | 处理方式 | 费用 |
|---|---|---|
| 视频(可包含照片、音乐、录音) | 使用本技能 | 免费 |
| 仅有照片,但用户可以拍摄几个视频片段 | 要求提供片段,然后使用本技能 | 免费 |
| 仅有照片,且无法拍摄视频片段 | 使用 montage-video 进行本地运动(平移、推进、3D运动) | 免费 |
| 仅有照片,且用户希望有真正的镜头运动(新角度) | montage-video 的“AI镜头运动”,仅当用户表示拥有付费计划(如Figma Weave的付费Figma计划、Higgsfield)时,先报价并获得批准后再运行 | 付费积分 |
切勿在此技能中运行付费视频模型。除非用户已明确表示拥有付费计划并愿意使用,否则切勿报价。
分步流程
插件根目录: 如果以下路径中仍包含未展开的 CLAUDE_PLUGIN_ROOT 占位符(Claude Code会自动填充;Codex等其他代理不会),请在使用前进行解析:取 printenv CLAUDE_PLUGIN_ROOT 的输出(如果打印出路径的话),否则从本文件所在的文件夹向上查找,直到找到包含 references/brand-voice.md 的第一个文件夹,如果都不行,请询问用户该插件所在位置。在以下所有文件路径和shell命令中使用该绝对路径。下面的 VIDEO 表示 ${CLAUDE_PLUGIN_ROOT}/scripts/video。
-
检查配置状态。 读取
${CLAUDE_PLUGIN_ROOT}/references/brand-voice.md。如果该文件不存在,或其第一行为<!-- MARKETING-SKILL:UNCONFIGURED -->,请暂停并询问用户该插件的4个设置问题(优先级任务;要制作的内容类型;目标受众+语气;默认输出格式——与/marketing-skill:marketing-setup相同)后再继续,然后将答案保存到该文件中,并将标记改为CONFIGURED,同时加上今天的日期。 如果文件未配置,但用户已表示要跳过设置或使用默认值,则不要询问:在此次运行中使用其占位符的默认值,用一行说明情况,并保持标记不变。 -
选择客户。 与
montage-video步骤2完全相同(${CLAUDE_PLUGIN_ROOT}/skills/montage-video/SKILL.md):已保存的客户(读取配置文件和其## Notes)、新客户(企业名称、联系方式、所需的附加条款、Logo、颜色、他们喜欢的音乐),或用户自己的企业(省略client:)。配置文件存放在${CLAUDE_PLUGIN_ROOT}/state/clients/中,并且不纳入git管理。 -
询问素材、音乐和配音。 一次消息中询问:
- 视频片段(默认询问项)。 短的手机视频,每个3到15秒,每个房间、角度或时刻一个。如果用户尚未拍摄,请提供
montage-guide.md中的“视频片段拍摄技巧”:竖屏拍摄,每个镜头稳定保持3到5秒,缓慢移动,光线充足,并拍摄细节特写。 - 音乐(如果用户有的话)。 用户有权在广告中使用的曲目。来自流媒体应用或广播的歌曲不符合条件。否则:客户已保存的音效(免费生成的曲目)、Creative Commons 曲目(执行
node VIDEO/media.js search "<情绪>" --type music --out state/videos/assets --count 3),或没有音乐,以便用户在发布时在应用内添加热门音效(TikTok和Instagram的企业账户具有商业用途库)。 - 配音(如果用户有的话)。 用户录制的画外音(一个文件即可,手机语音备忘录也可以),并逐字提供配音内容用于字幕。或者视频片段中有人对摄像头说话。或者没有:大多数蒙太奇仅使用音乐。
- 用户希望参考的蒙太奇风格(如有): 用户发送的视频(或
brand-voice.md中视频设置的风格参考)。运行node VIDEO/reference.js <视频>,读取其reference.md并查看其镜头表;然后匹配其节奏(pace:其典型的镜头长度,以节拍为单位,当剪辑卡在节拍上时)、快速剪辑的连拍、字幕和感觉,并用一行说明您匹配的内容。复制其剪辑方式,绝不复制其素材、音乐或文字;要求提供文件,而不是从应用内下载他人的帖子。 - 只有照片? 询问用户是否可以拍摄一些视频片段(免费且最真实)。如果不行,则交由
montage-video处理,它会使用免费的本地运动移动照片。仅当用户要求真正的镜头运动或新角度时,才提及AI照片转视频功能,并说明需要付费计划(Figma Weave视频模型仅在付费Figma计划上运行)。只有在用户确认拥有付费计划并批准报价后,才按照montage-video的“AI镜头运动”进行操作。 - 将文件保存到磁盘。 渲染器需要文件:要求提供文件夹或文件路径。粘贴到聊天中的视频无法被渲染器读取。如果文件在Google Drive中且存在Drive连接器,请使用它将其下载到新文件夹中。
- 仅使用用户或客户拍摄的或拥有使用许可的素材,且仅使用同意出镜的人物。
- 视频片段(默认询问项)。 短的手机视频,每个3到15秒,每个房间、角度或时刻一个。如果用户尚未拍摄,请提供
-
导入素材。 运行
node VIDEO/montage.js inspect <文件夹> --slug <slug>,其中slug简短且命名视频(如maple,taco-night)。- 它会将每个片段复制到
state/videos/assets/<slug>-01.mp4等文件中,保留画面和声音原样,并删除元数据(包括手机片段中的位置信息)。原始文件不受影响。 - 它会打印每个片段的大小、形状、长度以及是否有声音,并标记长片段、横屏片段和低分辨率片段。
- 它会生成一个编号的联系表
<slug>-contact.png和一个初始脚本state/videos/<日期>-<slug>.md,每个文件一个镜头。 - 将用户的音乐复制到
state/videos/assets/<slug>-music.<ext>,将画外音复制到state/videos/assets/<slug>-vo.<ext>。
- 它会将每个片段复制到
-
查看每个片段。 您不能播放视频,因此需要查看帧:
- 对每个片段运行
node VIDEO/montage.js frames <片段> --every 1(对于短而繁忙的片段,使用--every 0.5)。它会每秒排列一帧并显示其时间,并在片段声音较大时打印提示(有人说话或值得保留的声音)。读取每个联系表。 - 命名每个片段显示的内容,并选择其最佳瞬间:稳定、清晰、光线良好、主体明确。跳过抖动的开始、手机放下、模糊以及任何未同意出镜的人。每个选择是一个片段区间,格式为
[from: 3.5] [to: 6.5]:大多数镜头1.5到4秒合适。一个长片段可以提供来自不同时刻的两到三个镜头。 - 横屏片段裁剪为9:16。用
[focus: x%,y%]注明需要保持在画面内的部分(人物、产品、壁炉)。 - 注明需要保留声音的片段(
[sound]):有人对摄像头说话、笑声、烤架上的滋滋声。您无法听到声音,因此需要逐字询问用户所说的内容用于字幕,并说明您保留了哪些片段的声音,以便他们检查。 - 说明您跳过了哪些片段或瞬间及其原因,以便用户可以推翻您的决定。
- 按照
${CLAUDE_PLUGIN_ROOT}/references/montage-guide.md(“片段:顺序”)排列镜头顺序:最强瞬间放在最前,然后按照场所或事件的路径进行,最后以CTA结束。
- 对每个片段运行
-
一次消息中确认范围。 提出方案,并允许用户修正:
- 长度和镜头数量: 大约15、30或60秒,以及哪些瞬间来填充。
- 音乐: 用户的曲目、客户的音效、其他类型、Creative Commons曲目(先发送供试听),或无。
- 配音: 用户的画外音、保留原始声音的片段,或无。
- 屏幕文字: 钩子(来自
${CLAUDE_PLUGIN_ROOT}/references/hooks.md的三个选项,每个来自不同模式)、每个镜头的标签、任何状态贴纸、CTA,以及清单或产品的价格和规格。每个事实均来自用户或客户。如果缺少某信息,则询问,或省略。
-
编写脚本并构建页面。 编辑初始脚本。格式和每个标签均在
VIDEO/montage.js顶部有文档说明:--- title: taco night client: casa-lupe hook: tuesday is taco night cta: book a table · link in bio music: assets/taco-night-music.mp3 pace: 4 beats --- 3. assets/taco-night-03.mp4 Fresh off the grill [from: 1.2] [to: 4] [sound] 1. assets/taco-night-01.mp4 Handmade tortillas [from: 0.5] [to: 3] [focus: 40%,60%] 2. assets/taco-night-02.mp4 Meet chef Lupe [from: 6] [to: 10.5] [sound] [say: Every tortilla is pressed by hand, every morning.] 4. assets/taco-night-04.mp4 The patio [from: 2] [to: 5] [move: push-in]- 片段区间:
[from:]和[to:]设置区间。然后镜头将适配节拍(向上取整,因此会播放超过[to:]一个节拍)。对于片段,使用pace:(以节拍为单位,而非小节):一小节会将一个3秒的区间在96BPM下向上取整为5秒。 - 片段原始声音:
[sound]同步播放声音,音乐在其下降低音量。该片段上的[say: ...]表示其中所说的内容,逐字添加字幕。不会再次配音。 - 用户的画外音:
voiceover: assets/<slug>-vo.m4a和voiceover-text: <用户逐字内容>。画外音从0.3秒开始播放(可用voiceover-at:更改),音乐在其下降低音量,字幕在每个镜头上低位置运行,并且镜头会延长以覆盖画外音。不要同时使用[say: ...]语音行。 - 用户的音乐:
music: assets/<slug>-music.mp3。其节拍由beats.js读取,剪切点落在节拍上。music: none则为在应用内添加热门音效留出空间。 - 镜头运动: 片段本身保持其原有运动。
[move: push-in]、pull-out或drift会在其基础上添加缓慢缩放。pan会滑动放大的片段,因为画面之外没有空间可平移。 - 混合照片: 照片的处理方式与
montage-video中相同(平移、推进、3D运动)。
然后运行
node VIDEO/montage.js state/videos/<日期>-<slug>.md。它会在脚本旁边生成<日期>-<slug>.html,并打印镜头表、声音、配音以及任何注释(片段短于其镜头、为读取标签而保持的镜头等),并运行render.js --check。修复检查中列出的问题(通常是通过缩短标签),然后重新运行直到干净为止。 - 片段区间:
-
初稿。 自行查看
node VIDEO/render.js <页面> --slides的每一帧:确保主体在画面内(未从横屏片段中裁剪掉)、标签可读、字幕不与标签重叠、顺序能讲述故事。然后:- 向用户发送幻灯片以确认顺序和文字。
- 渲染:
node VIDEO/render.js <页面> state/videos/<slug>-v1.mp4 --cover 0。它会生成MP4(1080×1920,30fps)、封面图片,并且当存在配音或带字幕的片段声音时,还会生成.srt字幕文件。--draft会先生成一个快速的半尺寸版本用于检查时间。切勿发布草稿。 - 您无法听到结果。请用户收听:音乐、每个保留的片段声音以及画外音与字幕的同步情况。
-
编辑直到满意。 每次请求都成为对脚本的编辑,而不是对页面的编辑,因为
montage.js会重新计算所有时间:用户说 脚本中的更改 “用她笑的那部分” 该镜头的 [from:]/[to:](在--every联系表上找到)“去掉抖动的部分” 更晚的 [from:],或更早的[to:]“厨房部分长一点” 更晚的 [to:],或[hold: 4s]“快一点” / “慢一点” 更短的区间, pace:(例如3 beats),或length:“做成15秒” length: 15,并删除最弱的瞬间(说明哪些)“厨房放前面”、“交换3和5” 重新排序编号行 “保留那一段的声音” / “静音” 添加或删除 [sound]“给他说的话加字幕” 在那一段 [sound]片段上添加[say: <他的逐字内容>]“添加我的画外音” 添加 voiceover:和voiceover-text:“换首歌” / “不要音乐” music:另一个文件、一种类型,或none“显示左侧”、“让她保持在画面内” 添加 [focus: 25%,50%]“放大它” 添加 [move: push-in](并添加[focus:]定位)“更平滑” / “更干脆的剪辑” 添加 transition: fade,或cut、slide、zoom、wipe、flash“更改文本” 标签, hook:,cta:,price:,specs:“慢动作” 不支持:无速度变化。手机慢动作模式拍摄的片段按原速播放 “换另一种颜色/Logo/电话号码” 客户配置文件中的信息,而非脚本 每轮:编辑脚本,再次运行
montage.js,然后对于时间更改使用--draft,对于视觉效果更改使用--slides。将下一个版本渲染为<slug>-v2.mp4、-v3.mp4等。切勿覆盖之前的版本,以便用户……
…(原文截断)