Files
AIGC/demo/VIDEO_GENERATION_DIAGNOSTIC.md

150 lines
3.4 KiB
Markdown
Raw Normal View History

# 视频生成失败诊断报告
## 问题分析
根据代码分析,视频生成失败可能的原因包括:
### 1. 图片传输问题
#### 可能的问题点:
- **图片文件路径错误**: 相对路径无法找到文件
- **图片文件不存在**: 上传后文件丢失或路径错误
- **图片格式不支持**: 外部API不支持特定格式
- **图片大小超限**: 超过API限制
#### 检查方法:
```bash
# 检查队列状态
curl -X GET http://localhost:8080/api/diagnostic/queue-status
# 检查特定任务的图片文件
curl -X GET http://localhost:8080/api/diagnostic/check-image/{taskId}
# 获取失败任务列表
curl -X GET http://localhost:8080/api/diagnostic/failed-tasks
```
### 2. 队列处理问题
#### 可能的问题点:
- **任务状态更新失败**: 数据库事务问题
- **外部API调用失败**: 网络或认证问题
- **积分系统错误**: 积分冻结/扣除失败
- **任务超时**: 处理时间过长
#### 检查方法:
```bash
# 检查队列状态统计
curl -X GET http://localhost:8080/api/diagnostic/queue-status
```
### 3. 外部API问题
#### 可能的问题点:
- **API认证失败**: API密钥无效或过期
- **API服务不可用**: 外部服务宕机
- **请求格式错误**: 参数格式不符合API要求
- **响应解析失败**: API返回格式变化
## 诊断步骤
### 1. 检查队列状态
```bash
GET /api/diagnostic/queue-status
```
**返回信息**
- 总任务数
- 待处理任务数
- 处理中任务数
- 已完成任务数
- 失败任务数
- 超时任务数
### 2. 检查图片文件
```bash
GET /api/diagnostic/check-image/{taskId}
```
**返回信息**
- 图片文件路径
- 文件是否存在
- 文件大小
- 文件是否可读
- 检查的路径列表
### 3. 获取失败任务详情
```bash
GET /api/diagnostic/failed-tasks
```
**返回信息**
- 失败任务列表
- 错误信息
- 失败时间
### 4. 重试失败任务
```bash
POST /api/diagnostic/retry-task/{taskId}
```
**功能**
- 重置任务状态为待处理
- 清除错误信息
- 重新加入队列
## 常见问题解决方案
### 1. 图片文件不存在
**问题**: `图片文件不存在: uploads/taskId/first_frame.jpg`
**解决**
- 检查上传目录权限
- 确认文件路径正确
- 检查文件是否被删除
### 2. 外部API调用失败
**问题**: `API提交失败: Connection timeout`
**解决**
- 检查网络连接
- 验证API密钥
- 检查API服务状态
### 3. 积分系统错误
**问题**: `可用积分不足`
**解决**
- 检查用户积分
- 验证积分冻结逻辑
- 重置用户积分
### 4. 任务超时
**问题**: `任务处理超时`
**解决**
- 检查外部API响应时间
- 调整超时设置
- 优化图片处理
## 监控建议
### 1. 实时监控
- 监控队列状态变化
- 跟踪失败任务数量
- 检查图片文件完整性
### 2. 日志分析
- 查看任务处理日志
- 分析错误信息模式
- 监控API调用成功率
### 3. 性能优化
- 优化图片处理流程
- 改进错误处理机制
- 增强重试逻辑
## 总结
通过诊断工具可以快速定位视频生成失败的原因:
1. **图片传输问题** - 使用 `/check-image/{taskId}` 检查
2. **队列处理问题** - 使用 `/queue-status` 监控
3. **外部API问题** - 查看失败任务详情
4. **系统配置问题** - 检查日志和配置
建议定期使用这些诊断接口来监控系统健康状态,及时发现和解决问题。