video_sdk

Video SDK for Flutter — 对标 Premiere / DaVinci / FFmpeg 的纯剪辑技术核心 SDK。 License:MIT 开源(核心 + 自研 AI 模型)

安装

dependencies:
  video_sdk: ^0.1.0

快速开始

import 'package:video_sdk/video_sdk.dart';

final editor = VideoEditor();
await editor.init(const VideoSdkConfig(enableGpu: true));

// 注入 SPI(可选,按需注入)
editor.setMaterialProvider(MyMaterialProvider());   // 素材市场
editor.setCloudAiProvider(MyCloudAiProvider());     // 云端 AI(超分/人声分离/AI消除等)
editor.setModelProvider(MyModelProvider());          // 模型动态下载(whisper/RIFE等)

// 新建项目
final project = await editor.projectManager.newProject(
  name: 'demo',
  canvas: const CanvasSize(width: 1080, height: 1920),
  fps: 30,
);

// 导入素材 → 剪辑 → 导出
await editor.renderEngine.startPreview(textureId: texId, projectId: project.id);
await editor.exportManager.export(projectId: project.id, config: ExportConfig.fullHd30);

这是什么

video_sdk 采用业界标准的两层架构 + 可选插件包

  • Layer 1 核心 SDK(video_sdk 包) — 只做剪辑技术能力(时间线/视觉/字幕/音频/拍摄/渲染/基础 AI)+ SPI 接口
  • Layer 2 示例 App(template_app/ — 剪映风格完整业务参考实现(市场/模板/会员),接入方拷贝改
  • 可选插件包(video_sdk_ai / video_sdk_cloud — 高级 AI 创作、云端合成,按需依赖

核心承诺

  • MIT 开源(包括 Flutter 层、iOS/Android Native 引擎)
  • 零云厂商 SDK 依赖(不用剪映 API、Adobe SDK、OpenAI API)
  • 核心 SDK 不含业务规则(市场/模板业务在示例 App,接入方可控)
  • SPI 架构:云端 AI / 模型下载 / 素材市场 / 模板系统等能力全部通过 SPI 注入

业界对比

厂商 核心 SDK 含业务吗 我们的方案
Adobe Premiere SDK ❌ 只管剪辑引擎 一致:核心只做剪辑
DaVinci Resolve SDK ❌ 只管调色/渲染 一致
FFmpeg ❌ 只管编解码 一致
OpenShot / Shotcut ❌ 核心只剪辑 一致:template_app 当参考
我们(video_sdk) ❌ 核心不含业务,业务在 template_app ✅ 业界标准

三种接入方式

方式 1:仅用核心 SDK(最小接入,纯剪辑引擎)

dependencies:
  video_sdk: ^1.0.0
final editor = VideoEditor();
await editor.init();
final project = await editor.createProject(name: 'demo', canvas: Resolution.hd1080x1920, fps: Fps.fps30);
final asset = await editor.assetManager.importLocalFile('/path/to/video.mp4');
// ... 剪辑 ...
await editor.exportManager.export(projectId: project.id, config: ExportConfig.fullHd30);
// 没有模板市场、没有素材市场、没有会员——纯剪辑引擎

方式 2:核心 SDK + 可选插件包(按需扩展)

dependencies:
  video_sdk: ^1.0.0
  video_sdk_ai: ^1.0.0         # 文生视频/文生图/数字人/声纹/AI 配乐
  video_sdk_cloud: ^1.0.0      # 云端合成(自建 GPU 集群)
await editor.init();
editor.registerPlugin(VideoSdkAiPlugin());
editor.registerPlugin(VideoSdkCloudPlugin());

final ai = editor.getPlugin<VideoSdkAiPlugin>()!;
final videoUrl = await ai.textToVideoManager.generate(prompt: '...');

方式 3:核心 SDK + 自有业务 / 拷贝 template_app

await editor.init(
  ports: Ports(
    materialMarket: MyCompanyMaterialMarket(),       // 我自己的素材市场
    templateSystem: MyCompanyTemplateSystem(),       // 我的模板系统
    userSystem: MyCompanyUserSystem(),               // 我的用户/会员
    paySystem: MyCompanyPay(),                       // 我的支付
    // 不需要云端合成?就不传 cloudRender
  ),
);

或拷贝 template_app(开箱即用剪映风格):

cp -r video-sdk-flutter/template_app/lib/  my_app/lib/video_template/

核心特性

  • ~25 个技术 Manager(时间线/视觉/字幕/音频/拍摄/渲染/基础 AI,详见 docs/01-功能清单.md
  • 业界标准协议:FFmpeg + 平台硬编(VideoToolbox/MediaCodec)+ Metal/GLES3
  • 专业级时间线模型:参考 OpenTimelineIO + 剪映 draft,支持多轨/关键帧/蒙版/曲线变速
  • 基础 AI 全部自研:端侧 Whisper 自动字幕 + MediaPipe 抠像 + Real-ESRGAN/RIFE 视频增强
  • 性能优化:代理剪辑、三级缓存、GPU 渲染管线
  • SPI 架构:所有外部依赖通过 SPI 注入,SDK 零硬编码地址
  • 算法模型三种策略:本地内置 / 动态下发(SPI)/ 云端 API(SPI)
  • 互通:导入剪映 draft、导出 OpenTimelineIO/FCPXML/EDL/PR XML

SPI 接口

SDK 发布到 pub.dev,不包含任何私有服务地址。所有外部能力通过 SPI 接口由接入方注入:

SPI 接口 说明 未注入时
MaterialProvider 素材市场 素材市场不可用
MusicProvider 在线音乐 音乐功能不可用
TemplateProvider 模板市场 模板功能不可用
AiProvider 高级 AI(文生视频/图等) 高级 AI 不可用
CloudRenderProvider 云端合成 云端渲染不可用
AssetStorageProvider 素材存储 云端素材不可用
CloudAiProvider 云端 AI(超分/人声分离/翻译等) 云端 AI 不可用,本地功能正常
ModelProvider 模型动态下载(whisper/RIFE等) 动态模型不可用,本地功能正常

设计文档

# 文档 内容
00 总体设计 两层架构 + 可选插件包
01 功能清单 核心能力 + 可选插件 + 示例 App 内容
02 架构与时间线模型 核心 VideoEditor + Ports + 时间线模型
03 API 契约 核心 Manager API + 错误码 + SPI 接口(12 个业务 Port)
04 实现细节 Native 桥接 + 渲染管线 + AI + 性能 + 自研算法
05 工程交付 路线图 + 测试策略 + template_app 结构

目录结构

video-sdk-flutter/
├── README.md                  ← 你在这里
├── docs/                      ← 设计文档(6 篇)
│   ├── 00-总体设计.md
│   ├── 01-功能清单.md
│   ├── 02-架构与时间线模型.md
│   ├── 03-API契约.md          ← API + 错误码 + SPI(合并版)
│   ├── 04-实现细节.md          ← Native + 渲染 + AI + 性能 + 自研算法(合并版)
│   └── 05-工程交付.md          ← 路线图 + 测试 + template_app(合并版)
├── lib/                       ← Layer 1 核心 SDK(待开发)
│   └── src/ports/             ← SPI 接口定义
├── plugins/                   ← 可选插件包(待开发)
│   ├── video_sdk_ai/
│   └── video_sdk_cloud/
├── template_app/              ← Layer 2 示例 App(待开发)
│   └── lib/ports/             ← 业务 Port 参考实现(拷贝改)
├── example/                   ← 极简 example(仅核心用法)
└── test/                      ← 核心包测试

版本规划

版本 状态 目标
v0.1 MVP 🚧 设计完成,待开发 时间线 + 基础剪辑 + 导出 + Ports 框架
v0.5 滤镜/调色/转场/字幕/音频/美颜/抠像
v0.7 基础 AI(字幕/智能剪辑/视频增强)+ 拍摄
v0.9 高级导出 + 互通 + 云合成插件
v1.0 开源首发 核心 SDK + 12 个业务 SPI + template_app 完整版
v1.1 可选插件 video_sdk_ai(文生视频/图/数字人/声纹/AI 配乐)
v2.0 企业托管服务(代码仍 MIT)

详见 docs/05-工程交付.md 的「第一部分:版本路线图」。

许可证

  • 核心代码(lib/)MIT License(完全开源)
  • 示例 App(template_app/)MIT License(接入方可拷贝改业务规则)
  • 可选插件包(video_sdk_ai / video_sdk_cloud)MIT License(完全开源)
  • iOS / Android Native 引擎MIT License(完全开源)
  • 自研 AI 模型权重:MIT / Apache 2.0 / CC-BY(公开分发)
  • 托管服务(可选):服务收费(GPU 推理集群 / 云端合成 / 素材市场抽成)

商业化模式:参考 GitLab / Sentry / Stable Diffusion / Hugging Face 的「开源核心 + 托管服务」模式。客户可自托管一切(0 成本),或购买托管服务(按用量付费)。

相关仓库

Libraries

andrew_video_sdk
Video SDK — Layer 1 Core with SPI Architecture