Communitygithub.com

Premiere 精剪套件

将原始素材一键转化为可在 Adobe Premiere Pro 中发布的成品视频——涵盖口播/录屏类和有对白/montage 类(房间参观、漫游、旅行素材、房产/产品展示)。每当用户希望编辑、清理、调色、剪辑视频或使其可发布时使用。

Premiere 精剪套件 是什么?

该技能(Premiere 精剪套件)通过自动化编辑流程,将原始视频文件转化为可直接发布的成品视频,全程驱动 Adobe Premiere Pro 的 MCP 工具,无需手动操作 GUI。它专门处理两类视频:以对话驱动的“口播/录屏”视频,以及无对白的“蒙太奇/B-roll”视频(如房间参观、漫游、旅行素材)。技能的核心在于结合两个 MCP 服务器的优势:`premiere-pro` 负责剪辑、调色和导出,而 `claude-video-vision` 提供 Premiere 无法自动完成的音频分析(静音检测和语音转录)。工作流程包括:用 ffprobe 获取源文件属性,分析音频以生成基于静音和填充词的剪辑列表,在 Premiere 中创建项目和序列并执行精简剪辑(使用剃刀+波纹删除而非不可靠的 `trim_clip`),通过反复预览静态帧进行基础色彩校正,导入时间校准后的 SRT 字幕,为竖屏导出自动重构画面,最后导出 H.264 格式的横竖双版本。技能默认遵循“社交媒体系列风格”:算法优先于时间顺序、果断裁剪、全景与特写交替、场景间使用交叉溶解,并默认优先输出竖屏版本。对于“故事/用户生成内容(UGC)”类视频,它还特定增加了冷开场(从最吸引人的瞬间开始)、预留旁白钩子、品牌卡片结尾和对话音频电平处理等规则。技能文档详细记录了 Premiere Pro MCP 服务器已知的 bug(如 `trim_clip` 静默失败、`export_frame` 忽略时间参数等)及相应的规避方法,确保自动化流程的可靠性。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ONIKOSIOLA/video-editing-kit/tree/HEAD/skills/premiere-clean-edit

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Premiere 精剪套件 是做什么的?

将一个或多个原始视频文件转化为完整的、可导出的成品视频: 剪掉空白时间和填充词、校正色彩、添加预先烧录好的字幕, 并导出横屏和竖屏两个版本——全程通过 premiere-pro MCP 工具驱动 Adobe Premiere Pro, 同时依靠 claude-video-vision 完成 Premiere 本身无法在无头模式下完成的音频分析。

Premiere Pro 必须在机器上已经打开,且 premiere-pro MCP 服务器已连接, MCP Bridge (CEP) 面板已启动(窗口 → 扩展)——本技能无法启动应用程序。 如果服务器未安装,请运行套件的 setup 技能。 如果 create_sequence 等工具未直接列出,说明服务器将它们隐藏在 search_tools / invoke_tool 之后: 请使用这些工具,或使用 PREMIERE_MCP_TOOLSET=full 重新注册服务器。 如果任何 mcp__premiere-pro__* 工具调用因连接错误失败,请告知用户打开 Premiere Pro 并重试,而非尝试绕过。

为什么需要两个 MCP 而非一个

premiere-pro 可以剪辑、调色和导出——但它没有办法决定在哪里剪辑。 该服务器中没有静音检测或转录工具。 claude-video-vision 的 video_analyze 填补了这一空白:在原始文件进入 Premiere 之前, 它使用 ffmpeg 进行静音检测,并使用本地 whisper 转录(带单词级时间戳)。 剪辑列表计算一次,以纯数据形式保存,然后作为一系列 MCP 调用执行。 不要试图通过预览 Premiere 时间线来目测剪辑点——你没有帧精确的听觉,分析过程完成这项工作。

两种编辑类型——开始前选择

  • 口播类(出镜说话、屏幕录制、画外音):按照下方 Pipeline 执行——静音/填充词裁剪和字幕是关键工作。
  • 蒙太奇 / B-roll(房间参观、漫游、旅行素材——无需对白驱动剪辑):跳过静音/填充词步骤,按照下方蒙太奇管道执行。字幕可选;音乐和节奏是关键工作。

两种类型完成后均应用下方系列风格。如果不确定属于哪种类型:如果音频不承载故事,则为蒙太奇。

系列风格(默认社交媒体外观)

这些默认值来自将自动组装与手工完成最终剪辑进行比较的结果。忽略这些的初版剪辑通常会被手工重做。 如果用户有自己的风格或参考视频,则以她的品味为准:询问并调整这些规则使其匹配。

  • 以最强品牌/定场镜头开头和结尾——像标题卡一样以此开场,并以此结尾。故事顺序优于时间顺序;带品牌的标志或英雄镜头比“第一个拍的镜头”更重要。
  • 果断裁剪。 每个场景一个节拍,约 3–6 秒,仅保留最佳瞬间——绝不保留完整剪辑。一个好的参考剪辑从 80 秒可用素材中只保留了 46 秒。社交媒体的目标时长约为 45–60 秒。
  • 完全丢弃弱素材——抖动的手持入场、摸索般的开始。如果一个剪辑需要道歉,就不应该出现在成片中。
  • 全景与细节特写交替——房间全景 → 炉灶旋钮,卧室全景 → 床头板纹理。在定场镜头之间插入细节。
  • 场景之间使用交叉溶解,而非硬切。 仅在有意的强调处使用硬切(一个好的参考剪辑中只使用了一两次)。
  • 蒙太奇优先考虑音乐。 持续的音乐背景(约 -11 LUFS),无静音;原始相机/环境音被移除或完全压低(而非仅做闪避)。如果未提供音轨,请询问或留下静音时间线并标记——绝不使用未处理的原始环境音。
  • 优先竖屏交付: 1080×1920、30fps、H.264 约 12 Mbps 是主要交付格式,即使源素材为 4K60。横屏是可选附加项,而非相反。

对于 故事/UGC 片段(带对白的真实时刻——偶遇、反应、即兴互动),在上述基础上增加四条规则:

  • 以病毒瞬间冷开场。 将偶遇中间最抓人眼球的 2–4 秒特写放在 0:00 处,然后倒叙从头讲述故事。按时间顺序是这里的基本失败模式——绝不以铺垫/背景开场。
  • 为画外音钩子预留空间。 创作者通常会在冷开场部分录制一段直接对镜头讲述的画外音(“我知道大家都在想为什么……”)。剪辑无法生成这个——请构建一段冷开场,然后标记该钩子需要录制画外音(或询问用户),而非在没有的情况下输出。
  • 以品牌卡片结尾。 如果用户有品牌、产品或推广的账号,请以简短的结束卡(约 3–5 秒)展示。询问她的 logo 或账号;绝不捏造。
  • 对对话进行电平处理(约 -16 LUFS,窄范围),而非铺设音乐背景——对于故事类,对话承载内容;对于蒙太奇,音乐承载内容。

Pipeline

按顺序执行以下步骤。对于一批剪辑(例如一周的录制内容),在每个剪辑上重复步骤 2–8,所有剪辑共享一个 Premiere 项目。

1. 确认输入

询问(或根据上下文推断):原始文件路径,以及这是一个单独交付物还是需要横屏(LinkedIn 风格,16:9)和竖屏(Threads/TikTok/Reels,9:16)两个版本导出。 如果用户未指定,默认导出两个版本——编辑锁定后重构画面成本很低。

2. 使用 ffprobe 获取源文件信息

ffprobe -v error -select_streams v:0 -show_entries stream=width,height,r_frame_rate \
  -show_entries format=duration -of json "<raw-file>"

你需要 width、height、r_frame_rate(解析分数,例如 30000/1001 ≈ 29.97) 和 duration。你在 Premiere 中创建的序列应与这些值匹配—— 不匹配的序列设置会导致静默缩放/帧率转换,从而降低质量。

3. 分析音频——静音 + 转录

在原始文件上调用 mcp__claude-video-vision__video_analyze, 使用 filters: {silence: true, transcription: true}。 这将返回静音间隔和单词级转录(whisper 通过 whisper.cpp 在本地运行—— 无需 API 密钥,首次运行可能需要一分钟加载模型)。

将结果保存到 JSON 文件中——你将在下一步将其提供给剪辑列表脚本。

4. 计算剪辑列表

在分析 JSON 上运行 scripts/build_cutlist.py:

python3 "<skill-path>/scripts/build_cutlist.py" analysis.json \
  --duration <ffprobe-duration> --srt-out captions.srt

该脚本的存在是因为手工完成这项工作在一个特定方面容易出错: 每次剪辑后,字幕时间戳必须根据之前移除的所有内容的累计时长进行偏移, 否则字幕会不同步。脚本处理了这一点,同时处理了静音间隙的合并/填充逻辑, 这样剪辑就不会落在单词中间。

它会自动剪辑三种内容:≥0.35 秒的静音间隙(填充 0.08 秒以避免切掉说话内容)、 生硬的填充词(um、uh、er 及变体)和口吃/假开始(立即重复的单词,如“the the”)。 它故意不自动剪辑软填充词(like、so、right、you know、actually)—— 这些通常是某人真实的说话方式,而非噪音。来自过去 UGC 剪辑的真实反馈: 像“你知道吗?”这样的即兴发挥被标记为批次中最真实的元素,并被明确保留,而非删减。 脚本在 flagged_for_review 中显示这些内容(带有上下文)—— 浏览该列表,仅当某些内容看起来像真正的填充词时才上报给用户; 有疑问时,保留它。

5. 构建 Premiere 项目与粗剪

  1. 使用 create_project(或重复使用时使用 open_project)和 create_sequence,序列设置与 ffprobe 输出相匹配(步骤 2)。
  2. 使用 import_media 导入原始文件,使用 add_to_timeline 在时间 0 处添加到轨道 0。
  3. 按照剪辑列表的 cuts 数组按 start 时间降序排列,对每个剪辑:在剪辑的开始和结束位置使用 razor_timeline_at_time, 然后对中间生成的剪辑使用 remove_from_timeline,设置 deleteMode: "ripple"。 降序排列很重要——波纹删除较早的剪辑会改变所有后续时间戳,因此如果按升序操作, 步骤 4 中剩余的剪辑点将不再与任何内容对齐。
  4. 确认序列时长现在大致匹配剪辑列表 JSON 中的 new_duration。

6. 色彩校正

默认外观(用户要求干净/自然,而非风格化调色):修正白平衡、压低高光、轻微提亮暗部、适度的饱和度。 你无法盲目操作——color_correct 的参数是手动滑块,背后没有自动检测。因此:

  1. 使用 export_frame 导出一个代表性帧(剪辑开始几秒后,越过任何开场)。
  2. 查看它。判断白平衡(肤色不应偏橙或偏蓝)、曝光(是否有任何过曝/全黑区域)和对比度。
  3. 对时间线上的剪辑应用适度的 color_correct 调整——微小的调整(个位数数值),而非大幅摆动。 自然的校正应该是几乎不被注意到的“校正”,只是让人觉得“看起来舒服”。
  4. 再次 export_frame 并比较。如果仍有问题,迭代一两次;不要为了追求单帧完美而无限循环。

如果用户有想要应用的 .cube/.3dl LUT(替代或补充手动校正),请使用 apply_lut, 设置低到中等的 intensity(0.5–0.8),叠加在基础校正之上,而非替代—— 单独的 LUT 无法解决实际的白平衡问题,只会重新着色。

7. 字幕

  1. 使用 import_media 导入步骤 4 中生成的 captions.srt。
  2. 在序列上使用 create_caption_track,将 projectItemId 指向导入的 SRT。

这之所以有效,是因为步骤 4 已经根据剪辑后的时间线重新调整了 SRT 的时间—— 如果你在此处根据原始(剪辑前)转录时间戳重新生成字幕,它们将与编辑后的视频不同步。

8. 为第二宽高比重构画面

重构画面会裁剪进入现有帧,使用运动跟踪——从较宽到较窄(16:9 → 9:16)效果很好, 但从较窄到较宽(9:16 → 16:9)没有真正的帧数据可创造(需要 Premiere 的自动重构不支持的生成式扩展)。因此:

  • 如果素材是横屏拍摄 → 使用 auto_reframe_sequence,设置 numerator: 9, denominator: 16 用于竖屏导出。这是常见情况,效果很好。
  • 如果素材是竖屏拍摄 → 如果确实需要横屏版本,请告知用户,而不是静默填充/模糊两侧;重新拍摄或使用信箱/柱箱导出通常是更好的选择,而非糟糕的 AI 重构。

9. 导出

最终的社交媒体交付物为 H.264 1080p,而非 ProRes——这是成品导出,而非 Premiere 到 Premiere 的移交。 对每个版本使用 export_sequence:

  • 横屏:format: "h264"(或 "mp4"),resolution 匹配源文件,quality: "high"。
  • 竖屏(来自重构后的序列):相同设置,1080×1920。

当用户未指定路径时的输出约定:在原始源文件旁边创建一个 edited/ 文件夹, 并将输出命名为 <source-name>-final.mp4(横屏)和 <source-name>-vertical.mp4。 完成前使用 save_project。

10. 反馈结果

告知用户:剪辑了什么(按原因计数——静音/填充词/口吃)、你保留在 flagged_for_review 中的内容及原因、色彩校正改变了什么、导出文件的位置。 不要只说“完成”——这是关于他们的素材;他们应该知道什么被修改了。

蒙太奇管道(无对白素材)

  1. 在素材进入时间线之前观看每一个源剪辑—— 使用 video_watch,最低 1fps。不要通过文件名、缩略图或之前的文件夹摘要推断内容: 一个“仅房间”的剪辑可能以镜中可见的人物结束(曾发生过——两个浴室剪辑在最后几秒之前都是干净的)。 观看时,注意每个剪辑的最佳 3–6 秒节拍和精确的修剪点。
  2. 对所有剪辑使用 ffprobe(Pipeline 步骤 2)。创建匹配源 fps 的序列——60fps 的剪辑使用 60fps 的序列。序列设置创建后无法更改(参见 MCP 错误),因此请先正确设置。
  3. 按照系列风格中的故事顺序组装:品牌镜头 → 全景与细节交替 → 英雄视角镜头 → 品牌镜头再次出现。
  4. 将每个剪辑修剪到注意到的节拍:将完整剪辑添加到其位置,在保留边界处使用剃刀,波纹删除剩余部分—— 同时传递**videoTrackIndices 和 audioTrackIndices**,然后使用 list_sequence_tracks 确认视频和音频轨道长度仍然匹配。 孤立音频尾部会静默地导致其后的所有内容不同步。
  5. 在每个场景边界添加交叉溶解(add_transition_to_clip)。
  6. 按照系列风格添加音乐背景;移除相机音频。
  7. 首先导出竖屏版本(1080×1920,30fps,h264,高质量)。仅在要求时制作横屏版本。

已知的 premiere-pro MCP 错误(2026 年 8 月验证)

  • trim_clip 静默无操作——返回成功,但未作任何更改(无论是否带 duration 参数)。切勿使用;请使用剃刀+波纹删除。
  • export_frame 忽略 time——无论请求什么时间码,总是返回序列的第一帧。用于检查特定时刻或对序列中间剪辑进行调色时无用;请改用 claude-video-vision 从源文件提取帧。它还会自动附加自己的扩展名(x.png → x.png.png),因此请传递不带扩展名的 outputPath。
  • razor_timeline_at_time 仅使用 videoTrackIndices 仍会剪切所有音频轨道——视频仅限的波纹删除会留下孤立的音频。始终显式传递 audioTrackIndices,并在之后验证同步。
  • set_sequence_settings 无法在创建后更改 fps/尺寸——请创建具有正确设置的新序列并删除旧序列。
  • MCP 调用可能超时但仍然成功(create_sequence 曾出现此问题)。超时时,在重试前检查 get_project_info/list_sequences——盲目重试会创建重复项。
  • export_sequence 可能报告成功但未写入任何内容——已确认两次(带有和不带有 outputPath 中的文件扩展名);它还会回显 format: "ProRes" 但实际导出 H.264(检查 MediaInfo,而非信任日志)。始终在文件系统上验证输出,然后询问用户是否满意。
  • add_transition_to_clip 在处理跨轨道编辑时行为异常——当剪辑跨越轨道边界时将其分割会更好,然后仅在干净边界处添加溶解。
  • create_project 如果项目已存在则会静默失败——始终先使用 get_project_info 检查,如果需要重新创建则使用 close_project。

配方:从单一源文件制作竖屏和横屏版本

对于“后期技巧”风格的提示(“编辑这个” / “让它可发布”),默认 Pipeline 已经完成所有工作。

配方:为竖屏重构已编辑的横屏序列

当序列已经锁定且你需要社交版本时:在序列上使用 auto_reframe_sequence,设置 numerator: 9, denominator: 16, 然后像平常一样导出。不需要步骤 2–7。

配方:处理原始素材是竖屏拍摄但需要横屏输出

  1. 创建与源素材分辨率尺寸匹配的序列(而非目标横屏尺寸)。
  2. 将源素材导入时间线,位于其原始位置和缩放比例。
  3. 如果横屏版本确实需要,告知用户框架将包含两侧的竖直黑边(柱箱),因为 Premiere 的自动重构无法从竖屏素材生成的横屏帧数据。
  4. 如果用户接受柱箱,将序列设置更改为 1920×1080(或用户指定的目标分辨率),并将源素材居中。
  5. 或者,询问用户是否希望只提供竖屏版本(通常对于社交媒体来说完全可以接受)。
  6. 在导出前保存项目。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能