浏览器端视频编辑器,fork 自 OpenCut(MIT License)。 核心编辑功能完全在浏览器本地运行,无需后端服务。
- 多轨时间线:拖拽、缩放、多轨编辑
- 裁剪与拼接:分割、合并多段视频
- 字幕系统:支持
.srt/.ass导入,多轨字幕,字体/字号/颜色/描边/位置可调 - 变速播放:0.5x - 2x 变速,支持保持音调
- 音频编辑:静音、音画分离、多轨混音、音量独立调节
- 图片素材:作为独立片段或贴纸
- 自定义画布:9:16 / 16:9 / 3:4 / 1:1 / 自定义尺寸
- 导出:MP4 (H.264) / WebM (VP9),可选质量与是否含音频
- 本地存储:IndexedDB + OPFS,数据不上传
| 层 | 技术 |
|---|---|
| 前端框架 | Next.js 16 + React 19 |
| 状态管理 | Zustand 5 |
| UI 组件 | Radix UI + Tailwind CSS 4 |
| 拖拽 | @hello-pangea/dnd |
| 音频处理 | soundtouchjs(变速保持音调)+ wavesurfer.js(波形) |
| 媒体导出 | mediabunny |
| WASM 核心 | opencut-wasm(Rust 编译) |
| 包管理 | Bun 1.2+ |
| 构建 | Turbo |
本仓库基于 OpenCut 做了以下裁剪:
| 移除的功能 | 原因 |
|---|---|
| AI 语音转字幕(Whisper) | 不需要 AI 生成能力,字幕手动输入或导入 |
| Freesound 音效素材库 | 第三方服务,需 API key |
| Marble CMS 集成 | 第三方服务,需自建后端 |
| BotId 机器人检测 | 第三方服务 |
保留的功能:字幕文件导入(.srt / .ass)、所有核心编辑功能。
Upstash Redis 保留,但使用开源的 serverless-redis-http 本地模拟器,无需注册 Upstash 账号。
Video Editor 是纯前端应用,核心编辑功能完全在浏览器本地运行,无需后端服务、数据库或 Redis。
- Bun 1.2+(或 Node.js 18+)
# 1. 克隆仓库
git clone https://github.com/cckais/video-editor.git
cd video-editor
# 2. 复制环境变量(可选,纯前端开发可不配)
cp apps/web/.env.example apps/web/.env.local
# 3. 安装依赖
bun install
# 4. 启动开发服务器
bun dev:web
# 访问 http://localhost:3000Windows 用户注意:Bun 在 Windows 上安装依赖时可能崩溃,可改用
npm install --legacy-peer-deps,然后用npx next dev启动。
Video Editor 支持三种生产部署方式,详见 部署文档.md:
- 方式 A:静态导出 + Nginx(推荐,最轻量)
- 方式 B:Docker 部署(基于
apps/web/Dockerfile,Next.js standalone 模式) - 方式 C:Tauri 桌面客户端(Windows .exe 便携版)
桌面应用是可选的,如果你只需要 Web 版本,跳过此部分。
# 安装 Rust 工具链
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 参见 src-tauri/README.mdnext.config.ts配置了output: "export",构建产物是纯静态文件,无需 Node.js runtime- 用任意静态文件服务器即可托管(Nginx / Caddy / Cloudflare Pages / Vercel 等)
- 服务器需配置 COOP/COEP 头(SharedArrayBuffer 要求,视频编辑必需):
Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp
video-editor/
├── apps/
│ ├── web/ # Next.js Web 应用
│ └── desktop/ # GPUI 桌面应用(开发中)
├── rust/ # 平台无关核心:GPU 合成器、特效、WASM 绑定
└── docs/ # 架构文档
本项目可独立部署,也可作为 AI 导演工作台 的子项目集成。集成方式参考主项目 README 的"子项目集成"章节。
本项目 fork 自 OpenCut,感谢 OpenCut 团队的开源贡献。
