从一句自然语言需求出发,完成素材分析、剪辑规划、时间线修改、浏览器本地 AI 推理、成片验证,并同时交付视频与可编辑工程。
开源项目
效果与案例仓库
Timeline Studio Skills Handbook
Handbook 提供参考视频复刻、产品宣传片、多语言本地化、知识科普等案例,并尽量保留提示词、结果视频和可编辑 .timeline 工程,适合查看效果、理解剪辑决策和复用工作流。
Timeline Studio 主仓库
主仓库包含浏览器视频编辑器、Agent Skill、时间线命令协议、本地 AI 模型集成,以及构建和部署配置。
安装 Skill:
npx skills add MartinDelophy/ai-video-editor --skill edit-timeline-studio
ScreenShot_2026-08-07_154510_331.png
背景:为什么视频生产需要 Agent Skill
生成文案、配音、字幕或者图片,已经不是困难的问题。真正困难的是如何把这些能力组织成一条稳定的视频生产流水线。
一条看似简单的短视频,通常需要完成:
- 检查原始素材;
- 理解画面、语音和内容结构;
- 决定镜头的保留、删除和排序;
- 生成或整理旁白;
- 建立字幕与语音的时间关系;
- 添加音乐、画中画、动画和效果;
- 检查时间线连续性;
- 导出成片;
- 保存可继续编辑的项目。
如果这些步骤分散在多个 AI 服务和剪辑工具中,用户仍然需要承担大量文件传递、格式转换和时间同步工作。
Timeline Studio 的思路,是通过 edit-timeline-studio Skill 将专业剪辑流程转换为 Agent 可以执行的工程协议。
Skill 不只是提示词模板。它同时定义:
- Agent 应该先检查什么;
- 如何对素材进行分类;
- 如何生成剪辑决策;
- 哪些操作可以自动执行;
- 哪些操作需要浏览器编辑器;
- 如何验证最终结果;
- 什么情况下不能宣称任务已经完成。
整体架构
系统可以分为五层。
flowchart TD
A["自然语言创作需求"] --> B["Skill 工作流层"]
B --> C["素材分析与剪辑决策"]
C --> D["声明式时间线命令层"]
C --> E["浏览器 AI 与编辑器能力层"]
D --> F["可移植 .timeline 工程"]
E --> F
F --> G["预览、解码与视听验证"]
G --> H["成片视频 + 可编辑工程"]
第一层:自然语言需求
用户不需要描述具体按钮操作,只需要说明创作目标,例如:
把这些产品演示素材剪成一条40秒左右的竖屏宣传片,保留真实操作过程,添加中文旁白和字幕,突出三个典型使用场景。
Skill 会保留原始需求,并将其转换为结构化创作约束:
{
"contentType": "product-promotion",
"targetDuration": {
"min": 35,
"max": 45
},
"aspectRatio": "9:16",
"captions": true,
"voiceoverLanguage": "zh-CN",
"preserveSourceDialogue": true,
"deliverables": [
"video",
"editable-timeline"
]
}
其中,一部分字段来自用户明确要求,一部分来自素材分析,还有一部分属于可追踪的默认决策。
第二层:Skill 工作流
Skill 根据内容类型选择不同执行路径。
例如:
- 口播整理侧重语义完整性和语音连续性;
- 产品宣传侧重问题、产品动作、证据和 CTA;
- 多镜头集锦侧重动作、节奏和高潮层级;
- 多说话人内容侧重人物身份和对话轮次;
- 网站演示侧重页面流程和操作证据;
- 参考视频复刻侧重镜头结构、速度曲线和主体运动。
这种分类非常重要。
如果所有视频都使用同一套“检测静音并删除”的算法,系统很容易删除刻意保留的停顿、产品结果展示或者人物表情。
Agent Skill 的价值,是让自动化过程具备任务语境。
素材分析:建立剪辑证据
在修改时间线前,系统首先检查素材。
基础检查包括:
- 文件类型;
- 视频时长;
- 分辨率和宽高比;
- 帧率;
- 是否包含音频;
- 音频采样率和声道;
- 素材是否能够正常解码。
根据任务需要,还可以继续分析:
- 视频代表帧;
- 语音识别结果;
- OCR 文字;
- 镜头切换;
- 主体位置和尺寸;
- 画面清晰度;
- 全局运动;
- 主体区域光流;
- 音频能量变化;
- 人物表情变化。
分析结果不会直接变成剪辑操作,而是先形成源时间决策记录。
{
"assetId": "demo-recording",
"sourceRange": {
"start": 42.8,
"end": 50.3
},
"decision": "keep",
"role": "primary-peak",
"reason": "完整展示任务执行后的可见结果",
"confidence": 0.94,
"protectedFrames": [
47.2,
48.1
]
}
每一段素材都可以记录:
- 保留、删除、缩短或重排;
- 决策原因;
- 置信度;
- 是否需要保护原声;
- 是否包含关键画面;
- 在叙事中的作用。
这让自动剪辑从“应用固定规则”变成“基于证据做编辑决策”。
声音、运动和镜头变化如何参与高光判断
对于集锦、动作和宣传内容,系统可以综合多类局部证据寻找候选高光时刻。
一种可解释的评分方式是:
候选分数 =
30% × 音频能量变化
+ 25% × 主体区域运动
+ 20% × 镜头变化置信度
+ 15% × 同一人物表情变化
+ 10% × 主体区域清晰度
这里的分数只负责提出候选时刻,不能直接决定最终剪辑。
例如,内容连续性可能要求保留高光动作之前的准备过程;一段没有运动的产品结果画面,也可能比快速移动镜头更重要。
因此,高光判断和叙事判断必须分开。
分析完成后,还需要给保留片段分配叙事角色:
setup:建立背景;rise:提升张力;pre-impact:为高潮做准备;primary-peak:主要高潮;secondary-peak:次要高潮;aftershock:展示结果;bridge:连接上下文。
最终时间线应形成非平坦的张力曲线,而不是让每个镜头拥有相同权重。
声明式时间线命令
Timeline Studio 将可自动化的编辑操作封装为版本化命令。
基本流程如下:
npm run agent -- project.inspect /projects/demo.timeline
npm run agent -- project.diff /projects/edit-plan.json
npm run agent -- project.run /projects/edit-plan.json
project.inspect
读取现有工程结构,包括:
- 工程版本;
- 画布比例;
- 轨道;
- 素材;
- 时间线片段;
- 字幕;
- 语音关系;
- 已归档的媒体文件。
project.diff
验证命令是否受支持,并计算非写入式差异。
它可以在执行前发现:
- 片段 ID 不存在;
- 时间范围无效;
- 轨道类型不兼容;
- 工程版本不匹配;
- 操作依赖的素材缺失;
- 当前渲染器无法处理某项属性。
project.run
在前置条件成立时,事务性执行编辑计划,并输出新的 .timeline 工程。
一个命令计划可以包含:
{
"version": 1,
"projectRevision": 6,
"operationId": "product-promo-cut-v3",
"operations": [
{
"type": "visual.trim",
"clipId": "visual-demo",
"sourceStart": 12.4,
"sourceEnd": 18.7
},
{
"type": "timed.move",
"clipId": "voice-result",
"start": 24.2
},
{
"type": "caption.update",
"clipId": "caption-result",
"text": "从素材到成片,只需要描述目标。",
"start": 24.2,
"end": 28.6
}
]
}
为什么需要版本、事务和幂等性
视频编辑自动化和普通脚本不同。
一次剪辑计划可能同时修改画面、字幕、配音和音乐。如果只成功了一部分,工程就会进入不一致状态。
因此命令层需要具备数据库式的安全特征。
工程版本检查
计划基于某个具体工程版本生成。执行时如果发现工程已经变化,系统会拒绝应用旧计划。
前置条件
操作可以要求片段仍然位于某个轨道、具有某个时间范围,或者仍然绑定指定音频。
事务
一个用户可见意图对应一个事务。任何关键操作失败,整组修改停止。
幂等键
每个计划携带稳定的 operationId。重复执行相同计划时,不会重复插入素材或字幕。
结构化错误
失败信息需要明确指出缺少哪个素材、哪个命令不受支持,以及工程的哪项状态不符合预期。
这些机制是从“演示型 Agent”走向“生产型 Agent”的基础。
双路径执行:命令协议与浏览器编辑器
当前系统同时使用两条执行路径。
| 执行路径 | 适合的任务 |
|---|---|
| 命令协议 | 工程检查、媒体导入、片段调整、字幕更新、轨道操作和受支持的本地渲染 |
| 浏览器编辑器 | AI 配音、自动字幕、复杂效果、数字人、完整预览和丰富合成 |
命令路径具备较强的确定性,适合批处理和自动化。
浏览器路径可以使用 Timeline Studio 已经存在的完整产品能力,但会受到界面状态、文件选择器和浏览器媒体行为影响,因此不能被描述为完全稳定的无头 API。
Skill 的策略是:
- 优先检查命令注册表;
- 已支持的操作通过命令执行;
- 缺少的部分通过编辑器完成;
- 执行后重新检查工程;
- 解码并验证最终视频。
随着更多操作进入共享命令层,浏览器自动化承担的工作会逐步减少。
.timeline 可移植工程
Timeline Studio 不把 MP4 当作唯一结果。
.timeline 是一个可移植工程包,其中包含:
project.timeline
├── project.json
└── media/
├── visual-001.mp4
├── visual-002.png
├── voice-001.wav
└── music-001.wav
project.json 记录时间线结构,media 保存工程依赖的素材。
相对于只输出成片,这种设计具有几个优势:
- 用户可以继续手工编辑;
- Agent 可以读取和修改已有项目;
- 工程可以在不同设备间迁移;
- 修改字幕不需要重新生成全部内容;
- 可以追踪素材与源时间的对应关系;
- 成片结果能够被工程结构证明。
可编辑工程也是 Agent 和人类剪辑师之间的协作协议。
Agent 可以完成初剪和技术性工作,人类则可以继续调整表达、审美和最终发布策略。
字幕与语音的单向约束
自动视频系统经常出现“字幕存在,但没有对应声音”的问题。
Timeline Studio Skills 使用一条明确约束:
工程一旦启用字幕,每段可见字幕都必须在完整显示区间内对应一段可听见的语音。
如果字幕来自原视频人物说话,则字幕绑定原始语音。
如果字幕由 Agent 编写,则需要先生成旁白,再将字幕绑定到对应的语音片段。
{
"captionId": "caption-12",
"audioClipId": "voice-12",
"start": 18.2,
"end": 22.7,
"text": "重复工作交给 AI,创作者负责真正的表达。"
}
按句拆分语音还有一个重要作用:后续调整某句话时,不需要在一段很长的旁白音频中重新定位。
交付前需要检查:
- 字幕是否存在对应音频;
- 音频是否真实可听;
- 字幕是否超出语音区间;
- 是否重复叠加原声和 AI 旁白;
- 不同语句的响度是否一致;
- 左右声道是否出现异常延迟。
浏览器本地 AI 推理
Timeline Studio 将多项 AI 能力放在浏览器侧运行,技术栈主要包括:
- WebGPU;
- ONNX Runtime Web;
- Web Worker;
- Cache Storage;
- IndexedDB;
- WebCodecs。
当前能力覆盖自动字幕、多语言配音、本地音乐、主体检测、人像处理、视频修复、人声分离和数字人等方向。
部分模型包括:
- Whisper Small Q8 ONNX;
- Piper/VITS 中文语音模型;
- Kokoro 英文语音模型;
- Stable Audio 3 Small Q4 ONNX;
- YOLOS Tiny;
- MODNet;
- MI-GAN;
- NanoVSR;
- JoyVASA;
- LivePortrait。
模型采用按需加载方式。用户第一次使用某项能力时下载模型,后续通过浏览器缓存复用。
模型文件可以从 Hugging Face 和 ModelScope 的自有镜像加载,并使用固定版本。两家提供方共享逻辑缓存身份,避免相同模型被重复保存。
对于国内用户,系统可以优先尝试 ModelScope;网络条件变化或者下载失败后,再切换其他镜像。
浏览器导出
编辑器使用原生媒体路径进行播放预览,导出时则使用独立的离线合成路径。
WebCodecs 路径负责:
- 逐帧合成主画面;
- 应用变换、字幕和 Overlay;
- 混合配音、音乐和原声;
- 编码视频;
- 生成 MP4 或 WebM。
对于不支持完整 WebCodecs 能力的环境,可以使用 MediaRecorder 兼容路径。
预览和导出必须尽量使用相同的时间、属性和合成规则,否则会出现“预览正确、导出错误”的问题。
完成标准:成片和工程缺一不可
对于完整的视频编辑任务,Timeline Studio Skills 要求输出:
output/
├── result.mp4
└── result.timeline
交付前还要执行验证。
工程验证
- 轨道数量是否正确;
- 主画面是否连续;
- 片段顺序和时长是否符合计划;
- 字幕是否绑定正确语音;
- 媒体文件是否已经归档;
- 工程是否可以重新打开;
- 第一帧是否能够在预览中显示。
视频验证
- 容器和编码是否正确;
- 视频尺寸是否符合要求;
- 时长是否正确;
- 视频是否能够完整解码;
- 音频轨道是否存在;
- 字幕、Overlay 和效果是否可见;
- 转场边界是否出现停顿或重复帧;
- 是否存在声道错位和异常静音。
只有成片和工程均通过检查,任务才被认为完成。
这套架构解决了哪些自媒体生产问题
| 问题 | 技术方案 |
|---|---|
| 素材太多,不知道如何筛选 | 多模态分析与源时间决策记录 |
| 自动剪辑缺少内容理解 | 按内容类型选择专业工作流 |
| AI 修改不可预测 | project.diff 语义预览 |
| 重复执行导致素材重复 | 幂等操作 ID |
| 工程修改一半失败 | 事务和前置条件 |
| 字幕与声音错位 | 字幕—语音绑定约束 |
| AI 结果无法修改 | 可移植 .timeline 工程 |
| 工具之间反复导入导出 | 统一多轨时间线 |
| 素材隐私和远程成本 | 浏览器本地模型推理 |
| 不知道结果是否真正可用 | 工程检查、解码和视听验证 |
| 多语言制作成本高 | 复用画面结构并替换配音与字幕 |
| 无法批量生产 | 版本化声明式命令计划 |
当前边界与后续方向
目前,命令层已经覆盖工程检查、媒体导入、时间调整、字幕、部分属性和可移植渲染子集。
更复杂的字幕渲染、贴纸、Overlay、转场、效果、AI 生成和完整合成,仍可能需要浏览器编辑器参与。
后续可以继续推进:
- 扩大
project.render的合成覆盖范围; - 为 ASR、TTS、视觉分析和导出增加进度事件;
- 增加真正可取消的长任务;
- 持久化工程级撤销检查点;
- 暴露结构化视觉和语音分析记录;
- 在命令注册表上增加 MCP 传输适配层;
- 提高命令渲染与浏览器渲染的一致性。
系统当前采用“稳定命令层+浏览器兼容层”的渐进式架构,而不是将尚未完成的能力描述成全自动无头服务。
总结
Timeline Studio Skills 的核心并不是让 Agent 学会操作视频编辑器界面,而是建立一套能够理解素材、描述决策、修改工程和验证结果的视频生产协议。
这套协议包含:
- 面向不同内容类型的剪辑工作流;
- 多模态素材分析;
- 可解释的源时间决策;
- 声明式时间线命令;
- 版本、事务和幂等机制;
- 浏览器本地 AI 推理;
- 可移植
.timeline工程; - 成片与工程双重验证。
对于自媒体创作者,它减少的是剪辑、字幕、配音、检查和多版本制作中的重复劳动。
对于开发者,它提供了一个值得探索的方向:Agent 不一定只能调用生成模型,也可以成为一套专业生产软件的工作流执行者。
最终,AI 负责把创作意图可靠地变成工程;人类继续负责事实、观点、审美和表达。
查看效果和可复现案例:
Timeline Studio Skills Handbook
安装、运行、部署或参与开发: