← 查看文章

视频

让 AI 剪视频,先别急着让它看画面

深拆 browser-use/video-use:它把视频先转成 transcript 和时间轴图,再让 Agent 生成 EDL、渲染、自检。

让 AI 剪视频,先别急着让它看画面

我以前觉得,让 AI 剪视频,最难的一步应该是“让它看懂画面”。

后来发现,这个想法有点想当然。

一条 10 分钟视频,按 30fps 算就是 18000 帧。你让模型一帧帧看,它当然可以看一部分,但这不是剪辑工作最划算的入口。

剪口播、访谈、教程、产品发布时,很多判断先发生在声音里:

  • 哪句话说错了
  • 哪段停顿太长
  • 哪个词前后能不能切
  • 哪个反应要不要留
  • 字幕应该跟到哪里

画面要看,但不该一开始就把所有帧都倒给模型。

browser-use/video-use 的思路很清楚:先把视频整理成 AI 能读的材料,再让 Agent 动手剪。

它的 README 里有一句话可以直接抓住这个思路:LLM never watches the video, it reads it。

这句话听起来有点绕,实际很朴素。它先让程序把视频变成文字、时间戳、波形和少量时间轴图,模型读这些结构化材料,再决定怎么剪。

video-use 的核心流程:转写、时间轴图、EDL、渲染、自检

1. 问题不在“AI 会不会剪”,而在素材怎么给

你直接对 AI 说:

帮我把这些素材剪成一条发布视频。

这句话太轻了。

素材有几段?每段多长?有没有重复 take?说话人是不是中途说错?哪几句是核心信息?字幕要不要烧录?竖屏还是横屏?

如果这些信息都没整理,AI 只能临场乱翻。

video-use 先做一件笨事:把素材变成一个编辑目录。

它规定所有输出都放到用户素材目录下面的 edit/

<videos_dir>/
├── <source files, untouched>
└── edit/
    ├── project.md
    ├── takes_packed.md
    ├── edl.json
    ├── transcripts/
    ├── verify/
    ├── preview.mp4
    └── final.mp4

这一步很像剪辑前的素材整理。

源文件不动,转写缓存起来,剪辑决策写成 edl.json,预览和最终成片分开。Agent 不在聊天里“凭感觉剪一下”,它在一个明确的工程目录里工作。

2. 它让 AI 读视频的两层材料

第一层是 transcript。

helpers/transcribe.py 会调用 ElevenLabs Scribe,把视频音频转成 word-level transcript。word-level 要保住,因为后面剪点要落在单词边界上。

多段素材时,helpers/transcribe_batch.py 会批量转写。

接下来,helpers/pack_transcripts.py 把这些 JSON 转成一个更适合模型读的 Markdown 文件:takes_packed.md

这个文件按 silence 和 speaker change 把词拼成 phrase,每行长这样:

[002.52-005.36] S0 Ninety percent of what a web agent does is completely wasted.
[006.08-006.74] S0 We fixed this.

模型读它,就能知道哪句话在什么时间出现,谁说的,中间有没有停顿。

第二层是按需视觉。

helpers/timeline_view.py 不是让模型扫完整条视频。它只在需要判断剪点时生成一张 PNG:上面有抽帧 filmstrip、波形、单词标签和静音区。

比如模型看到 transcript 里有一个停顿,但不确定这个停顿是不是自然呼吸,就可以对那一小段跑 timeline_view.py。看完再决定切不切。

video-use 聪明就聪明在这里:文字是主视图,画面是钻取工具。

不是不要看画面。是别一上来乱看。

3. 剪辑前,它先让 Agent 说策略

SKILL.md 里有 12 条 hard rules。

我挑几条最能说明它性格的:

Subtitles are applied LAST in the filter chain
30ms audio fades at every segment boundary
Never cut inside a word
Strategy confirmation before execution
All session outputs in <videos_dir>/edit/

这些不是审美偏好,是生产正确性。

字幕如果不最后烧录,overlay 可能把字幕盖住;剪点没有 30ms fade,音频容易爆小响;切进单词中间,口播会像被咬掉一口。

它还要求 Agent 先提策略,再等用户确认。

一个正常流程大概是:

素材盘点
转写
打包 takes_packed.md
读 transcript
按需生成 timeline view
提出剪辑策略
等用户确认
生成 edl.json
渲染 preview
自检剪点
输出 final.mp4

这里我觉得很像一个靠谱剪辑师:先告诉你“我准备怎么剪”,再动手。

很多 AI 工具喜欢直接执行,仿佛快就是好。视频不太一样。剪辑里有取舍,哪句保留、哪个停顿留白、哪个反应是笑点,不能全靠自动。

video-use 没有把人排除出去,它把人放在确认策略的位置。

4. render.py 为什么要单独讲

只看前面,你可能会以为它只是一个“转写 + 提示词”的 Skill。

不是。

它背后有脚本做实际剪辑合成,最重的是 helpers/render.py

这个脚本按 EDL 做几件事:

  1. 先把每个片段按 start/end 抽出来。
  2. 对每段做调色和 30ms 音频 fade。
  3. 用 concat 拼成基础视频。
  4. 如果有 overlay 或字幕,再走 filter graph。
  5. 字幕最后进 filter chain。

它还处理一些视频里很现实的问题,比如 HDR 转 SDR、竖屏素材、字幕安全区、输出时间轴字幕偏移。

这里的重点不是“用了 FFmpeg”。很多工具都用 FFmpeg。

重点是它把剪辑里的易错点写成了 hard rules,再让脚本按这些规则执行。

比如字幕时间不能继续用原素材时间。你把几个片段拼到一起以后,字幕要按输出时间重新计算。SKILL.md 里就把这条写成规则:

output_time = word.start - segment_start + segment_offset

这种细节很烦,但很值钱。

因为视频工具一旦错在这里,表面上也许能渲染出来,实际字幕全飘了。用户看到的是“AI 剪得不靠谱”,根子在工程细节没兜住。

5. 公开反馈:热度高,问题也很工程

这个项目热度不低。GitHub API 在 2026 年 7 月 17 日返回的数据是:16981 个 star,2044 个 fork,open issues 是 56

star 不是质量证明,但能说明这个需求很大:大家确实想用 Agent 剪视频。

更有意思的是它的 issue/PR。

PR #103 提到了 CJK caption support、Windows fixes、EDL-level style/audio overrides。中文/中日韩字幕和跨平台问题已经进入维护视野。

PR #104 增加了 --vertical 输出,处理竖屏 blur-pad 和 split-stack layout。对短视频平台来说,这不是小功能。

PR #109 修的是 portrait sources with rotation metadata。手机拍的视频经常带旋转元数据,这类 bug 很实在,也很剪辑工具。

这些反馈给我的判断是:video-use 已经不是纯概念 demo,它在踩真实视频工程里的坑。

当然,它也不是小白网页工具。它需要 FFmpeg,需要 ElevenLabs API key,需要 Agent 能跑本地脚本。你不能期待它像剪映模板一样打开就用。

6. 怎么装、怎么用

仓库地址在这里:

https://github.com/browser-use/video-use

普通用户不需要自己照着命令敲。把这个 GitHub 地址给 AI,然后说:

帮我安装 browser-use/video-use。
先读 install.md,再读 SKILL.md。
装好以后告诉我怎么把素材文件夹交给它。

准备剪的时候,最好给它一个明确任务:

我有一个素材文件夹,里面是 6 段产品发布口播。

目标:
- 剪成 60 秒以内
- 竖屏 9:16
- 保留产品定位、核心功能、结尾 CTA
- 删掉口误、重复 take 和太长停顿
- 加中文字幕

请先转写和盘点素材,给我一个剪辑策略。等我确认后再执行。

这个请求有两个好处。

它告诉 Agent 目标,也提醒它先确认策略。

video-use 最怕的用法,是让它像魔法按钮一样“直接剪”。那样就把它最有价值的设计绕过去了。

7. 如果自己实现一套,该怎么写

如果你想写一个类似的 Skill,不要从“AI 自动剪视频”这句话开始。

先从材料结构开始。

最小版本可以这样写:

适用场景:
剪口播、访谈、教程、产品发布视频。

输入:
- 一个素材文件夹
- 目标时长
- 平台比例
- 必留内容
- 必删内容
- 字幕和风格要求

中间产物:
- transcripts/*.json
- takes_packed.md
- timeline PNG
- edl.json
- preview.mp4
- final.mp4

工作流:
1. 盘点素材
2. 转写音频
3. 打包 transcript
4. 让 Agent 根据 transcript 提策略
5. 用户确认
6. 生成 EDL
7. 用 FFmpeg 渲染
8. 在剪点附近自检
9. 输出 final

再把不能错的事写成 hard rules:

剪点不能切进词里。
字幕要按输出时间轴重算。
每个剪点要做短 fade。
预览通过自检后再给用户看。
所有输出进 edit/,不要污染源素材目录。

自己实现 Agent 剪辑 Skill 的结构

写到这里,这个 Skill 才算有骨架。

剩下的审美,交给策略阶段。你可以让用户选快节奏、纪录片感、产品发布、教程风,但底层材料和剪辑正确性要先站住。

8. 我的判断

我会重点学的地方,不是它“能剪视频”。

能剪视频的工具很多。

它厉害在这件事:它没有让 AI 硬吞视频,而是先把视频变成可读、可查、可执行的材料。

这对写 Skill 很有启发。

凡是素材很大、信息很多、模型直接处理很贵的任务,都可以学这一招:先做一个中间表示。视频可以是 takes_packed.mdtimeline_view.png,代码可以是 symbol graph,网页可以是 Markdown,电影拉片可以是 frames + subtitles + schema。

AI 不是少看东西就会变弱。

有时恰恰相反。

它少看一点噪音,才能把判断用在刀口上。

如果你只是想用:

把仓库地址交给 AI,让它安装后处理一个素材文件夹。第一次不要丢太多素材,先拿一两段口播试流程。

如果你想学着写:

先设计中间产物,再写 prompt。别上来就写“帮我自动完成某某任务”。

你可以这样写自己的 Skill

适用场景:让 Agent 辅助剪口播、访谈、教程、产品视频。

触发条件:用户把视频素材放进文件夹,并说“帮我剪成一条视频”。

输入:原始视频文件、目标时长、平台比例、保留/删除偏好、字幕和调色要求。

输出:edit/final.mp4edl.jsontakes_packed.md、字幕、预览和验证文件。

工作流:先转写,再读 transcript,再按需看 timeline view,确认策略后生成 EDL,最后渲染和自检。

关键约束:不能没确认策略就剪;不能切进单词;字幕最后烧录;每个剪点做短 fade;输出不能写进 Skill 仓库。

可选工具:FFmpeg、ElevenLabs Scribe、PIL、Remotion、HyperFrames、Manim。

可改造方向:针对中文口播增加中文 filler 检测、视频号字幕安全区、中文标题卡和更适合国内平台的封面生成。