Files
2026-06-22 13:19:45 +08:00

3.7 KiB
Raw Permalink Blame History

Phase 8: 自动剪辑模板与编排引擎设计

状态:规划中
基线:Phase 7 已完成上传 → 分类 → 生成 → 下载主链路
原则:Clean Architecture、单一环境真源、生产不构建、未实现不假入口

一、目标

Phase 8 的目标是把当前“用户上传素材后手动发起生成”的 MVP,升级为“按模板自动编排素材并生成成片”的自动剪辑 1.0。

一句话:用户选择项目、素材库和剪辑模板,系统自动选素材、排顺序、生成剪辑计划,并交给 FFmpeg Worker 输出成片。

二、不做范围

  • 不做复杂 AI 脚本理解。
  • 不做数字人、直播切片、自动带货文案生成。
  • 不做真实支付/订阅闭环。
  • 不做假模板市场或 mock 运营后台。

三、核心能力

  1. 剪辑模板管理

    • 内置模板:基础混剪、产品展示、探店短片、口播素材拼接。
    • 模板字段:比例、目标时长、片段数量、片段时长、分类偏好、转场策略、音乐策略。
  2. 自动选片

    • 基于素材分类、质量分、时长、类型筛选候选素材。
    • 生成候选片段列表,不直接修改原素材。
  3. 剪辑计划

    • 新增 EditPlan 聚合,保存自动编排结果。
    • 新增 EditPlanClip,描述每个片段的素材、入点、出点、顺序、转场。
    • 生成任务从“直接 FFmpeg”升级为“按 EditPlan 执行 FFmpeg”。
  4. 前端工作流

    • 项目生成页新增模板选择。
    • 生成前展示剪辑计划预览。
    • 用户确认后创建生成任务。
    • 不支持的模板能力显示“暂未开放”,不得 fake success。

四、架构设计

Domain

  • EditTemplate
  • EditPlan
  • EditPlanClip
  • TemplateKind
  • ClipSelectionRule

Ports

  • EditTemplateRepository
  • EditPlanRepository
  • ClipSelector
  • EditPlanRenderer

Application Use Cases

  • ListEditTemplatesUseCase
  • PreviewEditPlanUseCase
  • CreateEditPlanUseCase
  • CreateGenerationTaskFromEditPlanUseCase

Adapters

  • SQLAlchemy repositories 保存模板与剪辑计划。
  • Rule-based ClipSelector 先实现确定性选片。
  • FFmpeg renderer 根据 EditPlan 拼接视频。

API

  • GET /api/v1/edit-templates
  • POST /api/v1/edit-plans/preview
  • POST /api/v1/edit-plans
  • GET /api/v1/edit-plans/{id}
  • POST /api/v1/generation/from-edit-plan

五、数据库迁移

新增 Alembic migration

  • edit_templates
  • edit_plans
  • edit_plan_clips

迁移规则:

  • Alembic 是唯一迁移真源。
  • 禁止生产自动建表。
  • 新字段必须进入 schema guard。

六、前端页面

  • ProjectGeneration.tsx

    • 模板选择
    • 参数输入
    • 预览剪辑计划
    • 创建生成任务
  • 新增 EditPlanPreview.tsx

    • 片段顺序
    • 素材名
    • 分类标签
    • 预计时长
    • 缺素材提示

七、测试与验收

单元测试

  • 模板参数校验。
  • 自动选片规则。
  • 剪辑计划生成。
  • FFmpeg 命令计划生成。

集成测试

  • 创建模板 → 上传素材 → 分类 → 预览计划 → 创建计划 → 生成任务。

公网 smoke

  • 注册登录。
  • 创建工作空间/项目/素材库。
  • 上传小视频。
  • 创建 edit plan。
  • 生成 MP4。
  • 下载验证 Content-Type: video/mp4

八、发布门禁

  • npm run type-check
  • npm run build
  • pytest 覆盖新增 use case/repository/API。
  • Alembic preflight 通过。
  • 公网 smoke 通过。
  • 生产部署继续 artifact/image 模式,生产机器不做前端构建。

九、里程碑

  1. Week 1:领域模型、迁移、repository、模板列表 API。
  2. Week 2:自动选片与剪辑计划 preview。
  3. Week 3FFmpeg 按 EditPlan 拼接。
  4. Week 4:前端生成页接入、smoke、发布。