122 lines
2.7 KiB
Markdown
122 lines
2.7 KiB
Markdown
# 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 设计
|
||
|