mcpField
P
Premiere Claude Bridge

Premiere Claude Bridge

本地服务
github.com媒体与设计23 天前更新

关于 Premiere Claude Bridge

Premiere Claude Bridge 是面向视频剪辑师的开源 MCP 服务,让 Claude Code 或 Codex 在 Premiere Pro 和 DaVinci Resolve Studio 中协助整理素材、转录和粗剪。它会检查交付结果,并跟随剪辑师手动保存的修改。

主要功能

  1. 01素材记录与离线语音转录
  2. 02按台词或主题查找素材
  3. 03创建粗剪并剪除空白段
  4. 04生成字幕并调整音频电平
  5. 05镜头匹配及 LUT 输出
  6. 06色彩、响度和交付质量检查

适用场景

  1. 01整理纪录片拍摄素材并查找镜头
  2. 02从长录音挑选片段制作短版
  3. 03将手动修改后的剪辑用于后续渲染
  4. 04在交付前拦截错误画面或音频

MCP 相关

作为 MCP 服务连接 Claude Code、Codex 或其他兼容客户端,并将操作交给 Premiere Pro 或 DaVinci Resolve Studio。服务提供 31 个工具,包含剪辑操作、分析与检查。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbpremiere-claude-bridge-0.3.0.mcpb0.3.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Premiere Pro 和 DaVinci Resolve 的 AI 助手剪辑工具

premiere-claude-bridge 是一款免费开源的 MCP 服务,可让 Claude Code 或 Codex 在你自己的项目中完成助手剪辑师的工作。你只需用日常语言提出要求。它会记录素材、转录语音、在时间线上搭建粗剪,并在交付前检查结果。

许可证:MIT MCP 状态:Beta 欢迎提交 PR

Premiere Pro 和 DaVinci Resolve 的 AI 助手剪辑工具

一句话安装

打开 Claude Code(Claude 桌面应用的 Code 选项卡也可以),然后发送以下内容:

Install premiere-claude-bridge from github.com/koptsev63/premiere-claude-bridge following its README, and take me to the green "Connected" label in Premiere.

Claude 会克隆仓库、完成所有设置,并告诉你何时重启 Premiere。然后:

  1. 在 Premiere 中打开 Window → Extensions → Claude Bridge。面板应显示“Connected to Claude”。
  2. 开始一个新聊天,并询问:“检查与 Premiere 的连接。”
  3. 编辑期间保持该 Claude 会话处于打开状态。

在 DaVinci Resolve Studio 中没有面板。将 Preferences → System → General → External scripting using 设为 Local,重启 Resolve,然后让 Claude 为 Resolve 设置项目。

你需要 Premiere Pro 2024 或更新版本,或 DaVinci Resolve Studio,以及 Claude 或 Codex 订阅。已在 macOS 上测试。Windows 有安装步骤,但目前还没人确认可用。想手动安装?请参阅手动安装。

可以让它做什么

整理素材

  • 查看整个素材文件夹并撰写日志:镜头中有什么、动作和声音出现在哪里、哪些片段晃动或倾斜。每个片段都会附有一条画格缩略图,汇总成一页。
  • 离线转录俄语、英语、匈牙利语和其他语言的语音,然后标出可能听错的词。
  • 按词查找素材:角色台词、某个主题、“夜晚那段很长的独白”。

构建剪辑

  • 按顺序将不同条拍摄素材放到时间线上,并标记故事节拍。
  • 剪掉停顿和无声片段。
  • 从长录制中挑选最精彩的片段,制作短版本。
  • 用相同素材制作两个风格迥异的粗剪版本,供你选择。
  • 为手动制作的剪辑创建变体:删去一个场景、插入一段内容,同时保留其他所有画格的位置。

声音和字幕

  • 在语音下方压低音乐音量,并平衡不同条拍摄素材的音量。
  • 输出 SRT 字幕和烧录字幕。

调色及移交调色师

  • 逐镜头将摄像机、AI 生成和无人机拍摄的画面匹配到统一色彩基准,然后烘焙出三种 LUT 风格,并用 ffmpeg 渲染。
  • 使用剪辑师的 Resolve .drt 制作调色用的“kolbasa”:将每个镜头重新链接到摄像机原始素材,移除调色,并输出 ProRes 422 HQ。如果 80 个镜头中有一个与剪辑师的剪辑不匹配,它就会在渲染前停止。

交付前检查

  • 如果调色导致高光过曝、肤色发红,或效果肉眼不可见,就拒绝该调色。
  • 如果文件比例错误、边缘晃动或没有声音,就拒绝该文件。

跟随你的操作。 移动剪辑点、重新输入字幕、保存项目。它会读取你保存的 .prproj,之后都基于你的版本继续工作。

它没有审美。决定权始终在你手中;它负责记录、整理和检查。

一位剪辑师的评价

“按照你的说明,一切都顺利安装好了。唯一遇到的问题是设置首次连接。”

“目前我只试着用助手在时间线上做基本的文件整理,比如按时间顺序排列重复镜头、剪掉空白阶段等。它处理得很好,一切都很直观。”

Andrey,电影剪辑师,2026 年 10 月

英文原文:“按照你的说明,一切都顺利安装好了。唯一遇到的问题是设置首次连接。”以及:“目前我只用助手在时间线上做基本的文件整理,比如按时间顺序排列重复镜头、剪掉空白阶段等。它处理得很好,一切都很直观。”

他遇到的问题现在已成为上文的步骤 2。

0.4 新功能:没人发现的错误镜头

一个真实的周日,正在制作电影节预告片。剪辑师在 Resolve 中用代理文件完成剪辑,并发送了一个 .drt 文件。调色师需要把同一段剪辑套用到 4K S-Log3 摄影机原始素材上。导入看起来很干净,时长也精确到帧,但 79 个镜头中仍有一个不对,而且这个错误反复出现了三次:

  1. Resolve 把一个人群镜头放到了原本应是环绕主角的镜头的位置。
  2. “修正”时相信了 .drt 里的编号,结果换成了第三个镜头。
  3. 剪辑师提供时间码后,镜头才终于正确。

每隔 7 秒取一帧的联系表看不到只有 3 秒的镜头。因此,core/drt_audit.py 会读取两次剪辑:一次读取 .drt,一次读取 NLE 实际铺设的内容,然后逐个片段进行比较。如果两者不一致,它就不会渲染,而是显示两种读取结果,并请你提供剪辑师的时间码。两个文件都不是真相,剪辑师才是。对于剪辑师反向播放或变速处理过的片段,程序会读取 Resolve 的速度映射,而不是 In 字段:反向播放的片段会以正向源素材片段的形式加入拉取清单,并附上需要翻转回来的备注;其他速度变化则会暂停处理,等待剪辑师提供时间码。

同一版本还包含:core/shotmatch.py 可将摄影机、AI 和无人机镜头统一到同一色彩基准,并将结果烘焙为 LUT,速度约为逐帧用 Python 调色的 60 倍。详情见 CHANGELOG。

演示

You:    "Open Premiere. Import all .MTS from ~/Desktop/Footage/.
        Create a 1080p25 sequence called 'Rough'. Place clips
        00118 (1-6s), 00149 (4-9s), 00130 (1-5s) on V1 in order.
        Add markers at every emotional beat per Murch's hierarchy."

Claude: ✓ Imported 108 clips into bin '01_Source_MTS'
        ✓ Created Rough — 1920x1080, 25fps, 3 V / 6 A tracks
        ✓ Placed 3 clips on V1, total 14 sec
        ✓ Marked 5 emotional beats: HOOK @0s, COMEDY @5s,
          PIT @8s, BREATH @11s, PAYOFF @13s

→ 此提示词的实际输出。完整的 12 段剪辑清单见 examples/grave-stakes-teaser/cutlist_v3.json,它用于制作案例研究预告片。

与其他 Premiere 和 Resolve MCP 服务的对比

现在 GitHub 上大约有 15 个 Premiere MCP 服务,还有几个用于 Resolve。大型项目各有所长,而本项目并不擅长这些方面,因此下面如实说明差异(截至 2026 年 10 月核查)。

其他项目更胜一筹之处

  • 带类型的时间线工具。 hetpatel-11/Adobe_Premiere_Pro_MCP 和 leancoderkavy/premiere-pro-mcp 提供数百个带类型的工具,用于效果、关键帧、转场和多机位剪辑。这里的这些操作都要通过 pr_eval_jsx 完成。
  • 安装。 它们提供 npm 包和安装程序。本仓库需要克隆并创建符号链接。
  • UXP。 两者都有 UXP 预览版。本面板仅支持 CEP。
  • Resolve 的覆盖深度。 samuelgursky/davinci-resolve-mcp 涵盖 Fusion、Fairlight 和免费版。本项目需要 Resolve Studio,且已在 macOS 上测试。

本项目提供、但它们的 README 未提及的功能

你的剪辑会同步回来读取已保存的 .prproj,并让后续每次渲染都符合你手动做出的修改
拒绝放行的检查关卡色彩、响度和交付检查会报错,而不是交付有问题的文件
时间线之前的工作自动记录原始素材、离线转录、删除静默片段、生成两个粗剪版本、添加字幕
一种剪辑方法将 Walter Murch 的六法则作为决策规则写入 skills/film-editing/SKILL.md
一个大脑,两款剪辑软件同一份剪辑列表可用于 Premiere 或 Resolve
精简的工具集共 31 个工具,其中一个是兜底工具 pr_eval_jsx:只有几十个,而不是几百个,因此模型无需搜索工具就能找到所需功能

如果你需要一个能操作 Premiere 中每个按钮的 Agent,请选择大型服务之一。如果你想要的是一位会检查自身输出、并遵循你手动修改的纪录片助理剪辑师,那么这个项目就是为你准备的。

我为什么创建这个项目

我是一名电影导演(拍过在电影节放映的短片,目前正在编剧实验室开发两部剧情长片——Doukhobors 入选 TFL Next,Grave Stakes 入选 Cinéfondation)。我经常摆弄 Adobe Premiere,每制作一支预告片,就要花 4 到 6 小时重复做那些枯燥的助理剪辑工作:观看所有每日素材、在 Excel 中记笔记、把精选片段拖到时间线上、修剪、调整时长。

我试过 Adobe 自己的 AI 工具。Adobe 官方 Creative Cloud 连接器宣称支持“Premiere 功能”,但实际提供的只有四种云端视频工具,和桌面应用毫无关系。Adobe 文档本身也写道:要按时间戳修剪,请使用 Adobe Premiere。于是我做了一个真正能完成这件事的工具。

其中不太显而易见的一点是:我不想要一个随机点击按钮的聊天机器人。我想要一个像剪辑师一样思考的助手。因此,本仓库的核心是 skills/film-editing/SKILL.md——将 Walter Murch 的 In the Blink of an Eye 压缩为机器可执行的决策规则。我的 AI 助手提出的每个剪辑点都会按“情感 > 故事 > 节奏 > 视线轨迹 > 二维 > 三维”的优先级排序,并且我可以针对每个镜头进行调整。

它已在我的实际项目 Grave Stakes 预告片中发挥作用。我希望其他导演和剪辑师也能使用同样的工具,而不必从头重新实现这套桥接功能。

诚实说明局限

这座桥接层让 Claude 能以编程方式完全控制 Premiere。随附的 watch 技能基本上解决了此前“只能使用静帧”的限制。仍然存在的问题:

  • 对帧以下时长的直觉。 Murch 级别的“修剪 8 帧”判断仍需要人工剪辑师完成。
  • 微表情的细微差别。 画面加转录能解决 80% 的问题;最后 20% 取决于品味。
  • 从零构建戏剧结构。 必须指定结构——该技能不会凭空创造故事主线。

定位为:资深助理剪辑师 + 自动化,而不是导演的剪辑师。


面向开发者

手动安装

前提条件

选择一个 Agent 和一个 NLE——桥接工具会将它们连接起来:

  • Agent:Claude Code 或 OpenAI Codex(两者都支持 MCP)——也可以使用任何兼容 MCP 的客户端
  • **NLE:**Adobe Premiere Pro 2024+ 或 DaVinci Resolve Studio(付费版 Studio——免费版没有脚本 API 或防抖功能)。Premiere 可在 macOS/Windows 上运行;Resolve 路径已在 macOS 上测试。
  • MCP 服务需要 Node.js 20+
  • 分析工具需要 Python 3.11+ 和 ffmpeg(相机抖动和水平线检测需要 OpenCV:pip install opencv-python-headless)

你只需用 日常语言交流 来驱动它——无需记忆命令。终端只用于一次性安装。

1. 克隆并安装
git clone https://github.com/koptsev63/premiere-claude-bridge.git
cd premiere-claude-bridge
cd mcp-server && npm install && cd ..
2. 注册 MCP 服务

将以下内容添加到 ~/.claude.json(Claude Code)或客户端的 MCP 配置中:

{
  "mcpServers": {
    "premiere": {
      "command": "node",
      "args": ["/absolute/path/to/premiere-claude-bridge/mcp-server/server.js"]
    }
  }
}
3. 将 CEP 面板安装到 Premiere

macOS:

defaults write com.adobe.CSXS.11 PlayerDebugMode 1
defaults write com.adobe.CSXS.12 PlayerDebugMode 1
ln -sf "$(pwd)/cep-extension" \
  ~/Library/Application\ Support/Adobe/CEP/extensions/com.koptsev.claude-bridge

Windows(PowerShell 管理员):

New-ItemProperty -Path "HKCU:\Software\Adobe\CSXS.11" -Name PlayerDebugMode -Value 1 -PropertyType String -Force
New-ItemProperty -Path "HKCU:\Software\Adobe\CSXS.12" -Name PlayerDebugMode -Value 1 -PropertyType String -Force
mklink /D "$env:APPDATA\Adobe\CEP\extensions\com.koptsev.claude-bridge" "$(Get-Location)\cep-extension"

重启 Premiere → 窗口 → 扩展 → Claude Bridge → 显示绿色的“Connected to Claude”。

首次连接(容易卡住的地方)
  1. 保持 Claude Code 会话处于打开状态。 MCP 服务是 Claude 会话的子进程。关闭会话(或桌面应用中的 Code 标签页)后,面板会变为“Disconnected”。
  2. 安装后开启新的聊天。 会话仅在启动时加载 MCP 服务,因此你执行安装操作的那个聊天暂时看不到桥接工具。
  3. 先进行健康检查:“使用 pr_status 检查桥接状态。”如果回复中包含你的 Premiere 版本和项目名称,就表示一切已连接就绪。
4.(可选)启用分析工具
pip install -U pillow opencv-python-headless openai-whisper
brew install yt-dlp ffmpeg          # macOS
# Linux: sudo apt install ffmpeg && pip install yt-dlp

openai-whisper 是 /watch 使用的离线转录后端——无需 API 密钥,对匈牙利语、俄语等语言的处理能力远胜云端的 whisper-1。

→ 详细安装说明与故障排除:docs/install.md

工具(Claude 可以调用的 MCP 命令)

工具功能
pr_status桥接健康检查 + Premiere 版本 + 活动项目的信息
pr_get_project_info列出所有素材箱 + 项目项(附带可供引用的 nodeId)
pr_get_active_sequence序列尺寸、fps、轨道数量
pr_list_timeline按轨道完整列出剪辑(入点/出点、开始/结束、时长)
pr_get_selected时间线中当前选中的剪辑
pr_get_playhead / pr_set_playheadCTI 控制
pr_add_marker在指定时间放置标记,并设置名称 + 注释
pr_export_ame使用 .epr 预设将导出任务加入 Adobe Media Encoder 队列(匹配源;不接受代理预设)
pr_import_captions一次导入一个 .srt 文件,每个文件对应一条字幕轨道
pr_list_video_effectsPremiere 识别的效果名称(本地化 UI)
pr_add_video_effect按英文名称或本地名称添加效果,并通过组件数量验证
pr_eval_jsx应急入口——运行任意 ExtendScript 代码,并返回最后一个表达式的结果
pr_ping / pr_dialog_check快速健康检查;“Premiere 是否在等待点击?”(模态窗口检测器,0.6)
pr_probe_media / pr_import_media编解码器和磁盘空间检查(AV1/VP9 会以仅含声音的方式导入)、复制 H.264 范围、每次调用导入一个文件
pr_make_sequence从剪辑范围创建序列,无需打开任何对话框:尺寸、fps、素材箱;读取并返回设置
pr_set_motion / pr_set_motion_keyframes设置剪辑的缩放 / 位置 / 旋转(单位为像素);在镜头切换处保持关键帧
pr_add_markers / pr_list_markers批量处理标记,并验证数量
pr_open_sequences / pr_activate_sequence序列标签页和活动序列
pr_get_timeline / pr_get_inout任意序列中带秒数边界的剪辑;手动修剪后的渲染范围
pr_delete_sequence / pr_move_to_bin / pr_list_bin / pr_save_project项目整理
pr_build_sequences根据一份规范创建多个序列:导入、创建、运动、关键帧、标记、打开

→ 完整工具参考 + ExtendScript 配方: docs/tools.md

0.6 新增:无需点击即可创建序列

需要从一段播客中创建 10 个竖屏短视频,并将它们制作成 Premiere 序列(24.10.2026)。过程中接连出了 4 个问题,现在都由桥接函数解决:

  • createNewSequence(name, presetId) 会打开“Создать эпизод”对话框,导致桥接超时挂起。pr_make_sequence 改用无对话框的路径(对项目项调用 setInPoint/setOutPoint、createNewSequenceFromClips、getSettings/setSettings),并读取设置进行验证。
  • 从 yt-dlp 导入的 AV1 源文件“成功”导入后却只有声音。pr_import_media 会先运行 ffprobe,拒绝 AV1/VP9/VP8/4:4:4,并提供只复制所需范围的 H.264 文件所用的 ffmpeg 命令(也可通过 convert: true 运行该命令),同时拒绝所有可用磁盘空间不足 2 GB 的情况。
  • 任何模态窗口都会让所有工具卡住,且没有任何说明。pr_dialog_check(以及每个 0.6 工具在超时时)会告知你具体情况:面板的调试端口仍会响应,但脚本线程被阻塞;它会显示屏幕上额外窗口的名称,并用俄语告诉你要按哪个按钮。
  • 运动关键帧两次给出了错误信息:setInterpolationTypeAtKey 传入 5 表示 Bezier(保持模式是 4);关键帧时间采用媒体时间(inPoint + t),而 getValueAtTime 无论你使用哪种时间基准都会一致地返回结果。两者都是通过导出帧并与 ffmpeg 预览进行对比后发现的,而非通过 API 发现。pr_set_motion_keyframes 会进行转换并保持关键帧。

所有这些也都是 pk.js 命令(node mcp-server/pk.js make-seq ...),因此不使用 MCP 面板的会话也能实现同样的功能。验收测试中,使用 10 个序列的规范调用 pr_build_sequences 耗时 6 秒;通过读取每个序列的时间线、Motion 值和标记名称,逐一完成验证。

多个 Claude 会话争抢端口时的直连路径

MCP 服务占用一个 WebSocket 端口(9876),面板会连接持有该端口的服务器实例。从 0.5.0 开始,调用工具的会话会接管端口,因此这种情况很少需要处理。如果有旧版桥接程序(在 0.5.0 之前启动)仍占着端口,或者你想在完全不启动 MCP 服务的情况下运行脚本,这种方式仍然很有用。

mcp-server/pk.js 不使用该端口。它会连接到面板自己的 Chromium 调试端点(端口 8088,在 cep-extension/.debug 中声明,并且已由 PlayerDebugMode 安装步骤启用),并像面板一样调用 evalScript。任意数量的会话都可以同时使用它。

node mcp-server/pk.js info                       # version, project, active sequence
node mcp-server/pk.js eval 'app.project.name'    # one ExtendScript expression
node mcp-server/pk.js file build_sequence.jsx    # a whole script
echo 'app.version' | node mcp-server/pk.js eval -
node mcp-server/pk.js status                     # 0.6: health + "is Premiere waiting for a click?"
node mcp-server/pk.js make-seq --name "ПОДКАСТ 01" --file /abs/clip.mp4 --in 10 --out 43.6 --w 1080 --h 1920 --fps 29.97 --bin "ПОДКАСТ шортсы"
node mcp-server/pk.js build --spec spec.json     # many sequences from one spec

不带参数运行 node mcp-server/pk.js 会列出所有带类型的命令(probe、import、make-seq、motion、motion-keys、markers、open、activate、timeline、inout、delete-seq、move、ls、build、save)。这些命令与 MCP 工具共用 mcp-server/lib/ops.js,因此两种路径的行为相同。

Node 22+ 无需安装任何包;较旧版本的 Node 会使用 npm install 已安装到 mcp-server/ 中的 ws。Premiere 必须正在运行,并且 Claude Bridge 面板已打开。结果就是 evalScript 返回的字符串,因此请让脚本执行 return JSON.stringify(...)。告诉你的 Agent:“如果 pr_status 显示面板未连接,就使用 node mcp-server/pk.js”。

Resolve 端也有类似的应急入口,还能查看时间线: python -m core.adapters.resolve_run exec script.py 会运行你的 Python 脚本,并预加载 resolve、project、timeline 和 mp;still / grab 则会将合成后的时间线帧作为 PNG 返回。

交付循环(实际交付剪辑成片的流程)

渲染并不等于交付。编辑者必须能够打开项目、提出异议并移动剪辑,因此这个流程最终会回到机器上:

cutlist → sequences in the editor's own project → he edits and saves →
core.prproj reads his version → renders + grade conform to it →
core.colorgate passes it or sends it back
模块用途
core/prproj.py读取已保存的 .prproj:序列、字幕提示和画面剪辑。根据剪辑列表将 Razor 切开的片段重新拼接;未改动的行按顺序从旁车文件中解析,绝不根据重叠关系匹配(转录时间和剪辑时间是两种不同的时钟)
core/colorgate.py双向色彩门控。上限:检查剪切、过度饱和,以及相对于底片的肤色 Cr 和饱和度。下限:检查平均 CIE ΔE,确保肉眼看不出差异的色彩效果也无法通过。assert_ok() 会抛出异常,而不是放行交付
core/qc.py检查渲染文件的几何形状和残余抖动,并验证交付完整性:解码正常、尺寸和帧率符合承诺、包含音频
core/loudness.py平衡各镜头的音量,然后统一应用静态增益和真峰值限制器,使其达到交付目标。门控指标:综合 LUFS、真峰值、镜头间差异
core/screen_comp.py屏幕替换:将片段合成到素材中的手机、显示器或电视屏幕上,并跟随 ECC 摄像机跟踪,采用色彩精确的 Rec.709 输入/输出。门控要求:屏幕外的素材必须保持不变
core/adapters/resolve_run.py从 shell 使用 Resolve:导出时间线、将合成帧作为 PNG 返回(still、grab),以及用 exec 运行你自己的脚本
core/流程的其余部分:剪辑列表 IR、适配器、字幕、闪避、降噪、精彩片段、节拍
# does this grade burn the picture — or is it invisible?
python -m core.colorgate base.mov graded.mp4 --frames 8 --upto 60

# what did the human actually approve in there?
python -m core.prproj "reel.prproj" --srt subs.srt

# even out the takes, hit -14 LUFS / -1 dBTP, and prove it (exit 1 = do not ship)
python -m core.loudness master.mov deliver.mp4 --shots 0,5.6,11.2

# put a clip inside the TV in the shot
python -m core.screen_comp plate.mp4 content.mp4 out.mp4 --config screen.json

技能

film-editing/

将 Walter Murch 的剪辑操作系统转化为 Claude 的决策规则:

  • 六法则(情感 51% > 故事 23% > 节奏 10% > 视线引导 7% > 二维 5% > 三维 4%)
  • 眨眼理论、误导、概念剪辑、成对思考、决定性瞬间
  • 预告片/先导片/蒙太奇/访谈/标题卡的节奏表
  • 俄语↔英语术语对照

以及相关工具:

  • tools/analyze_clips.py — 文件夹 → HTML 联系表(运动 + 音频 + 地平线 + 条带)
  • tools/horizon_detect.py — 天空与地面分割 + 用于倾斜检测的 Hough 后备方案
watch/ (从 bradautomates/claude-video 引入,MIT)

让 Claude 真正观看视频片段。通过三种 Whisper 后端提取 30-100 帧和文字稿:

  • local(openai-whisper,无需密钥,离线,免费)——推荐
  • Groq whisper-large-v3(云端,速度最快,约 $0.0002/分钟)
  • OpenAI whisper-1(云端,速度最慢,约 $0.006/分钟)

鸣谢请参阅 skills/watch/ATTRIBUTION.md,集成工作流请参阅 skills/film-editing/SKILL.md §XIV。

架构

Claude 如何驱动 Premiere——三个进程,四次跳转

请参阅 docs/architecture.md。值得注意的设计选择:

  • 调用会话获得面板——每个 Claude 或 Codex 会话都会启动自己的服务,且同一时间只有一个服务能占用端口 9876。从 0.5.0 起,接收到工具调用的服务会通过同一端口上的 HTTP 请求占用者释放端口,然后绑定端口并等待面板重新连接;如果占用者正在处理请求,它会一直占用端口,直到处理完成。系统不会轮询。若占用者不是 0.5.0+ bridge,则绝不会触碰它:错误信息会指出其 pid。mcp-server/pk.js 仍通过调试端口连接面板(多个 Claude 会话争抢端口时的直接路径)。
  • ExtendScript JSON polyfill——Adobe 从未在其 ES3 引擎中提供 JSON。没有这个 polyfill,所有带类型的工具都会在 JSON.stringify 上失败。
  • 自修复套接字查找——如果 CEP 面板重新加载后缓存的 panelSocket 失效,则采用仍处于活动状态的 wss.clients[0]。

这些问题都是在 Grave Stakes 案例研究中发现的真实 bug。请参阅 CHANGELOG.md。

路线图

  • v0.1 — MCP bridge + 电影剪辑技能 + analyze_clips
  • v0.2 — 打包 /watch 技能、本地 Whisper、地平线检测 v2
  • v0.3 — trailer-bridge 技能包——7 种类型专用方案(动作、剧情、喜剧、恐怖、纪录片、惊悚、爱情)+ LUT 预设 + 自动渲染
  • v0.4 — 多机位音频同步——通过音频波形 xcorr 匹配摄像机角度,以编程方式构建多机位片段
  • v0.5 — 人脸/情绪检测——对每个片段运行 mediapipe → “演员在这条素材中的情绪高光时刻在哪里?”
  • v0.6 — 发布到 MCP Registry——官方收录 + 用于自动发布的 GitHub Action
  • [~] v1.0 - 通用 NLE 核心——通过 OpenTimelineIO 剪辑列表将剪辑逻辑与 Premiere 解耦;Premiere、DaVinci Resolve(Studio Python API)和 Final Cut(FCPXML)成为可互换的后端(#6)。基础已在 core/ 中落地:剪辑列表 IR + 无损 OTIO 往返转换、功能矩阵、全部三个适配器、与 NLE 无关的审核循环,672 项测试全部通过。**已在 Resolve Studio 21 上完成 Resolve 适配器端到端验证。**剩余工作:conform/代理素材重链接、功能探测。

→ 想认领其中一项?提交带有 claim 标签的 issue。

为什么“通用 NLE 核心”不等于“为每款编辑器提供相同的桥接程序”

这三款编辑器的集成方式有根本差异,因此 v1.0 采用的是适配器设计,而不是复制 Premiere 桥接程序(epic #6):

  • 剪辑思路与 NLE 无关。 skills/film-editing/(Murch 的六法则)和 /watch 感知层负责分析素材和剪辑点,而不是 Premiere。它们不会改变。
  • 一份剪辑清单,以 OpenTimelineIO 表示。 剪辑只需确定一次,形成 OTIO 时间线(Grave Stakes 示例中的 cutlist_*.json 已正式化)。OTIO 是行业交换标准——Resolve 可原生读取和写入,FCPXML 有 OTIO 适配器,Premiere 则通过此桥接程序处理。
  • 每款 NLE 配备轻量驱动程序,使用相同的动词集。 Premiere = 现有的 CEP/ExtendScript 桥接程序。DaVinci Resolve = 通过官方脚本 API 直接使用 Python(需要 Resolve Studio——免费版禁用了外部脚本功能)。Final Cut = FCPXML 往返处理(文件交换,而非实时控制)。

总之:一次做出的决策可以输出到任何编辑器。“AI 控制 Resolve”已经相当常见(已有多个 MCP 服务);这里的差异化优势在于上层的剪辑操作系统,而非底层驱动程序。

贡献

欢迎提交 PR、问题和技能包——简要指南请参阅 CONTRIBUTING.md。

最简单的贡献方式:

  • 🐛 如果安装步骤在你的 OS 上无法正常运行,请提交问题
  • 🎬 为你熟悉的类型(音乐视频、播客、体育、婚礼)提交一个 SKILL.md
  • 📺 录制一段 60 秒的屏幕演示,展示你自己的使用场景 → 我会将它置顶在 README 中
  • 🌐 将 film-editing SKILL.md 翻译成你的语言

请留意 good first issue 和 help wanted 标签。

许可证

MIT——详见 LICENSE。随附的 skills/watch/ 也采用 MIT 许可证,版权归 Bradley Bonanno 所有——详见 skills/watch/ATTRIBUTION.md。

状态

🟡 Beta v0.3。 已使用真实的节展送审纪录片素材完成端到端测试(Grave Stakes,108 个原始 .MTS 片段,共 4.4 GB),随后又在第二个制作项目中从头到尾完成测试——一支在 Premiere 中剪辑的竖版公告短片,经 DaVinci Resolve 整合并调色,并在导演自己的项目文件上运行了上述交付流程(2026 年 8 月)。目前已有三位外部剪辑师使用;第一位于 2026 年 10 月自行完成安装。

安装遇到问题或发现 Bug? 请在此提交问题或发起讨论。最新消息会发布到 Telegram 频道 @koptsev_AI(俄语)。

作者: Vladimir Koptsev——电影导演,巴塞罗那。TG @koptsev_AI · [email protected]

  • core/hits.py - 音乐重音(强拍)和“强拍处切换”验证,容差为两帧;core/xmeml.py - 根据剪辑清单为 Premiere 编写 FCP7 XML(0.5.1)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。