作者: · 发布:

刷短视频的时候,大家一定见过那些混剪视频——那种感觉,短平快、情绪拉满、转发率巨高。

你可能也好奇过,这种视频是怎么做出来的?

答案是:非常痛苦。

有没有办法,就输入一个电影名,然后啥也不用管,最后拿到一个成品视频?

有。

最近 GitHub 上冒出一个叫 easyedit 的项目,就干这件事。

这个开源项目把九个阶段的 AI 视频流水线装进了一条命令!

它的 slogan 直接得很:”Type a movie. Get a captioned speech + beat-cut fan edit.” 翻译过来就是:输入一个电影名,给你生成一段带动画字幕的经典台词 + 节拍蒙太奇的粉丝剪辑。

你只需要敲一行命令:

python -m easyedit "The Wolf of Wall Street"

等它跑完,jobs/The Wolf of Wall Street/ 目录里就会多出一个 1920×1080、60fps 的 MP4 文件。台词、字幕、音乐、镜头、转场、特效,全给你搞定。

easyedit 是什么?

easyedit 是一个 本地优先(local-first) 的开源 AI 视频自动化工具。它跑在你自己的机器上,不需要上传到云端,不需要给任何视频平台授权,也不需要你购买任何 API 套餐。

除了 Python 和 Node,唯一的外部依赖就是 FFmpeg——视频处理的瑞士军刀。

一键跑完九道工序

1. Plan — AI 帮你规划一切

这是第一步,也是最”智能”的一步。easyedit 会启动你的 Claude Code 或 Codex 会话,把电影名喂给它,让它回答一系列问题:

这部电影最经典的台词是哪一段?

选哪个片段来做 speech scene 的搜索关键词?

蒙太奇素材应该搜什么?(预告片?官方混剪?粉丝剪辑?)

什么歌最配这部电影的调性?

字幕用什么颜色?整体色调偏冷还是偏暖?

LLM 会把这些决策写成一个 plan.json 文件,里面是结构化的搜索词、配色方案和风格描述。

2. Source — 自动下载素材

规划好了,easyedit 用 yt-dlp 去搜索并下载三样东西:

台词片段的来源视频(scene source)

1~2 个蒙太奇素材(montage source)

一首 BGM(music source)

你也可以完全绕过自动搜索,直接用 --speech、--montage、--music 参数手动指定本地文件、URL 或者自己的搜索词。

3. Transcribe — 逐词转录

下载好台词片段后,easyedit 用 faster-whisper 把音频转成文字,而且是每个词都精确到毫秒级时间戳的那种。

这一步如果有 NVIDIA GPU 会快很多,没有就用 CPU 慢慢跑。

转录结果保存在 transcript.json 里,每个词都带有 start 和 end 两个时间戳——这就是后面做逐词跳动字幕的基础。

4. Quote — 选最炸的那段台词

一段电影里可能有好几分钟的经典片段,easyedit 不会全都用上。它让 LLM 从完整转录里挑出一段连续 9~24 秒的精华,然后做两件事:

一是标记重音词。比如那句 “I’m not leaving you here!” 里,LLM 会把 “not”、”leaving”、”here” 标记成不同颜色的强调词(positive / negative / gold / cool 四类),后面渲染字幕的时候会给这些词加特殊效果——金色发光、黑色描边、或者回声影子。

二是分行。按照自然停顿,把台词切成适合字幕显示的若干行。

5. Faces — 人脸追踪

台词里的主角,easyedit 得知道他/她在哪。它用 OpenCV YuNet 模型以每秒 10 帧的频率追踪说话人的脸。

为啥要追踪脸?因为渲染的时候要用——镜头会跟着主角的脸”推近”(push-in),让观众的注意力集中在说话者身上。

这其实就是电影里的 “push-in on face” 技巧,easyedit 自动帮你做了。

6. Shots — 蒙太奇镜头分析

台词结束后是 21 秒左右的蒙太奇段落,需要从几段素材里切出最精彩的镜头。

easyedit 先找出素材里的所有场景切换点(scene cut),然后对每个镜头打分——评估维度包括运动幅度、画面锐度、对比度、色彩丰富度和人脸出现情况。

分太低的镜头直接扔掉,还要自动排除黑边、片头片尾的标题卡片、以及和前一个镜头高度相似的重复片段。

7. Beats — 节拍检测

蒙太奇要跟着 BGM 的节拍切,不然就没那味儿了。

easyedit 用一个纯 numpy 实现的频谱通量 + 动态规划节拍追踪器,找出歌曲的速度(tempo)、每一拍的精确时间点,以及最关键的——drop(bass drop)的位置。

蒙太奇段落的第一个镜头必须精确落在 drop 那一拍上,这是粉丝剪辑的铁律。

8. Assemble — 帧精确组装

现在所有素材都准备好了:台词片段、重音词时间戳、人脸坐标、候选镜头列表、节拍点。easyedit 把它们组装成一个精确到帧的时间线(timeline),生成一个 edit.js 文件。

组装规则很讲究:镜头用短-长-短-长的交替模式落在真实节拍上;歌曲在台词阶段保持低音量(ducking),drop 时突然拉满;整个时间线是 frame-accurate 的,不丢帧也不重复。

9. Render — 渲染出片

最后一步是渲染。

easyedit 用 HyperFrames(HeyGen 开源的代码化视频渲染框架)来生成最终画面。

所有视觉效果都是在 template/film.js 这个纯函数里定义的——这意味着每一帧都能独立渲染,可以并行处理。

渲染阶段加的特效包括:

人脸跟随镜头 自动 push-in 追踪主角

逐词动画字幕 模糊 → 描边 → 发光填充的递进效果

重音词特效 金色发光、黑色描边、回声影子

方向性运动模糊 转场时的 whip transition

节拍同步缩放脉冲 beat-synced zoom pulse

胶片颗粒感 film grain

最终黑白特写 + 标题卡 hero shot

渲染完成后,音视频 mux 在一起,编码一次(默认 NVENC 硬件编码,没有 GPU 就用 x264),输出最终的 MP4。

03

PART

快速上手

安装步骤

# 1. 克隆仓库
git clone https://github.com/blixvip/easyedit
cd easyedit

# 2. 安装 Node 依赖
npm install

# 3. 安装 Python 依赖
pip install -r requirements.txt

# 4. 自检——看看环境有没有问题
python -m easyedit.doctor

doctor 命令会检查你的 Python、Node、FFmpeg、GPU、AI 账号连接状态,然后告诉你缺啥补啥。

连接 AI 账号

这一步是让 easyedit 能用 LLM 帮你选台词和规划。你不需要 API Key,只要登录过下面任何一个就行:

# 方式一:Claude Code
claude auth login

# 方式二:Codex
codex login

或者你也可以启动 Web UI,点 Connect 按钮在浏览器里登录。

没有 AI 账号也能跑,只是 Plan 和 Quote 阶段会用启发式规则代替,效果会打折。

跑起来

全自动模式,就一条命令:

python -m easyedit "Fight Club"

跑完在 jobs/Fight Club/ 里找成品。

进阶:手动干预任何环节

easyedit 最酷的一点是每个阶段都可以手动覆盖。你可以这样:

# 指定台词搜索词、自己的蒙太奇素材、自己的音乐
python -m easyedit "Interstellar"
--speech "interstellar do not go gentle scene"
--montage ~/clips/interstellar-trailer.mp4
--music "https://www.youtube.com/watch?v=..."

# 快速预览:30fps 草稿质量
python -m easyedit "Scarface" –draft

# 只渲染 15~25 秒来预览效果
python -m easyedit "Scarface" –preview 15 25

# 只下载素材和生成 edit.js,不渲染
python -m easyedit "Scarface" –no-render

你还可以直接编辑缓存文件。

比如你觉得 LLM 选的台词不够炸,打开 jobs/<电影名>/quote.json 改一下重音词标记,然后再跑一次 python -m easyedit,它会跳过前面所有已经缓存的阶段,直接从 Quote 之后继续。

更精细的蒙太奇控制:创建一个 curate.json,手动指定要用哪些镜头、排除哪些镜头、最终的黑白特写用哪个:

{
"pin": ["TaaDkbG3I7g@110.52", "ebjTAHwSWMw@73.60"],
"exclude": ["TaaDkbG3I7g@32.77"],
"hero": "ebjTAHwSWMw@163.10"
}

想看看所有候选镜头长啥样?跑这个:

python -m easyedit.sheet "The Wolf of Wall Street"

它会在 qa/ 目录下生成一份文字报告、一张包含所有候选镜头缩略图的联系图、一张按选中顺序排列的最终预览图——让你一眼就能看出哪些镜头好、哪些该扔。

Web UI

如果你不想用命令行,easyedit 还有一个本地 Web 界面:

python -m easyedit.web
# 浏览器打开 http://127.0.0.1:4331

Web UI 有一个视频画廊,展示你所有生成过的 fan edit,带缩略图、时长、字幕行。正在跑的任务会显示实时进度条和日志,还能随时停掉。还有一个”从图片设计”功能,能把你导入的一张 PNG/JPEG/WebP 变成同色调的视频封面海报。

04

PART

让 AI Agent 替你跑

easyedit 最”赛博”的玩法是什么?让另一个 AI 替你操作 easyedit。

作者专门写了一个 AGENTS.md 文件,就是给 AI Agent(Claude Code、Codex 等)看的操作手册。你可以直接把这段话粘贴到 Claude Code 里:

Install easyedit from https://github.com/blixvip/easyedit.
Read its AGENTS.md first and follow it.
Run "python -m easyedit.doctor" and fix anything it flags.
Then make a fan edit of "Gladiator" and tell me where the finished video is.

Claude Code 会自己克隆仓库、装依赖、跑 doctor 修问题、执行 easyedit、甚至帮你检查 curate.json 和渲染后的画面——全程你只需要等成品。

如果你是 Claude Code 用户,还可以装一个专门的 skill:

python -m easyedit.skill install
# 然后在 Claude Code 里直接:/easyedit Gladiator

05

PART

和其他工具比,easyedit 厉害在哪?

最近 AI 视频剪辑类的开源项目确实挺多。让我简单对比一下:

对比项 easyedit video-use (browser-use 团队) 传统剪辑(PR/剪映)
定位 一键生成 fan edit 视频 AI Agent 对话式剪辑 手动时间轴编辑
需要 API Key ❌ ✅ (ElevenLabs) ❌
需要 AI 账号 已有 Claude/Codex 即可 Claude/Codex 即可 不需要
自动化程度 完全自动 半自动(需要 Agent 对话) 全手动
输出风格 固定(字幕+beat-cut蒙太奇) 灵活(各种视频类型) 灵活
上手难度 低 中 高

easyedit 和 video-use 其实不算是竞争对手——一个是”全自动特定风格生成器”,一个是”对话式通用剪辑助手”。

选哪个取决于你想要什么:想快速出几条电影台词 fan edit 就选 easyedit,想让 AI 帮你剪 vlog 或口播视频就选 video-use。

///

LAST

写在最后

easyedit 最打动我的地方不是它的技术有多先进——它用到的 faster-whisper、OpenCV、FFmpeg、numpy 都是成熟工具。

真正让它出彩的是工程化的流水线设计:把一个复杂的视频生产过程拆成九个可缓存、可覆盖、可单独调试的独立阶段,每一步都有明确的 JSON 接口,最后用 HyperFrames 的代码化渲染把所有视觉效果一锅端。

这种”把 AI 辅助任务工程化、产品化”的思路,其实正是现在开源圈最有价值的方向。不是再做一个新的 Whisper 或新的 beat tracker,而是把已经好用的工具用合理的管线串起来,让用户只需敲一条命令就能享受完整的生产流水线。

如果你正好想发几条电影台词风格的短视频,或者只是好奇 AI 视频能自动化到什么程度,去看看 easyedit 吧。

GitHub:https://github.com/blixvip/easyedit

颜资源站长
颜资源站长 已发布 1017 篇文章

资深互联网从业者,专注AI工具研究与实战应用。长期跟踪ChatGPT、Claude、Stable Diffusion等前沿AI技术,擅长将复杂的技术概念转化为通俗易懂的教程。运营颜资源小站,致力于为中文用户提供高质量的AI教程、开源项目推荐和数字资源整理。