docs: 添加缩略图修复验证指南和依赖更新
This commit is contained in:
parent
b06cae86f9
commit
b6c85901ce
|
|
@ -0,0 +1,108 @@
|
||||||
|
# 缩略图生成修复验证指南
|
||||||
|
|
||||||
|
## 修复内容概述
|
||||||
|
|
||||||
|
本次修复解决了"FFmpeg执行完成但缩略图文件不存在"的问题,通过以下改进:
|
||||||
|
|
||||||
|
### 1. 增强错误处理和日志
|
||||||
|
- 添加详细的FFmpeg命令和输出日志
|
||||||
|
- 记录每个步骤的执行状态
|
||||||
|
- 提供更准确的错误信息
|
||||||
|
|
||||||
|
### 2. 实现重试机制
|
||||||
|
- 原时间戳失败时自动尝试其他时间戳
|
||||||
|
- 重试策略:0秒、中间时间点、1秒、25%处、75%处
|
||||||
|
- 智能跳过超出视频长度的时间戳
|
||||||
|
|
||||||
|
### 3. 预检查机制
|
||||||
|
- 验证输入视频文件的有效性
|
||||||
|
- 检查时间戳的合理性
|
||||||
|
- 确保输出目录可写
|
||||||
|
- 验证磁盘空间
|
||||||
|
|
||||||
|
### 4. 优化FFmpeg参数
|
||||||
|
- 添加 `-hide_banner` 隐藏版权信息
|
||||||
|
- 使用 `-loglevel error` 减少噪音
|
||||||
|
- 添加 `-update 1` 避免格式问题
|
||||||
|
- 改进缩放过滤器保持宽高比
|
||||||
|
|
||||||
|
## 验证步骤
|
||||||
|
|
||||||
|
### 1. 编译验证
|
||||||
|
```bash
|
||||||
|
cd apps/desktop/src-tauri
|
||||||
|
cargo build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 运行单元测试
|
||||||
|
```bash
|
||||||
|
cargo test ffmpeg --lib
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 启动应用测试
|
||||||
|
```bash
|
||||||
|
cd apps/desktop
|
||||||
|
pnpm tauri:dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 功能测试
|
||||||
|
1. 创建或打开一个项目
|
||||||
|
2. 导入多个视频文件
|
||||||
|
3. 观察缩略图生成过程
|
||||||
|
4. 检查控制台日志
|
||||||
|
|
||||||
|
### 5. 预期改进
|
||||||
|
- 缩略图生成成功率显著提高
|
||||||
|
- 失败时有详细的错误信息和重试日志
|
||||||
|
- 对于特殊格式或损坏的视频文件有更好的处理
|
||||||
|
|
||||||
|
## 日志示例
|
||||||
|
|
||||||
|
### 成功案例
|
||||||
|
```
|
||||||
|
INFO mixvideo_desktop_lib::infrastructure::ffmpeg: 开始执行FFmpeg缩略图生成
|
||||||
|
INFO mixvideo_desktop_lib::infrastructure::ffmpeg: 缩略图生成成功
|
||||||
|
```
|
||||||
|
|
||||||
|
### 重试成功案例
|
||||||
|
```
|
||||||
|
WARN mixvideo_desktop_lib::infrastructure::ffmpeg: 缩略图生成尝试失败
|
||||||
|
INFO mixvideo_desktop_lib::infrastructure::ffmpeg: 缩略图生成重试成功
|
||||||
|
```
|
||||||
|
|
||||||
|
### 失败案例(已重试)
|
||||||
|
```
|
||||||
|
ERROR mixvideo_desktop_lib::infrastructure::ffmpeg: 所有缩略图生成尝试都失败
|
||||||
|
```
|
||||||
|
|
||||||
|
## 技术细节
|
||||||
|
|
||||||
|
### 新增函数
|
||||||
|
- `generate_thumbnail_with_retry()` - 带重试机制的缩略图生成
|
||||||
|
- `validate_thumbnail_generation()` - 预检查机制
|
||||||
|
|
||||||
|
### 修改的函数
|
||||||
|
- `generate_thumbnail()` - 增强错误处理和日志
|
||||||
|
- `get_material_segment_thumbnail()` - 使用新的重试机制
|
||||||
|
|
||||||
|
### 测试覆盖
|
||||||
|
- 输入文件不存在的处理
|
||||||
|
- 输出目录创建逻辑
|
||||||
|
- FFmpeg命令参数构造
|
||||||
|
- 边界情况处理
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
如果仍然遇到缩略图生成问题:
|
||||||
|
|
||||||
|
1. 检查FFmpeg是否正确安装
|
||||||
|
2. 查看详细的错误日志
|
||||||
|
3. 验证视频文件是否损坏
|
||||||
|
4. 检查磁盘空间是否充足
|
||||||
|
5. 确认输出目录权限
|
||||||
|
|
||||||
|
## 性能影响
|
||||||
|
|
||||||
|
- 重试机制可能增加处理时间,但提高成功率
|
||||||
|
- 预检查增加少量开销,但避免无效操作
|
||||||
|
- 详细日志可能增加日志文件大小
|
||||||
Loading…
Reference in New Issue