VideoConcat/wails3-app/README.md
2026-01-06 19:35:21 +08:00

122 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 设计