2026 年 9 月 22 日的 GitHub 趋势日榜上,browser-use/video-use 当日 +155★。仓库元数据(取数时间 2026-09-22 21:35–22:05):25,560★、3,097 fork、114 个 open issue(页面计数)、MIT 协议、2026-04-12 创建、最后一次提交 2026-08-30、主分支 Python、仓库体积 983 KB、143 位 watcher。

这组数字里真正值得看的是两处:

  • 它几乎不是「软件」。整仓 21 次提交、8 位贡献者、0 个 release、0 个 tag、3 个分支(main 之外只有一个 revert 分支和一个 studio-mac 分支)。核心资产是一份 23 KB 的 SKILL.md、一份 7.7 KB 的 install.md,外加 6 个 Python 脚本(最大 28 KB)。
  • 它的名字把它要做的事说反了。它不渲染视频、不做时间线、不带播放器——干活的还是你本机的编码 Agent,它只负责把「怎么剪」这件事写成一套能反复执行的规矩。

一句话定位:它不是剪辑软件,是给编码 Agent 的剪辑说明书

README 的原文是「Drop raw footage in a folder, chat with Claude Code, get final.mp4 back」——把原始素材丢进文件夹,和 Claude Code 聊天,拿回成片。它自己列的能力清单有这么几条:

  • 自动砍掉废话和空档:口癖(umm、uh、假开头)和 NG 之间的死时间,由转写文本里的语音边界决定,不是靠波形阈值猜。
  • 逐段调色:内置 warm_cinematic、neutral_punch、subtle、none 四个预设,也接受任意 ffmpeg 滤镜串。
  • 每个切点 30ms 音频淡入淡出,防拼接时的「啪」声。
  • 烧字幕:默认 2 个字一组大写、白字黑描边;样式、大小写、分组、位置都可改。
  • 动画叠加:需要加动效时,调用 HyperFrames、Remotion、Manim 或纯 PIL,一条动画一个并行子 Agent。
  • 每个切点自检:渲染完成后对成片(不是对素材)逐点抽帧检查,通过才给你看。
  • 跨会话记忆:会话结论写进 project.md,下周接着干时先读它。

它和「装一个剪辑 App」的区别在这里:你没有界面可点,你有的是一份可以被审计的作业流程。切点写成 edl.json,调色写成预设名或滤镜串,每一步都在文件里留痕,想改就改文件重渲。

它凭什么不看画面就能剪:两层读法

SKILL.md 第一句就是原则:LLM never watches the video. It reads it.(模型不看视频,它读视频。)读的方式分两层:

  • 第一层:转写文本(常驻)。每个素材走一次 ElevenLabs Scribe,拿到逐词时间戳、说话人分离、以及音频事件标记((laughs)、(applause)、(sigh))。所有素材打包成一份 takes_packed.md,一句话一行,行首带 [开始-结束] 时间区间。
  • 第二层:视觉拼图(按需)。只在「这里停多久合适」「这两条 take 哪条好」这种决策点,才用 timeline_view.py 把指定区间抽成一张胶片条 + 波形 + 词标签的 PNG。

README 给了一个很直白的成本对比:朴素做法 30,000 帧 × 1,500 token ≈ 4,500 万 token 的噪声;它这条路是 12 KB 文本加几张 PNG。而这两层的分工逻辑,和 browser-use 当年给浏览器 Agent 喂结构化 DOM 而不是截图,是同一个思路换到视频上。

它的取舍也很硬:反模式清单里明确写着不要 Whisper 的 SRT/短语级输出(丢掉亚秒级间隔数据)、不要在本地 CPU 跑 Whisper(慢,而且会把口癖规范化,刚好抹掉剪辑最需要的信息)、不要写打分函数(原话是模型挑得比任何启发式都好)。

六个脚本与 12 条硬规矩:真正决定成片质量的部分

仓库里的 helper 一共六个,加上一份被内置进来的 Manim 子技能(skills/manim-video/,11,983 字节的 SKILL.md 加 14 份 references):

脚本大小干什么
helpers/render.py28,139 B按 edl.json 逐段抽取 → 拼接 → 叠加动画 → 最后烧字幕,含响度归一化
helpers/timeline_view.py13,748 B指定区间抽 N 帧合成胶片条 + 波形 + 词标签 PNG,按需视觉下钻
helpers/grade.py13,244 B调色滤镜链,四个预设 + --filter '<raw>' 自定
helpers/transcribe.py8,027 B单文件转写,带缓存
helpers/pack_transcripts.py7,207 B把 transcripts/*.json 压成 takes_packed.md
helpers/transcribe_batch.py3,970 B四并发批量转写

SKILL.md 里点名了 12 条「生产正确性」硬规矩——这几条是它区别于「随便给模型一句提示词」的地方,挑最值钱的六条:

  • 切点绝不落在词中间:所有切点必须对齐转写里的词边界。
  • 每个切点留 30–200ms 余量:因为 Scribe 的时间戳本身会漂 50–100ms,不留余量就会切掉半个辅音。仓库母版那条片子的实际值是前 50ms、后 80ms。
  • 字幕永远最后叠加:先叠字幕再放动画,动画会把字幕盖住,而且这种错不会报错。
  • 逐段抽取后无损拼接,别用单遍滤镜图:否则一加动画就要对整条视频二次编码。
  • 每段边界 30ms 淡入淡出:不做就是每次剪都有可听的爆音。
  • 多条动画必须并行子 Agent:总耗时≈最慢的那条,不是加起来。

还有一条工程向的:所有会话产物只写进素材目录下的 edit/,绝不写进 skill 自己的目录。这意味着你的素材文件夹里会长出 takes_packed.md、edl.json、master.srt、preview.mp4、final.mp4 和 project.md,skill 仓库本身保持干净、可以随时 git pull。

怎么用起来:一句提示词,或者手工五步

最省事的路是直接把下面这句粘给任何有 shell 的 Agent——官方点名的客户端包括 Claude Code、Codex、Hermes、Openclaw:

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

它会自己 clone、装依赖、注册 skill、装 ffmpeg,然后只在要 ElevenLabs key 的时候来问你。手工路线也不长:

  1. git clone https://github.com/browser-use/video-use ~/Developer/video-use,再软链进你 Agent 的 skills 目录(必须是整个目录做符号链接,因为 helpers/ 要和 SKILL.md 是兄弟)。
  2. uv sync(或 pip install -e .)装 Python 依赖。
  3. ffmpeg 和 ffprobe 是硬依赖;要下载网络素材再加 yt-dlp。
  4. 在仓库根目录建 .env,写一行 ELEVENLABS_API_KEY=...,然后 chmod 600。
  5. cd 到你的素材文件夹,启动 Agent,说「edit these into a launch video」。

之后它按固定节奏走:盘点素材 → 通读转写找口误 → 用大白话向你描述它看到什么 → 提 4–8 句剪辑策略等你确认 → 才动刀。确认之后出 edl.json,逐段抽、逐段调色、并行渲染动画、拼装、自检最多 3 轮,通过才给你预览。

我们实跑了一遍:除转写以外的全链路

实测环境:Ubuntu、apt 装的 ffmpeg 6.1.1、Python 3.11。我们在 /tmp 里做了这件事,测完已清理,下面是原样结果。

步骤结果
clone(HEAD)9575612 transcribe: select the audio track, and refuse to upload a silent one (#134),2026-08-30
造测试素材两段假 take:6.0s 和 5.0s、1280×720@30、各带一条正弦音轨
手写 edl.json两段取 3.0s + 2.0s,调色 warm_cinematic,挂一条 srt
render.py抽出 2 段 → 拼接 → 字幕最后叠加 → 响度归一化,输出 final.mp4:5.03s、1920×1080、30fps、2.5 MB
中文字幕换中文 srt 重跑:字幕正常显示(白字黑描边),白字像素占的行区间 y=682–731(1080p),字高约 49 px,纵向中心落在画面 65.4% 高度处
timeline_view.py区间 0.2–5.8 成功输出 3336×540 PNG(289 KB,10 帧 + 波形);区间 0–6.0(末端正好等于素材总长)崩了
转写没跑——要 ElevenLabs key,不烧别人的额度

三条只有跑过才知道的细节:

  • 输出默认抬到 1080p:源素材是 720p,render.py 默认缩放目标是 1080p,想要原样输出得自己改抽取命令。
  • 响度归一化默认是开的,不管有没有要它做:-14 LUFS / -1 dBTP / LRA 11,实测那次第一步测到的响度是 I=-21.82 LUFS。不想要就用 --no-loudnorm 关掉。
  • timeline_view.py 有个边界会直接崩:当区间末端等于(或非常接近)素材总长时,它最后一帧抽不出来,Image.open 抛 FileNotFoundError: f_009.jpg。这不是我们运气差——仓库里正躺着一个没合并的 PR,标题就是 fix(timeline_view): clamp the frame range to the last decodable frame。

另外一条和服务器有关的:它的依赖列表比实际用到的重得多。pyproject.toml 里写着 requests、librosa、matplotlib、pillow、numpy,而 librosa 会顺带拖进 scipy、scikit-learn、numba、llvmlite 一整串(光 scipy 包就 33.7 MB)。我们把六个 helper 的 import 全 grep 了一遍:没有任何一个文件 import librosa,源码注释里甚至写着「avoid librosa as a hard dep」;真正用到的只有 numpy、PIL、requests 加标准库。我们那台 1.6G 的机器上 uv sync 跑了 20 分钟还在下载,最后改用只装 numpy + pillow 的最小环境,秒装完成——timeline_view.py 照跑不误。只玩渲染和胶片条的人,不必被这份 pyproject 拖着走。

成本账:哪一步要花钱,哪一步不花

  • 本地部分零成本:抽段、调色、烧字幕、拼装、响度归一化全是本机 ffmpeg 跑,不产生调用费用。
  • 转写是唯一强制的云依赖:目前只有 ElevenLabs Scribe 一条路,仓库里没有本地替代,按用量计费。公开资料里被反复转引的口径是每小时音频 0.40 美元(出处是第三方词条而非官方价目页,官方定价页是脚本渲染的、我们抓不到准确单价),下单前请以账号里的结账页为准。
  • 仓库自己对这笔钱的态度写得很清楚:转写结果按素材缓存,绝不重复转写;安装阶段不要跑转写测试,「Scribe costs real money」。
  • 动画引擎按需装:HyperFrames 需要 Node 22+、Remotion 需要 React 工程、Manim 需要 LaTeX;这三样不装也能剪,只是没有动效。
  • 真正的成本大头在模型侧:读转写、写 EDL、自检成片都要 Agent 的 token,素材越多越大。

和另外三条路比

维度手动剪(桌面剪辑软件)云端「自动成片」类工具video-use
谁决定切点你在时间线上逐刀手动算法按模板/节奏切你确认策略,Agent 按语音边界切
靠什么「看懂」素材你的眼睛平台模型 + 模板LLM 读逐词转写,决策点才看几帧
交付物工程文件 + 成片平台里的成片edl.json + final.mp4,可复现、可手改重渲
花什么钱软件订阅/买断平台订阅转写 API 用量 + 本地算力 + Agent token
适合谁需要逐帧精修、多机位、精细转场图快、能接受模板风格、素材简单口播/教程/访谈/旅拍这类「大段 raw take」,且已在用编码 Agent

还有一类要分清楚:heygen-com/hyperframes 那种是「用 HTML 生成视频」——从零把画面造出来;video-use 是「把已有的素材剪出来」,它只是把 HyperFrames 当成加动效的工具之一。两者不抢同一件事。

坑与边界:四条真人报的 issue,两条我们复现/验证过

  • 没有环境自检命令(issue #121,2026-08-05):仓库没有 doctor 之类的预检,缺 ffprobe、ffmpeg 少了滤镜、Remotion 装坏,都要等到流程深处才炸,前面白跑。装完先自己手动验一遍。
  • macOS 上 brew install ffmpeg 可能不带 libass(issue #118,2026-08-05):默认 bottle 里没有 subtitles、ass、drawtext 三个滤镜,于是任何带字幕的渲染直接抛 CalledProcessError。我们验证过另一半:Linux 上 apt 的 ffmpeg 6.1.1 编译进了 enable-libass,三个滤镜都在,中文字幕烧录正常。所以在 macOS 上先跑 ffmpeg -filters | grep -E ' (subtitles|ass|drawtext) ' 再开工。
  • 非拉丁字幕在某些环境渲染成豆腐块(同一条 issue #118):我们这台机器有 fontconfig 回退(文泉驿正黑),中文正常显示、没复现;仓库里记的是 macOS 路径下出方块。做中文内容的,第一次渲染务必自己盯一眼字幕。
  • Windows 上 helper 会直接崩(issue #125,2026-08-09):脚本会往 stdout 打 →、—、… 这类字符,在 cp1252 代码页下抛 UnicodeEncodeError 中断于半途。
  • 拼接点有可听见的「咔」(issue #162,2026-09-15):根因是拼接用了 -c copy,每段各自带 AAC 的 priming/padding 样本,在流拷贝下无法对齐,报告里给的实测是断点落在 AAC 帧边界后约 102ms。SKILL.md 的 30ms 淡入淡出治的是段内,治不了段间这一下;这条还没修。
  • 别被 open issue 数吓到,也别被它安慰:抓下来的 115 条 open 条目里 93 条是 PR、22 条是真 issue,而上面这几条真坑全在那 22 条里。

我的判断:谁该上、谁再等等、谁别碰

该上:每次拍摄都攒下一大堆 raw take,剪片时间主要花在「找哪条 take 好、砍口癖、对齐字幕」这类机械活上的人;每周稳定更新口播/教程/访谈的创作者;已经在用 Claude Code、Codex 或 Hermes 这类能挂 skill 的客户端的人——你的边际成本就是一个 ElevenLabs key。

再等等:只有手机素材、习惯在手机或剪映里剪的人;需要逐帧精修转场、多机位同步、精细蒙版的人(它没有可视化时间线);不愿意把音频传给第三方做转写的人——转写这一步绕不过云;没有 API 预算的人(转写要钱,Agent token 也要钱)。

别碰:指望「一句话出爆款」的人——它明确要求先听你说策略再动刀,你的表达能力就是它的上限;要给客户坐在一起逐帧过片再签字交付的人;以及把「25,560 星」当成「生产级稳定」的人——0 release、0 tag、上面那些坑都还挂着没合。


顺带一提:素材剪得再利索,决定观众留存的还是声音本身。口播和访谈这类内容,麦克风怎么选那篇按动圈/电容、指向性和接口先把门道讲清楚,再按用途和预算给到具体机型,先解决收音再谈剪辑。

本文由拾光札记编辑部整理,勘误请联系我们。

本文事实取自 GitHub REST API(仓库元数据 / 提交 / 贡献者 / issue,取数时间 2026-09-22 21:35–22:05)、GitHub 趋势页当日快照、仓库 README.md、SKILL.md、install.md、pyproject.toml 与 helpers/ 源码,以及 issue #118 / #121 / #125 / #162 原文。实测部分在本机 /tmp 独立目录完成,测完已停进程、删目录并核对内存与磁盘复原;转写链路(需 ElevenLabs API key)与 HyperFrames / Remotion / Manim 三条动效引擎未纳入本次实测,文中相关描述取自仓库文档。star / fork / issue 数实时变动,以仓库页为准。

站内可对照阅读: