| .. | ||
| frontend | ||
| services | ||
| .gitignore | ||
| app.go | ||
| go.mod | ||
| README.md | ||
| wails.json | ||
| 快速开始.md | ||
| 构建说明.md | ||
| 迁移说明.md | ||
VideoConcat - Wails3 版本
这是使用 Wails3 重构的视频拼接工具。
项目结构
wails3-app/
├── app.go # 应用入口
├── go.mod # Go 模块文件
├── services/ # 后端服务
│ ├── video_service.go # 视频处理服务
│ ├── extract_service.go # 抽帧服务
│ ├── auth_service.go # 认证服务
│ ├── file_service.go # 文件服务
│ └── log.go # 日志工具
├── frontend/ # 前端代码
│ ├── package.json
│ ├── vite.config.js
│ ├── index.html
│ └── src/
│ ├── main.js
│ ├── App.vue
│ └── components/
│ ├── VideoTab.vue
│ ├── ExtractTab.vue
│ └── LoginDialog.vue
└── assets/ # 编译后的前端资源(自动生成)
环境要求
- Go 1.21 或更高版本
- Node.js 16 或更高版本
- FFmpeg(需要安装并添加到系统 PATH)
安装步骤
1. 安装 Wails3
# 克隆 Wails 仓库
git clone https://github.com/wailsapp/wails.git
cd wails
git checkout v3-alpha
# 安装 Wails3 CLI
cd v3/cmd/wails3
go install
2. 安装前端依赖
cd frontend
npm install
3. 构建前端
npm run build
4. 运行应用
# 在项目根目录
go run app.go
功能说明
视频拼接
- 组合拼接模式:从每个文件夹随机选择视频进行组合
- 顺序拼接模式:按索引顺序从每个文件夹选择对应位置的视频
视频抽帧
- 随机删除视频中的一帧
- 支持批量处理
- 自动处理 HEVC 编码
视频元数据修改
- 通过修改视频元数据改变文件 MD5
- 不重新编码视频,处理速度快
注意事项
- 确保 FFmpeg 已安装并可在命令行中使用
- 视频处理需要足够的磁盘空间
- 临时文件存储在系统临时目录
开发说明
后端服务
所有后端服务都在 services/ 目录下,使用 Go 编写。
前端
前端使用 Vue3 + Vite 构建,代码在 frontend/ 目录下。
前后端通信
Wails3 使用自动绑定机制,后端服务通过 app.Bind() 绑定后,前端可以通过 window.go.services.ServiceName 访问。
已知问题
- 文件选择对话框在浏览器环境中需要使用 HTML5 API,实际部署时可能需要使用 Wails3 的文件对话框 API
- 进度回调函数需要根据 Wails3 的实际 API 进行调整
后续改进
- 添加视频预览功能
- 优化错误处理和用户提示
- 添加更多视频格式支持
- 优化 UI 设计