Communitygithub.com

montage-video

将原始素材一键剪辑成可发布的视频:自动去除沉默、犹豫(“嗯”)、重拍、导演旁白等,添加B-roll素材、动画、音效,并支持Final Cut Pro导出。

montage-video 是什么?

此技能可将原始录像素材自动剪辑为发布就绪的视频。它集成视频处理引擎`video-use`的剪辑和渲染能力,以及HyperFrames的动画渲染功能,因此无需重复实现这些基础功能。技能运行在本地Mac(Apple Silicon、macOS 14+)上,所有视频处理均在本地完成,不上传云端。 主要功能包括:自动识别并删除沉默、犹豫(例如“嗯”)、重拍和导演旁白(使用CrisperWhisper转录器);从用户本地库或Pexels/Pixabay等免费图库选取并叠加B-roll素材;根据品牌指南添加动画(如发言图表、勾选列表、地点标记、数字、章节标题、引用、行动号召、关键点等);在动画过渡处自动插入音效;并提供类似Frame.io的批注审阅播放器(支持版本对照、图像级评论和绘图)以及Final Cut Pro项目导出。 技能还内置视频类型识别功能(如YouTube长视频、短视频、培训教程、访谈),以自动调整处理逻辑。脚本将输出最终视频文件到桌面,同时保留一个工作文件夹(包含暂存文件、批注和Final Cut Pro项目),用户在审核完成后可手动删除。对于尚未实现的功能(如情感配乐、垂直剪辑、字幕、Premiere/DaVinci导出),技能会如实告知用户。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/fredericpuxeddu-lgtm/montage-video/tree/main

在你喜欢的 AI 中提问

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

文档

视频剪辑:从原始素材到可发布视频

用户拍摄、拖入文件,即可获得一份精剪后的视频。

此技能本身不做之事:剪辑和渲染引擎由video-use(需另行安装的公共技能)提供,动画由HyperFrames渲染。在此重复实现这些工具已有的功能会导致两个版本需要维护。

安装(每台机器一次)

此技能运行在配备Apple芯片(M1或更新款)的Mac上,需macOS 14或更高版本。所有操作均在本地完成:没有任何视频被上传到线上。按顺序检查并安装缺失的组件:

  1. 技能本身:将montage-video文件夹放入~/.claude/skills/。
  2. ffmpeg和ffprobe:运行brew install ffmpeg(Homebrew:https://brew.sh)。
  3. uv(用于管理隔离的Python环境):brew install uv。
  4. Node.js 18或更新版本(附带npx):brew install node。HyperFrames(负责渲染动画)会在首次渲染时自动下载(npx [email protected]),并附带其渲染所需的浏览器。
  5. video-use技能(剪辑和渲染引擎),需使用此技能已验证的精确版本:
    git clone https://github.com/browser-use/video-use ~/.claude/skills/video-use
    git -C ~/.claude/skills/video-use checkout 87f00c6
    
    如果存放在~/.claude/skills/video-use以外的位置,请通过VIDEO_USE_DIR环境变量指定其路径。此技能仅使用其helpers/render.py文件,该文件只需ffmpeg即可运行,无需ElevenLabs密钥。
  6. CrisperWhisper(用于识别“嗯”等犹豫的转录器):运行python3 scripts/derush.py installer(大小2.2 GB,存储在技能外部;如果可用空间低于5 GB将拒绝安装;请参阅去冗处理的第0步)。
  7. 用于分类B-roll素材库的视觉模型:无需额外操作,首次运行brolls.py indexer时会自动下载(基于mlx-vlm,通过uv管理)。
  8. Final Cut Pro:仅用于播放器中的“在Final Cut Pro中打开”按钮。
  9. Playwright及其WebKit浏览器:用于在Pexels和Pixabay上搜索免费B-roll素材,无需密钥或账户:运行npm install -g playwright,然后运行npx playwright install webkit。如果缺少,代理将使用其自带的浏览器进行搜索(请参阅“B-rolls”部分)。

使用一段真实短视频(一分钟足够)验证安装:依次运行derush.py analyser、monter、verifier。仅当这三个命令均成功执行后,才算安装完成。

文件存放位置

所有剪辑所需文件均放置在桌面上一个以视频名称命名的文件夹中:~/Desktop/剪辑文件<视频名称>(完成后可删除);在此名称中,撇号应使用印刷体(’),切勿使用直撇号('):剪辑引擎无法读取包含直撇号的文件夹路径(技能会因此停止并给出提示)。该文件夹在第一次操作时创建,无需询问用户存放位置。原始素材文件不会被移动或修改。 最终导出的文件也会输出到桌面,位于上述文件夹旁,采用易读的名称(例如“<视频名称> 剪辑完成.mp4”)。

不会自动删除任何文件:用户可在视频满意后自行删除工作文件夹。只要该文件夹存在,即可随时恢复修改或重新打开指向其文件的Final Cut Pro项目。剪辑完成后,告知用户最终导出文件和工作文件夹的位置,后者在用户不再需要修改时可移入废纸篓。如果桌面文件夹已通过iCloud同步,mv命令可能会失败:应使用cp -Rc复制,然后将原始文件夹移入废纸篓。

技能当前状态(如实告知调用者)

功能模块截至2026年11月11日的状态
1. 去冗处理:静音、犹豫、重拍、导演旁白已可用,自2026年11月11日起使用CrisperWhisper 2.0快速版检测犹豫;已在四个真实素材上测试
2. B-roll素材库:本地分类、选择、叠加、控制已可用,已在包含12个素材的测试库上测试
3. Pexels和Pixabay免费B-roll素材,无需密钥或账户自2026年11月11日起可用:通过Playwright或代理的浏览器(computer use)搜索;已在一次真实剪辑中使用三个素材测试
4. 品牌动画:38种设计师动画(自2026年11月11日起成为默认方式)和24种内置动画及其目录16:9格式已可用,已在一次真实剪辑中使用三个设计师动画测试;竖屏格式尚未测试
5. 审阅播放器(图像级评论、每条评论的时间线标记点、评论关联动画、时间范围、绘图、版本对照、比较)已可用,已在一次真实视频上完成端到端测试(3条评论,1个V3版本);设计文档在references/lecteur-facon-frame-io.md中
6. 音效:动画切入时的音效、勾选提示音、画面切换音效自2026年11月11日起可用,在叠加时自动添加;已在一次真实剪辑中使用八个音效测试
6 bis. 情感配乐待开发(无音乐库)
7. 竖屏片段、字幕、发布上传此技能不包含
8. 修改记忆手动:每次反馈后在文件末尾添加一条带日期的规则
9. Final Cut Pro导出(播放器按钮、独立轨道)已可用:项目已生成并符合Final Cut格式;音效置于独立轨道上;无调色或配乐。Premiere和DaVinci导出:待开发

涉及“待开发”模块的需求,在交付时如实说明:交付已完成的功能,说明缺失的部分。不要将仅完成去冗处理的视频称为“已剪辑视频”。

机器设置(首次使用时)

此技能不存储任何个人配置:它可能被多人使用。B-roll素材库路径、缓存和品牌插画配置存储在机器级别的设置文件中:~/.config/montage-video/reglages.json(独立于技能本身)。

python3 scripts/brolls.py reglage            # 查看当前设置

首次请求B-roll素材时,如果bibliotheque(素材库)设置为“无”,请一次性询问用户:“你是否有自己的B-roll素材文件夹?请提供路径。”然后运行brolls.py reglage --bibliotheque <文件夹路径>。如果用户没有,则仅使用免费图库,不再追问。品牌插画同理:若无设置,则使用默认样式输出,并向用户展示目录以供选择。

去冗处理:分步指南

scripts/derush.py 包含三个主要操作。所有操作均在本地Mac上运行,不上传任何数据。

0. 每台机器一次性操作:安装转录器。 犹豫(如“嗯”)由CrisperWhisper 2.0快速版(turbo)检测,这是一个经过再训练的Whisper模型,专门用于转录“嗯”等词汇。它存储在技能外部,路径为~/.local/share/montage-video/crisper(或$MONTAGE_VIDEO_DONNEES环境变量指定的路径):

python3 scripts/derush.py installer          # 2.2 GB,可用空间低于5 GB将拒绝安装

如果未安装,analyser命令将停止并提示错误:它不会静默地回退到其他方法。

1. 分析。

python3 scripts/derush.py analyser <视频文件> --edit-dir <工作文件夹>/edit

脚本使用CrisperWhisper进行逐词转录,通过音频波形检测静音,并生成edit/derush/<文件名>.json(数据)和edit/derush/<文件名>.md(逐词、逐句的文本,带时间戳)。工作文件夹为桌面上的视频文件夹(参见“文件存放位置”)。

为何使用CrisperWhisper:普通转录器会输出干净的文本,即不包含“嗯”,因而无法识别那些需要删除的犹豫部分。截至2026年11月11日在四个真实素材上测量(音频总时296秒,人工验证11处犹豫):CrisperWhisper快速版检测到10处,旧方法(使用包含大量犹豫的句子作为提示的Whisper,通过--moteur amorce选项启用)检测到5处;两种方法均未遗漏任何实际词语;CrisperWhisper大约慢4倍(152秒 versus 35秒)。我们仅删除实际词语之间的间隔:误报的犹豫不会导致任何内容被删除。

快速模型有时会错误标记“嗯”后面的词语的时间戳(时长为零,且位置位于犹豫内部):在一次测试素材中,有两个“que”字被错误标记,导致0.2秒的“嗯”音残留。crisper.py会根据音频信号重新标记时间戳(持续发声直到波谷,搜索范围限于0.4秒内及下一个词语),并将每次更正写入转录结果的corrige_au_son字段中。

2. 阅读文本并决定哪些内容需要删除。 这是代理(AI)的工作,而非脚本的任务:完整阅读<文件名>.md,然后创建一个retirer.json文件,格式为`{

相关技能