Augani/openreel-video

GitHub: Augani/openreel-video

基于 WebGPU 和 WebCodecs 构建的开源浏览器端专业视频编辑器,无需安装、无需上传云端即可完成从剪辑到导出的全流程。

Stars: 2387 | Forks: 330

# OpenReel 视频 OpenReel Video 是一款功能齐全、基于浏览器的视频编辑器,完全在客户端运行。它使用 React、TypeScript、WebCodecs 和 WebGPU 构建,可提供专业级视频编辑,无需昂贵的软件或云端处理。 **[在线体验](https://openreel.video)** | **[文档](CONTRIBUTING.md)** | **[讨论](https://github.com/Augani/openreel-video/discussions)** | **[Twitter](https://x.com/python_xi)** ![OpenReel Editor](https://img.shields.io/badge/Lines%20of%20Code-130k+-blue) ![License](https://img.shields.io/badge/License-MIT-green) ![Status](https://img.shields.io/badge/Status-Beta-orange) ![Open Source](https://img.shields.io/badge/Open%20Source-100%25-brightgreen) ## 为什么选择 OpenReel? - **100% 客户端** - 您的视频永远不会离开您的设备。无需上传,无需云端处理,完全保护隐私。 - **无需安装** - 在 Chrome/Edge 中即可运行。打开即可开始编辑。 - **专业功能** - 多轨道时间轴、关键帧动画、色彩分级、音频特效等。 - **GPU 加速** - 使用 WebGPU 和 WebCodecs 实现流畅的 4K 编辑和快速导出。 - **永久免费** - MIT 许可,无订阅,无水印。 ## 功能特性 ### 视频编辑 - **多轨道时间轴** - 无限的视频、音频、图像、文本和图形轨道 - **实时预览** - 通过 GPU 加速实现流畅播放 - **精准编辑** - 逐帧精确浏览、剪切、修剪、拆分、波纹删除 - **转场** - 交叉淡化、黑/白场过渡、擦除、滑动效果 - **视频特效** - 亮度、对比度、饱和度、模糊、锐化、发光、暗角、色度键 - **混合模式** - 正片叠底、滤色、叠加、相加、相减等 - **速度控制** - 0.25倍到4倍,并保留音频音调 - **裁剪与变换** - 位置、缩放、旋转以及 3D 透视 ### 图形与文本 - **专业文本编辑器** - 丰富的样式、阴影、描边、渐变 - **20多种文本动画** - 打字机、淡入淡出、滑动、弹跳、弹出、弹性、故障 - **卡拉OK式字幕** - 逐词高亮并与音频同步 - **形状工具** - 矩形、圆形、箭头、多边形、星形,支持填充/描边 - **SVG 支持** - 导入带有颜色着色和动画的 SVG - **贴纸与表情符号** - 内置素材库 - **背景生成器** - 纯色、线性渐变、网格渐变、图案 - **关键帧动画** - 使用 20 多种缓动曲线随时间推移为任何属性制作动画 ### 音频 - **多轨混音** - 无限音频轨道与实时混音 - **波形可视化** - 可视化音频编辑 - **音频特效** - EQ、压缩器、混响、延迟、合唱、镶边、失真 - **音量与声像** - 带有淡入/淡出效果的单片段控制 - **节拍检测** - 自动生成与音乐同步的标记 - **音频闪避** - 播放对话时自动降低音乐音量 - **降噪** - 3次pass降噪(音调、宽带、低频轰鸣) ### 色彩分级 - **色轮** - Lift、Gamma、Gain 控制 - **HSL 调整** - 色相、饱和度、亮度微调 - **曲线编辑器** - RGB 及独立通道曲线 - **LUT 支持** - 导入并应用 3D LUT - **内置预设** - 一键色彩分级 ### 导出 - **MP4 (H.264/H.265)** - 通用兼容性 - **WebM (VP8/VP9/AV1)** - 针对Web优化的格式 - **ProRes** - 专业中间格式(Proxy、LT、Standard、HQ、4444) - **质量预设** - 4K @ 60fps、1080p、720p、480p - **自定义设置** - 比特率、帧率、编码器选项、色彩深度 - **硬件编码** - 使用 WebCodecs 实现快速导出 - **AI 超分辨率** - 通过 WebGPU 着色器增强分辨率 - **音频导出** - MP3、WAV、AAC、FLAC、OGG - **图像序列** - JPG、PNG、WebP 逐帧导出 - **进度跟踪** - 实时进度并支持取消 ### 专业工具 - **无限撤销/重做** - 完整历史记录与恢复 - **自动保存** - 永不丢失工作(IndexedDB 存储) - **键盘快捷键** - 专业工作流 - **对齐网格** - 磁性对齐 - **轨道管理** - 显示/隐藏、锁定/解锁、重新排序 - **字幕支持** - 导入 SRT 并支持自定义样式 - **屏幕录制** - 录制屏幕、摄像头或同时录制两者 - **项目共享** - 导出/导入项目文件 ### 性能 - **WebGPU 渲染** - GPU 加速合成 - **WebCodecs API** - 硬件视频解码/编码 - **帧缓存** - LRU 缓存实现流畅播放 - **Web Workers** - 后台处理 - **4K 支持** - 编辑并导出 4K 分辨率 ## 快速开始 ### 在线体验 访问 **[openreel.video](https://openreel.video)** 立即开始编辑。 ### 本地运行 ``` # Clone repository git clone https://github.com/Augani/openreel-video.git cd openreel-video # Install dependencies (requires Node.js 18+) pnpm install # Start development server pnpm dev # Open http://localhost:5173 ``` ### 生产环境构建 ``` pnpm build pnpm preview ``` ## 浏览器要求 | 浏览器 | 版本 | 状态 | |---------|---------|--------| | Chrome | 94+ | 完全支持 | | Edge | 94+ | 完全支持 | | Firefox | 130+ | 完全支持 | | Safari | 16.4+ | 完全支持 | 所有主流浏览器现在都支持 WebCodecs 进行硬件加速的视频编码/解码。 **推荐配置:** - 8GB+ 内存 - 用于 4K 编辑的独立 GPU - 现代多核 CPU ## 系统架构 ### Monorepo 结构 ``` openreel/ ├── apps/web/ # React frontend (~66k lines) │ └── src/ │ ├── components/ # UI components │ │ └── editor/ # Editor panels (Timeline, Preview, Inspector) │ ├── stores/ # Zustand state management │ ├── services/ # Auto-save, shortcuts, screen recording │ └── bridges/ # Engine coordination │ └── packages/core/ # Core engines (~59k lines) └── src/ ├── video/ # Video processing, WebGPU rendering ├── audio/ # Web Audio API, effects, beat detection ├── graphics/ # Canvas/THREE.js, shapes, SVG ├── text/ # Text rendering, animations ├── export/ # MP4/WebM encoding └── storage/ # IndexedDB, serialization ``` ### 核心技术 - **React 18** + **TypeScript** - 类型安全的 UI - **Zustand** - 轻量级状态管理 - **MediaBunny** - 视频/音频处理 - **WebCodecs** - 硬件编码/解码 - **WebGPU** - GPU 加速渲染 - **Web Audio API** - 专业音频处理 - **THREE.js** - 3D 变换和特效 - **IndexedDB** - 本地项目存储 ### 设计原则 - **基于操作的编辑** - 每次编辑都是一个可撤销的操作 - **不可变状态** - 使用 Zustand 实现可预测的更新 - **引擎分离** - 视频、音频、图形引擎相互独立 - **渐进式增强** - 优雅降级(WebGPU → Canvas2D) ## AI 管理开发 OpenReel 是一个 AI 辅助开源开发的实验。Claude AI 协助管理: - **Issue 分类** - 审查并响应 Issue - **代码实现** - 编写功能和修复 Bug - **代码审查** - 维护质量标准 - **文档编写** - 保持文档最新 来自 Augustus 的人工监督确保了战略方向以及对重大更改的最终审批。所有代码都是公开的、经过测试的,并遵循最佳实践。 **这对贡献者意味着什么:** - Issue 会得到快速审查(通常在 24 小时内) - Bug 修复发布迅速 - 对问题提供清晰、详细的回复 - 高标准的代码质量 ## 贡献 我们欢迎各种贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取指南。 **贡献方式:** - 提供复现步骤以报告 Bug - 在 Discussions 中提出功能建议 - 提交用于修复 Bug 或增加功能的 PR - 改进文档 - 编写测试 - 分享特效预设 **开发工作流:** ``` # Fork and clone git clone https://github.com/Augani/openreel-video.git # Create feature branch git checkout -b feat/your-feature # Make changes, then test pnpm typecheck pnpm test pnpm lint # Commit with conventional commits git commit -m "feat: add your feature" # Push and open PR git push origin feat/your-feature ``` ## 路线图 ### 已完成 - 支持拖放的多轨道时间轴 - GPU 加速的实时视频预览 - 完整的编辑套件(剪切、修剪、拆分、转场) - 带有 20 多种动画的文本编辑器 - 图形(形状、SVG、贴纸、背景) - 带有特效和节拍检测的音频混音 - 支持 LUT 的色彩分级 - 关键帧动画系统 - 导出为 MP4/WebM(支持 4K) - 屏幕录制 - AI 超分辨率 - 带有自动保存的撤销/重做 ### 进行中 - 嵌套序列(时间轴中的时间轴) - 运动追踪 - 更多导出格式(ProRes、GIF) - 插件系统 ### 计划中 - 调整图层 - 高级蒙版 - 音频频谱编辑 - 协同编辑 - 移动端优化 ## 许可证 MIT 许可证 - 可免费用于个人和商业项目。 详情请参见 [LICENSE](LICENSE)。 ## 致谢 **构建工具:** - [MediaBunny](https://mediabunny.dev) - 媒体处理 - [React](https://react.dev) - UI 框架 - [Zustand](https://zustand-demo.pmnd.rs/) - 状态管理 - [THREE.js](https://threejs.org) - 3D 渲染 - [TailwindCSS](https://tailwindcss.com) - 样式设计 **灵感来源:** - DaVinci Resolve - 专业的工具,出色的体验 - CapCut - 让所有人都能轻松上手剪辑 - Figma - 基于浏览器的专业软件 ## 支持 - **GitHub Issues** - Bug 报告与功能请求 - **GitHub Discussions** - 提问与社区交流 - **Twitter/X** - [@python_xi](https://x.com/python_xi) **由 [@python_xi](https://x.com/python_xi) 和 AI 共同精心打造。** *让所有人都能触达专业视频编辑。永久免费。永久开源。*
标签:4K视频编辑, MIT协议, React, Syscalls, TypeScript, WebCodecs, WebGPU, Web前端工具, 免费开源, 关键帧动画, 多媒体处理, 多轨时间线, 字幕特效, 安全插件, 客户端渲染, 开源CapCut替代, 无水印, 本地处理, 浏览器端, 网络安全, 自动化攻击, 色彩校正, 视频剪辑, 视频编辑器, 视频转场, 隐私保护, 音视频同步, 音频效果