# 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 ```bash # 克隆 Wails 仓库 git clone https://github.com/wailsapp/wails.git cd wails git checkout v3-alpha # 安装 Wails3 CLI cd v3/cmd/wails3 go install ``` ### 2. 安装前端依赖 ```bash cd frontend npm install ``` ### 3. 构建前端 ```bash npm run build ``` ### 4. 运行应用 ```bash # 在项目根目录 go run app.go ``` ## 功能说明 ### 视频拼接 1. **组合拼接模式**:从每个文件夹随机选择视频进行组合 2. **顺序拼接模式**:按索引顺序从每个文件夹选择对应位置的视频 ### 视频抽帧 - 随机删除视频中的一帧 - 支持批量处理 - 自动处理 HEVC 编码 ### 视频元数据修改 - 通过修改视频元数据改变文件 MD5 - 不重新编码视频,处理速度快 ## 注意事项 1. 确保 FFmpeg 已安装并可在命令行中使用 2. 视频处理需要足够的磁盘空间 3. 临时文件存储在系统临时目录 ## 开发说明 ### 后端服务 所有后端服务都在 `services/` 目录下,使用 Go 编写。 ### 前端 前端使用 Vue3 + Vite 构建,代码在 `frontend/` 目录下。 ### 前后端通信 Wails3 使用自动绑定机制,后端服务通过 `app.Bind()` 绑定后,前端可以通过 `window.go.services.ServiceName` 访问。 ## 已知问题 1. 文件选择对话框在浏览器环境中需要使用 HTML5 API,实际部署时可能需要使用 Wails3 的文件对话框 API 2. 进度回调函数需要根据 Wails3 的实际 API 进行调整 ## 后续改进 1. 添加视频预览功能 2. 优化错误处理和用户提示 3. 添加更多视频格式支持 4. 优化 UI 设计