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.py | 28,139 B | 按 edl.json 逐段抽取 → 拼接 → 叠加动画 → 最后烧字幕,含响度归一化 |
helpers/timeline_view.py | 13,748 B | 指定区间抽 N 帧合成胶片条 + 波形 + 词标签 PNG,按需视觉下钻 |
helpers/grade.py | 13,244 B | 调色滤镜链,四个预设 + --filter '<raw>' 自定 |
helpers/transcribe.py | 8,027 B | 单文件转写,带缓存 |
helpers/pack_transcripts.py | 7,207 B | 把 transcripts/*.json 压成 takes_packed.md |
helpers/transcribe_batch.py | 3,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 的时候来问你。手工路线也不长:
git clone https://github.com/browser-use/video-use ~/Developer/video-use,再软链进你 Agent 的 skills 目录(必须是整个目录做符号链接,因为helpers/要和SKILL.md是兄弟)。uv sync(或pip install -e .)装 Python 依赖。ffmpeg和ffprobe是硬依赖;要下载网络素材再加yt-dlp。- 在仓库根目录建
.env,写一行ELEVENLABS_API_KEY=...,然后chmod 600。 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 数实时变动,以仓库页为准。
站内可对照阅读: