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 成本),或购买托管服务(按用量付费)。
相关仓库
- im-sdk-flutter — 兄弟项目,IM SDK
- live-sdk-flutter — 兄弟项目,直播 SDK(可共享拍摄/美颜模块)
- mengchu/mengchu_flutter — 接入此 SDK 的宿主 App
Libraries
- andrew_video_sdk
- Video SDK — Layer 1 Core with SPI Architecture