主要改进: - 修复前端模板选择与后端识别不匹配问题 - 解决驼峰命名法与下划线命名法转换问题 - 实现正确的宽高比转换滤镜链 (tvai_up + scale + crop) - 添加模板名称传递机制避免硬编码推断 - 优化 NVENC 编码器分辨率限制处理 - 支持 16:99:16 和 9:1616:9 双向转换 技术细节: - 前端: 修复 outSizeMethod 字段为 undefined 的问题 - 后端: 添加 template_name 字段到 WebTopazSettings - 滤镜: 使用独立的 scale 和 crop 滤镜实现精确转换 - 调试: 增加详细的调试信息便于问题排查 |
||
|---|---|---|
| .github/workflows | ||
| .promptx | ||
| apps/desktop | ||
| cargos | ||
| docs | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| RELEASE-v0.1.9.md | ||
| RELEASE_NOTES_0.1.6.md | ||
| RELEASE_NOTES_v0.1.2.md | ||
| RELEASE_NOTES_v0.1.5.md | ||
| RELEASE_NOTES_v0.2.0.md | ||
| RUST_AWESOME.md | ||
| TAURI_AWESOME.md | ||
| ai.md | ||
| comfyui.json | ||
| openapi.json | ||
| openapi.md | ||
| openapi.prompt.md | ||
| openapitools.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| tsconfig.json | ||
| 换装-MidJourney.json | ||
README.md
MixVideo AI视频创作平台
🎯 产品愿景
愿景声明
"构建全球领先的AI驱动视频创作生态平台,让每个人都能轻松创作出专业级的视频内容"
使命
通过AI技术和创作者生态,降低视频创作门槛,提升创作效率,让优质内容创作变得触手可及,同时为创作者提供可持续的收入来源。
✨ 核心特性
🤖 AI智能分析
- 智能视频分类:基于Gemini AI的视频内容自动分类
- 场景检测:自动识别视频场景变化,智能分割片段
- 质量评估:AI评估视频质量,提供优化建议
📁 项目管理
- 项目组织:支持多项目管理,本地路径绑定
- 素材管理:视频、音频、图片素材统一管理
- 版本控制:素材版本追踪,支持回滚操作
🎬 模板系统
- 模板创建:可视化模板编辑器
- 智能匹配:AI驱动的素材与模板自动匹配
- 批量处理:一键应用模板到多个素材
👥 模特管理
- 模特档案:完整的模特信息管理系统
- 照片管理:支持多类型照片分类存储
- 关联匹配:素材与模特自动关联
🚀 快速开始
环境要求
- Node.js >= 18.0.0
- pnpm >= 8.0.0
- Rust >= 1.70.0
- Tauri CLI >= 2.0.0
安装步骤
- 克隆项目
git clone https://gitee.com/meepo_vip/mixvideo.git
cd mixvideo
- 安装依赖
pnpm install
- 启动开发环境
pnpm tauri:dev
- 构建生产版本
pnpm tauri:build
🏗️ 技术架构
前端技术栈
- 框架:React 18 + TypeScript
- 状态管理:Zustand
- UI组件:TailwindCSS + Lucide Icons
- 路由:React Router
- 构建工具:Vite
后端技术栈
- 框架:Tauri 2.0 (Rust)
- 数据库:SQLite
- AI集成:Google Gemini API
- 文件处理:FFmpeg
项目结构
mixvideo/
├── apps/
│ └── desktop/ # Tauri桌面应用
│ ├── src/ # React前端代码
│ │ ├── components/ # UI组件
│ │ ├── pages/ # 页面组件
│ │ ├── store/ # 状态管理
│ │ ├── services/ # 业务服务
│ │ └── types/ # 类型定义
│ └── src-tauri/ # Rust后端代码
│ ├── src/
│ │ ├── business/ # 业务逻辑层
│ │ ├── data/ # 数据访问层
│ │ └── presentation/ # 表现层
│ └── Cargo.toml
├── packages/ # 共享包
├── docs/ # 文档
└── promptx/ # 开发规范
📖 功能详解
🎥 视频处理流程
-
素材导入
- 支持批量导入视频、音频、图片
- 自动提取元数据信息
- 生成缩略图预览
-
智能分析
- AI场景检测和分割
- 内容分类和标签
- 质量评估和优化建议
-
模板匹配
- 基于AI的智能素材匹配
- 支持自定义匹配规则
- 批量处理和预览
-
输出导出
- 多格式输出支持
- 自定义参数配置
- 批量导出处理
🔧 AI分类设置
- 分类管理:创建和管理AI分类类别
- 提示词配置:自定义AI分类提示词
- 实时预览:提示词效果实时预览
- 批量分类:一键对项目素材进行AI分类
📊 数据统计
- 项目概览:素材数量、分类统计
- 使用情况:素材使用率分析
- 性能监控:AI分类任务进度
- 质量报告:内容质量评估报告
🛠️ 开发指南
代码规范
本项目遵循严格的开发规范,详见 promptx/ 目录:
- Tauri开发规范:
promptx/tauri-desktop-app-expert/ - 前端开发规范:
promptx/frontend-developer/ - UI/UX设计规范:遵循现代化设计原则
开发流程
- 创建功能分支
git checkout -b feature/your-feature-name
- 开发和测试
pnpm tauri:dev # 开发模式
pnpm test # 运行测试
- 提交代码
git add .
git commit -m "feat: 添加新功能描述"
- 合并到主分支
git checkout master
git merge feature/your-feature-name
git push origin master
测试策略
- 单元测试:核心业务逻辑测试
- 集成测试:API和数据库集成测试
- E2E测试:用户界面端到端测试
- 性能测试:AI处理性能基准测试
🔌 API集成
Gemini AI集成
// AI视频分类示例
const classifyVideo = async (videoPath: string) => {
const result = await invoke('start_video_classification', {
request: {
material_id: materialId,
project_id: projectId,
overwrite_existing: false
}
});
return result;
};
数据库操作
// Rust后端数据库操作示例
pub async fn create_material(
repository: &MaterialRepository,
request: CreateMaterialRequest,
) -> Result<Material> {
let material = Material::new(request);
repository.create(&material).await
}
📱 功能截图
主界面
- 项目管理界面
- 素材导入和管理
- AI分类设置
核心功能
- 智能视频分析
- 模板匹配系统
- 批量处理工具
🤝 贡献指南
我们欢迎所有形式的贡献!
如何贡献
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
贡献类型
- 🐛 Bug修复:修复已知问题
- ✨ 新功能:添加新的功能特性
- 📚 文档:改进文档和示例
- 🎨 UI/UX:界面和用户体验优化
- ⚡ 性能:性能优化和改进
- 🧪 测试:添加或改进测试用例
📋 更新日志
v0.1.25 (最新)
- ✨ 添加项目详情页面筛选功能
- 🐛 修复无限请求后台数据问题
- 🎨 优化模特名称显示
- ⚡ 提升UI响应性能
v0.1.24
- ✨ 实现AI分类设置管理
- 🔧 优化视频分类流程
- 📊 添加分类统计功能
查看完整更新日志:CHANGELOG.md
🔗 相关链接
- 项目主页:MixVideo官网
- 文档中心:开发文档
- API文档:API参考
- 社区论坛:讨论区
📞 联系我们
- 邮箱:contact@mixvideo.ai
- 微信群:扫码加入开发者群
- QQ群:123456789
- GitHub Issues:问题反馈
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🙏 致谢
感谢以下开源项目和技术:
- Tauri - 跨平台桌面应用框架
- React - 用户界面库
- Rust - 系统编程语言
- SQLite - 嵌入式数据库
- FFmpeg - 多媒体处理库
- Google Gemini - AI分析服务
⭐ 如果这个项目对你有帮助,请给我们一个星标!
Made with ❤️ by MixVideo Team
1.3 核心价值主张
- 创作者价值:提供AI工具和模板资源,大幅提升创作效率和内容质量
- 消费者价值:获得个性化、高质量的视频内容和服务
- 平台价值:构建可持续的创作者经济生态系统
🎬 MixVideo - 基于 Tauri 构建的跨平台多媒体处理桌面应用
✨ 特性
- 🚀 跨平台: 支持 Windows、macOS、Linux
- ⚡ 高性能: 基于 Rust + Tauri 2.0 构建
- 🎨 现代界面: React + TypeScript + Vite
- 🔧 可扩展: 支持多语言微服务架构
- 📦 多包管理: PNPM Workspace + Cargo Workspace
🏗️ 项目结构
mixvideo/
├── apps/
│ └── desktop/ # Tauri 桌面应用
├── packages/
│ ├── services/ # 微服务 (Python, Rust)
│ └── shared/ # 共享代码和协议
├── tools/ # 开发工具
└── docs/ # 文档
🚀 快速开始
环境要求
- Node.js 18+
- Rust 1.70+
- PNPM 8+
安装依赖
pnpm install
开发模式
# 启动桌面应用开发模式
pnpm tauri:dev
# 或者直接在 apps/desktop 目录下
cd apps/desktop
pnpm dev
构建应用
# 构建生产版本
pnpm tauri:build
# 或者在 apps/desktop 目录下
cd apps/desktop
pnpm tauri build
📦 发布
手动发布
- 构建应用:
pnpm tauri:build - 安装包位置:
target/release/bundle/- Windows:
.msi和.exe安装包 - macOS:
.dmg和.app包 - Linux:
.deb,.rpm和.AppImage
- Windows:
自动发布 (GitHub Actions)
-
创建新的 Git 标签:
git tag v0.1.0 git push origin v0.1.0 -
GitHub Actions 将自动构建并创建 Release
🛠️ 技术栈
桌面应用
- 前端: React 18 + TypeScript + Vite
- 后端: Rust + Tauri 2.0
- 状态管理: 待定
- UI 组件: 待定
微服务 (计划中)
- Python 服务: FastAPI + gRPC
- Rust 服务: Tonic + gRPC
- 通信协议: Protocol Buffers
📝 开发指南
推荐 IDE
- VS Code + 扩展:
- Tauri
- rust-analyzer
- ES7+ React/Redux/React-Native snippets
代码规范
- Rust: 使用
cargo fmt和cargo clippy - TypeScript: 使用 ESLint + Prettier
- Python: 使用 Black + isort + flake8
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT License - 详见 LICENSE 文件
👨💻 作者
imeepos - GitHub