📄 文档列表
🎬 口播文案
✏️ 编辑文档
标题
工具栏
加粗
H2 标题
H3 标题
引用
无序列表
有序列表
代码块
📷 上传图片
点击或拖拽上传图片
支持 PNG, JPG, GIF, WebP 格式
内容 (Markdown 格式)
## 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/`,技能目录不会被污染。 适用场景特别清晰:口播视频自动去掉 `umm`、`uh`、卡顿;连续拍摄镜头自动挑最好的 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% 的废料,口播视频救星
摘要
标签
多个标签用逗号分隔
分类
技术文章
教程指南
工具测评
项目实战
行业观察
默认
💾 保存修改
← 返回查看
返回列表