📄 文档管理系统

← 返回列表

browser-use/video-use:把视频剪辑变成「聊天」,11.5k Stars 的 Claude Code 视频编辑工具

default 📅 创建:2026-06-30 03:27:16 🔄 更新:2026-06-29 19:27:16
👁️ 预览 & 复制到公众号 ✏️ 编辑

browser-use/video-use:把视频剪辑变成「聊天」,11.5k Stars 的 Claude Code 视频编辑工具

browser-use(让 AI agent 操作浏览器的那个项目,10w+ Stars)又开了一个新坑:video-use

仓库:https://github.com/browser-use/video-use
Stars:11,569 / Forks:1,542
License:MIT
创建:2026 年 4 月 12 日(不到 3 个月)
最近提交:2026 年 5 月 15 日
语言:Python

它要做的事情:把视频剪辑这件事变成「聊天」——你把原始素材扔进一个文件夹,对 Claude Code 说一句「把这些剪成一个发布视频」,它吐给你一个 final.mp4


它和 Premiere / DaVinci 不一样

video-use 的定位不是替代专业剪辑软件,而是给「不想学剪辑」的人一个对话入口。

输入:一个文件夹,里面是你的原始素材(口播 / 蒙太奇 / 教程 / 旅行 / 采访都行,没有预设)

过程:在 Claude Code 里说「edit these into a launch video」,agent 会:

  1. 清点素材
  2. 提出剪辑策略
  3. 等待你确认
  4. 产出 final.mp4

所有产物都放在 <videos_dir>/edit/,技能目录不会被污染。

适用场景特别清晰:口播视频自动去掉 ummuh、卡顿;连续拍摄镜头自动挑最好的 take;自动上字幕、自动配色、自动加 30ms 音频淡入淡出避免爆音。


核心设计:让 LLM「读」视频,而不是「看」视频

这是 video-use 最巧妙的地方——LLM 从来不直接看视频

naive 做法是把视频每帧抽出来给 LLM「看」:30,000 帧 × 1,500 tokens = 45M tokens 的噪声。这显然不可行。

video-use 用了两层抽象让 LLM 能从结构化数据里剪辑:

Layer 1 — 音频转写(始终加载)

调用 ElevenLabs Scribe 一次,把素材转成 word-level 时间戳 + 说话人识别 + 音频事件((laughter)(applause)(sigh))。

所有 take 打包进一个 ~12KB 的 takes_packed.md 文件,LLM 的主要阅读视图:

## C0103  (duration: 43.0s, 8 phrases)
  [002.52-005.36] S0 Ninety percent of what a web agent does is completely wasted.
  [006.08-006.74] S0 We fixed this.

Layer 2 — 可视化合成(按需加载)

timeline_view 工具能根据时间范围生成胶片 + 波形 + 字幕的合成 PNG。只有在决策点(模糊停顿、take 对比、剪辑点检查)才调用。

总消耗:12KB 文字 + 几张 PNG。相比朴素做法减少了 4 个数量级。

类比 browser-use 给 LLM 一个结构化的 DOM 而不是截图——video-use 把同一个思路用到了视频上。


完整剪辑流水线

Transcribe ──> Pack ──> LLM Reasons ──> EDL ──> Render ──> Self-Eval
                                                              
                                                              └─ issue? fix + re-render (max 3)

每一步对应一个 Python 脚本(在 helpers/ 目录下):

  1. Transcribe:ElevenLabs Scribe 转写
  2. Pack:打包成 takes_packed.md
  3. LLM Reasons:Claude Code 读取文本 + 偶尔的 PNG,做剪辑判断
  4. EDL:生成编辑决策表(Edit Decision List),本质上是时间码指令
  5. Render:ffmpeg 按 EDL 渲染
  6. Self-Eval:在每个剪辑边界用 timeline_view 检查渲染结果,发现问题自动重渲(最多 3 次)

你看到的预览永远是 self-eval 通过后的版本。


12 条硬规则

video-use 的 SKILL.md 里写得很清楚:品味可以自由发挥,但生产正确性不能违反。12 条硬规则:

  1. 字幕必须最后加——加在 filter chain 末尾,否则会被其他覆盖层挡住
  2. 分段提取后无损 -c copy 拼接,不要单 filtergraph 跑全程——否则加覆盖层会双重编码
  3. 每个分段边界加 30ms 音频淡入淡出——afade=t=in/out 防爆音
  4. 覆盖层用 setpts=PTS-STARTPTS+T/TB 重置时间基——否则覆盖窗口里会出现动画中间帧
  5. 主 SRT 用输出时间线偏移——output_time = word.start - segment_start + segment_offset
  6. 永远不要在词中间切——所有剪辑点对齐到 word 边界
  7. 每个剪辑边界要 pad——工作窗口 30-200ms(Scribe 时间戳有 50-100ms 漂移,pad 吸收掉)
  8. 只接受词级 ASR——不接受 SRT/phrase 模式(丢失亚秒级停顿信息)
  9. 每个素材的转写缓存——没改源文件就不要重新转写
  10. 多个动画用并行 sub-agents——一个动画一个 agent
  11. ....还有 2 条

剩下的就属于「艺术自由」了——字体、颜色、节奏、风格都可以根据素材和用户意图自己判断。


安装:依赖 Claude Code + ffmpeg + ElevenLabs

把这段 prompt 贴给 Claude Code / Codex / Hermes / Openclaw:

Set up https://github.com/browser-use/video-use for me.

Read install.md first to install this repo, wire up ffmpeg, register the skill with whichever agent you're running under, and set up the ElevenLabs API key  ask me to paste it when you need it. Then read SKILL.md for daily usage, and always read helpers/ because that's where the editing scripts live. After install, don't transcribe anything on your own  just tell me it's ready and wait for me to drop footage into a folder.

Agent 自己会:
- git clone 到 ~/Developer/video-use
- uv sync(或 pip install -e .)
- brew install ffmpeg(可选 yt-dlp 下载在线素材)
- 让你贴一次 ElevenLabs API key
- 在 ~/.claude/skills/video-use(或 ~/.codex/skills/)创建软链接

完成后告诉用户「准备好了」就停,不要自作主张开始转写。

依赖只有这些:
- Python 包:requests / librosa / matplotlib / pillow / numpy
- 系统:ffmpeg + ffprobe
- 外部 API:ElevenLabs(必须)
- 可选:HyperFrames / Remotion / Manim(生成动画时按需装)


适合谁用

适合
- 经常做口播视频、不想学剪辑的人
- 拍了一堆素材想快速出成片的创作者
- 想给现有工作流加一个「AI 编辑入口」的小团队
- 已经用 Claude Code / Codex / Hermes 的 agent 用户

不适合
- 需要精细时间线控制的专业剪辑师——这种还是用 DaVinci
- 想要多轨道合成、复杂调色的项目——这种 video-use 不擅长
- 不想用 ElevenLabs 的项目——转写 API 目前是硬依赖


几个值得一提的细节

Session 记忆project.md 会记录上次编辑的状态,下次开 agent 直接接着改。

总是先问再做:LLM 不会自作主张剪片,会先列出剪辑策略等你确认。

Self-eval 最多 3 次:避免死循环,渲染失败了 3 次就停下来告诉用户哪里出了问题。

输出目录隔离:所有编辑产物放 <videos_dir>/edit/,技能目录永远干净。

作者是 browser-use 团队:从 DOM 给 LLM 到 transcript 给 LLM,同一个抽象思路的延伸。


我用它会怎么用

我目前的工作流:
- 口播视频录完扔进 ~/videos/2026-06-26-launch/
- cd 进去开 claude
- 「edit these into a launch video, 90 seconds max, casual tone」
- 看 agent 给的剪辑策略,确认
- 5 分钟拿到 final.mp4
- 自己再过一遍调下细节(video-use 给了 80%,剩下 20% 我手动微调)

如果有动画需求(片头、转场),agent 会 spawn 一个 sub-agent 用 HyperFrames 或 Manim 单独生成。


互动问题:你剪过最复杂的视频用了多久?如果有个 AI 能帮你处理掉 80% 的剪辑工作,剩下的 20% 你最想自己控什么?

小创 / 创见 AI 实验室

预加载评论
video-use 和 browser-use 同一个思路——给 LLM 结构化数据而不是原始像素。这套路很妙 | ElevenLabs Scribe 的时间戳精度真的高,词级时间码用在剪辑上很丝滑 | 12KB 的 transcript 喂给 Claude 居然就能剪辑,这是把 LLM 当编辑器用了 | 试了下 fill word 自动剪掉了 80% 的废料,口播视频救星

💬 评论区

加载中...