AI 短视频出片:在对话入口选一个选题类型,Agent 先写好文案脚本给运营看,确认后自动用现有素材拼接成片、配音、配乐;运营在网页上逐段审片。
第一版(MVP)的范围,2026-10-19 由负责人确定。
| 做成什么 | 电脑浏览器打开的网页,不是 App |
|---|---|
| 在哪打开 | 网页跑在放素材的那台电脑上,同一局域网的同事用浏览器访问;外网打不开 |
| 有哪些模块 | 素材库、音乐库、文案库三个独立模块,各自单独管理;加上出片、审片 |
| 出片入口 | 和 Agent 的对话入口,直接列出 5 个默认选题类型(例如「测试产品」)。点一个类型、选产品,Agent 先写好文案脚本给你看;觉得合适,再让 Agent 自动选素材、出片 |
| 怎么看片 | 系统出好 MP4,网页里直接播放;换了片段要等重新出片 |
| 下载 | 视频生成后就能在审片页点「下载」,MP4 和字幕文件存到自己的电脑,不用等审核通过 |
| 素材从哪来 | 用现有的大量素材;没有拍摄团队,不补拍 |
| 这期不做 | 发布、排期、账号管理 |
谁在用、各自做什么。标「待定」的开发前再定。
分两段:三个库各自建好、单独管理;之后每条视频走一遍「出片和审片」。
%%{init: {"themeVariables": {"fontSize": "18px"}}}%%
flowchart TD
subgraph PREP["一、三个库:独立模块,各自单独管理(每行一个库)"]
A1["① 库管理
导入现有素材
填写或确认授权"] --> A2["② Agent
识别片段
(云端模型)"]
A2 --> A3["③ 库管理
复核「待确认」"]
A3 --> LIB[("素材库")]
M1["④ 库管理
人工添加
约 100 首音乐"] --> M2["⑤ 负责人
确认音乐授权"]
M2 --> MLIB[("音乐库")]
W1["⑥ 库管理
维护卖点、参考文案
行动号召模板"] --> WLIB[("文案库")]
end
subgraph MAKE["二、出片和审片:每条视频走一遍"]
B1(["⑦ 运营
对话入口
选选题类型和产品"]) --> B2["⑧ Agent
查素材库,策划文案脚本
(参考文案库)"]
B2 --> B3{"素材够吗?"}
B3 -- 不够 --> B4["运营
换选题类型或产品
↩ 回到 ⑦"]
B3 -- 够 --> B5{"⑨ 运营
逐段预览脚本"}
B5 -- 某段不合适 --> B6["Agent
重写这一段
↩ 回到 ⑨"]
B5 -- 合适,开始出片 --> B7["⑩ Agent
自动选片段"]
B7 --> B8["⑪ Agent
生成配音,定入点、出点
(OpenAI TTS)"]
B8 --> B9["⑫ Agent
从音乐库选曲"]
B9 --> B10["⑬ Agent
ffmpeg 出粗剪"]
B10 --> D["⑭ 审片页播放
可点「下载」
存到本地电脑"]
D --> C1{"⑮ 运营
逐段审片"}
C1 -- 都合适 --> C2(["通过
口播、字幕存进文案库"])
C1 -- 某段文案不合适 --> C5["Agent
重写这一段
只重新配这一句
↩ 回到 ⑬"]
C1 -- 某个片段不合适 --> C4["Agent
换一个片段
↩ 回到 ⑬"]
C1 -- 整条不合适 --> C3["运营
写原因
↩ 回到 ⑧"]
end
PREP ==> MAKE
C2 -.-> P["发布(暂不做)"]
style PREP fill:none,stroke:#999999
style MAKE fill:none,stroke:#999999
classDef sc fill:#d9f2e3,stroke:#2e7d4f,color:#0b2e1a
classDef boss fill:#fff1c2,stroke:#b38600,color:#3d2e00
classDef op fill:#dbe9ff,stroke:#2f5fb3,color:#0a1f44
classDef ag fill:#ece0ff,stroke:#6b3fb3,color:#24103f
classDef lib fill:#eeeeee,stroke:#666666,color:#111111
classDef todo fill:#ffffff,stroke:#999999,stroke-dasharray:5 5,color:#888888
class A1,A3,M1,W1 sc
class M2 boss
class B1,B4,B5,D,C1,C2,C3 op
class A2,B2,B3,B6,B7,B8,B9,B10,C4,C5 ag
class LIB,MLIB,WLIB lib
class P todo
素材库、音乐库、文案库是三个独立模块,各自单独管理。
%%{init: {"themeVariables": {"fontSize": "18px"}}}%%
flowchart TD
U(["① 库管理
导入现有素材
填写或确认授权"]) --> O["素材留在本地
「原片」文件夹,只读"]
O --> F1{"有人露脸?"}
F1 -- 有 --> F2{"授权包含
AI 处理?"}
F2 -- 没有或待确认 --> W["先不传云端
标「等授权」"]
F1 -- 没有 --> R
F2 -- 包含 --> R["② Agent
识别、切分片段
(云端模型)"]
R --> C["写入素材库
导出 CSV 到
assets/clips/"]
C --> Q{"有「待确认」
字段?"}
Q -- 有 --> M["③ 库管理
复核"]
M --> L[("素材库")]
Q -- 没有 --> L
classDef sc fill:#d9f2e3,stroke:#2e7d4f,color:#0b2e1a
classDef ag fill:#ece0ff,stroke:#6b3fb3,color:#24103f
classDef lib fill:#eeeeee,stroke:#666666,color:#111111
classDef sys fill:#ffffff,stroke:#999999,color:#333333
class U,M sc
class R ag
class L lib
class O,F1,F2,W,C,Q sys
%%{init: {"themeVariables": {"fontSize": "18px"}}}%%
flowchart TD
U(["① 库管理
人工添加约 100 首音乐
填写来源"]) --> O["曲子存进本地
「音乐」文件夹"]
O --> T["② Agent
给每首标
情绪、节奏、时长"]
T --> Q{"③ 负责人
授权已确认?"}
Q -- 没有或待确认 --> W["留在库里
选曲时筛掉"]
Q -- 已确认 --> L[("音乐库")]
classDef sc fill:#d9f2e3,stroke:#2e7d4f,color:#0b2e1a
classDef boss fill:#fff1c2,stroke:#b38600,color:#3d2e00
classDef ag fill:#ece0ff,stroke:#6b3fb3,color:#24103f
classDef lib fill:#eeeeee,stroke:#666666,color:#111111
classDef sys fill:#ffffff,stroke:#999999,color:#333333
class U sc
class Q boss
class T ag
class L lib
class O,W sys
%%{init: {"themeVariables": {"fontSize": "18px"}}}%%
flowchart TD
H(["① 库管理
人工维护卖点、参考文案
片尾行动号召模板"]) --> L[("文案库")]
R(["② 审核通过的成片
口播、字幕自动存入"]) --> L
L --> U["③ Agent
写文案时参考
用不用按实际情况定"]
classDef sc fill:#d9f2e3,stroke:#2e7d4f,color:#0b2e1a
classDef op fill:#dbe9ff,stroke:#2f5fb3,color:#0a1f44
classDef ag fill:#ece0ff,stroke:#6b3fb3,color:#24103f
classDef lib fill:#eeeeee,stroke:#666666,color:#111111
class H sc
class R op
class U ag
class L lib
运营在对话入口选一个选题类型,Agent 先写脚本给你看,确认后自动出片。
| 选题类型 | 视频怎么排 | 适合 |
|---|---|---|
| 测试产品 | 先给测试结果 → 痛点 → 亮出产品 → 两段测试证明 → 效果 → 行动号召 | 防水、持妆、耐磨等能演示的卖点 |
| 教程 | 成品效果 → 若干步骤 → 效果 → 行动号召 | 化妆品、穿搭 |
| 卖点清单 | 开头钩子 → 三个卖点 → 行动号召 | 新品介绍 |
| 达人推荐 | 达人原声 → 卖点和细节叠在原声上 → 效果 → 行动号召 | 有授权的达人讲解素材时 |
| 上身展示 | 上身效果 → 细节 → 多个场景 → 行动号召 | 包包、女装 |
%%{init: {"themeVariables": {"fontSize": "18px"}}}%%
flowchart TD
S(["① 运营
在对话入口点选题类型
选产品,可补充要求"]) --> A1["② Agent
查素材库
这个产品有哪些画面"]
A1 --> A2{"素材够
这个类型吗?"}
A2 -- 不够 --> A3["运营
看缺什么镜头
换类型或产品
↩ 回到 ①"]
A2 -- 够 --> A4["③ Agent
按类型策划文案脚本
每个镜头确认有片段
(参考文案库)"]
A4 --> A5{"每个卖点都有
画面证明?"}
A5 -- 没有 --> A6["Agent
删掉这个卖点
↩ 回到 ③"]
A5 -- 有 --> SC{"④ 运营
逐段预览脚本"}
SC -- 某段不合适 --> SC1["运营
标出这段,写原因"]
SC1 --> SC2["Agent
重写这一段
↩ 回到 ④"]
SC -- 合适,开始出片 --> A7["⑤ Agent
自动选片段编号
每个镜头首选 + 备选"]
A7 --> A8["⑥ Agent
按句生成配音
(OpenAI TTS)"]
A8 --> A9["⑦ Agent
按每句时长定入点、出点"]
A9 --> A10["⑧ Agent
从音乐库选曲"]
A10 --> A11["⑨ Agent
ffmpeg 出粗剪
MP4 + SRT 字幕"]
A11 --> D["⑩ 审片页播放
可点「下载」
存到本地电脑"]
D --> H{"⑪ 运营
逐段审片"}
H -- 都合适 --> OK(["通过,记下结论
口播、字幕存进文案库"])
H -- 某段文案不合适 --> T1["运营
标出这段,写原因"]
T1 --> T2["Agent
重写这一段
只重新配这一句
调这个镜头的入出点
↩ 回到 ⑨"]
H -- 某个片段不合适 --> V1["运营
标出这个片段,写原因"]
V1 --> V2["Agent
换一个片段
↩ 回到 ⑨"]
H -- 整条不合适 --> NG["运营
写原因
↩ 回到 ③"]
classDef op fill:#dbe9ff,stroke:#2f5fb3,color:#0a1f44
classDef ag fill:#ece0ff,stroke:#6b3fb3,color:#24103f
class S,A3,SC,SC1,D,H,OK,NG,T1,V1 op
class A1,A2,A4,A5,A6,A7,A8,A9,A10,A11,SC2,T2,V2 ag
开发前由负责人定,定了再更新本页。