Agent Skill · 适用于各种 AI 助手

让 agent 当导演。交出的是成片,不是素材。

给它一句需求或一条参考视频,它选角、配音、做逐字字幕、加动效、混音,全部放在同一条时间线上,最后交给你一支通过验收的短片。

它负责整条生产链:生成、语音对时、合成和交付检查,不止合成这一步。

npx skills add EmergenAI/video-recut -g
SABCD?! 导 演 SCENE 07TAKE12ROLLDIRCAM A 开拍! 口播 双人播客 街头采访 排行榜 短剧 check.mjs plan.json ✓ 已交付 explainer.mp4.report.json

一条片子

看一支片子,从需求走到交付。

需求进来,台词、镜头、字幕和声音落到同一条时间线上;播放时印章落在对应的词上;全部检查通过,才算交付。

BRIEF“给我们的冷萃罐做一条 24 秒的上新片。” 导演中… TIMELINEtimeline.json 0s 1s 2s 3s 4s 台词 画面 字幕 声音 事件 到 周五 每一件 都 卖光了 shot1 shot2 shot3 到周五,每一件 都卖光了。 stamp find("s4", "卖光").start → 2.75s 售 罄 组装中… 到周五,每一件 都卖光了。 ✓ 已交付 计划 镜头 声音 时长 launch.mp4.report.json 交付检查 · check.mjs 对照 plan.json

差距在哪

生成一个镜头不难,做成一支片子才是活儿。

用生成素材拼过短视频的人,大概都碰到过下面这些事。右边一栏是这个 Skill 替你管的部分。

常见问题
Video Recut 怎么管
同一个角色,第二个镜头换了一张脸。

同一个角色的每次生成都带同一组参考图,参考图之间的依赖关系也有记录。

guides/3-materials/reference-chains.md
改一句台词,后面的字幕和动效全都对不上。

事件绑在说出的那个词上,而不是手填的秒数。换词、重配音,事件跟着词走。

timing/timeline.json · guides/4-compose/timing.md
改一个字,就得重新付一次生成费。

画面编排、字幕、动效都写在一个 HTML 页面里,改完重新渲染,只花时间。已生成的素材通过 manifest 复用。

manifest.json · bibei.mjs status
前一句和后一句,听着不像同一个人。

声音按角色来选:先试听、定下来,这个人的每一段台词都用同一个声音。

guides/3-materials/voices.md
发出去之前,没人告诉你这条到底行不行。

正式渲染先对照计划检查;agent 还会把最终文件完整看一遍、听一遍,才算交付。

plan.json · scripts/check.mjs

对比

大家现在通常这样做。

视频生成工具 + 剪辑软件让 agent 写脚本和提示词Video Recut
你拿到什么一堆镜头,自己拼脚本和提示词,自己生成、自己剪通过检查的成片,加上全部可编辑的源文件
揭晓、切镜放在哪轨道上的某一秒没有安排放在它呼应的那个词上
改一处的代价重新生成,或手动重剪重新生成改页面、重新渲染;花过钱的素材直接复用
画面体系归谁先归模型,再归你的剪辑轨道没人管一个看得懂、改得动的 HTML 合成页
交付前靠你自己看没有检查plan.json 检查,再由 agent 审一遍成片

Video Recut 不替代生成模型,而是调度它:图片、视频和对时在你自己的必贝账号上运行,语音用账号里的模型或你选的 TTS 服务。

从哪开始

手上有什么,就从什么开始。

01 / 想法

从一个想法开始

“给我们的冷萃罐做一条 30 秒的上新视频。”

agent 先写 Brief,拿出一份你可以拍板的创意方案,然后才会问你要不要花钱。

Brief 怎么写 →
02 / 参考片

从一条喜欢的视频开始

“照这条来,换成我们的产品和另一个主持人。”

它会把参考片从头看到尾,弄清每个切镜、画面和声音为什么在那儿,再按你的台词重新搭一遍。

怎么改编 →
03 / 素材

从你拍的素材开始

“这是我昨天拍的几条。”

每个文件先分好用途:当参考、保留这段表演、单独用作画面,或者只取声音。

素材怎么用 →

工作方式

六个环节,每一步都留下能打开的文件。

没有什么只存在聊天记录里。每个环节都把结果写到磁盘上,换一个会话或者你自己,都能从停下的地方接着做。

图片与视频

bibei.mjs
prompts/
generated/
manifest.json

语音

账号的语音模型或你的 TTS
composition/audio/

逐字对时

bibei.mjs align
timeline.mjs build
timeline.json
timeline.js

素材处理

FFmpeg / ffprobe
处理后的文件放在原文件旁边

合成与渲染

HyperFrames(render.mjs)
index.html
renders/

交付检查

check.mjs 对照 plan.json
*.report.json

实例

“售罄”印章,落在“卖光”这个词上。

在剪辑软件里,印章固定在某一秒,台词一改就错位。这里,页面去时间线上查这个词是什么时候说出来的,再把印章放上去。

// composition/index.html
var MOMENTS = {
  soldOut: find("s4", "卖光").start
};
tl.from("#stamp",
  { scale: 1.9, opacity: 0, duration: 0.28 },
  MOMENTS.soldOut);

台词改了,印章跟着走。

实例

不符合计划的片子,交不出去。

除了草稿,每次渲染都先对照 plan.json 做交付检查。有一项不过就不出片;成片时长不对,文件会被改名为 .REJECTED 放到一边。只有带着验收报告的片子才算交付。

检查内容:计划存在且完整、计划里的每个镜头都上了页面、单个镜头不超过 15 秒、每个声音都登记了来源、所有语音都来自脚本、没有混入参考片的原声、时长和计划一致。

体裁

已经会导的七种体裁。

每种体裁都有一份打法:这类视频靠什么留住人,做的时候常遇到哪些问题。体裁之间可以组合。

安装之前

你需要准备这些。

这些是真实的前置条件,提前说清楚,免得装到一半才发现。agent 会逐项检查,缺什么就一步步带你补上。

Node.js 22 或更新版本渲染和生成脚本都跑在它上面。
你自己的必贝开放平台密钥和积分图片、视频和对时都在你的账号上生成。获取密钥。
PATH 上有 FFmpeg 和 ffprobe用来探测、剪切和统一素材格式。
固定版本的 Chrome Headless Shell由 render.mjs prepare-browser 下载一次,用来把页面渲染成画面。
可选:一个 TTS 服务只有必贝账号里没有语音模型、你的 agent 也没有语音工具时才需要。
可选:yt-dlp只在需要从链接下载参考视频时用到。
限制:每个生成镜头最长 15 秒更长的片子拆成几个镜头再剪到一起。限制的是单个镜头,不是整条片子。
限制:逐字时间可能是估算的没有对时结果时,时间按音频估算并标注出来,agent 会告诉你这对字幕准确度意味着什么。
密钥自备。这个 Skill 不代付任何生成费用,也不会花你没同意的钱。 任何付费操作之前,agent 都会先和你确认账号、要做的内容和预算,写进 Brief,之后不超出这个范围。

把导演椅交给你的 agent。

npx skills add EmergenAI/video-recut -g