27 lines
1.5 KiB
Markdown
27 lines
1.5 KiB
Markdown
# 需求分析 — 视频帧显示链路修复
|
||
|
||
## 问题背景
|
||
用户报告三个关联问题:
|
||
1. 项目库中没有默认视频 `Data_MyVideo_1.mp4`
|
||
2. 点击默认视频进入分割工作区后,画面区域一片黑(无影像)
|
||
3. 导入新视频后进入工作区,同样看不到视频帧
|
||
|
||
## 根因分析
|
||
| 问题 | 根因 |
|
||
|------|------|
|
||
| 无默认项目 | 后端 lifespan 无自动种子逻辑;`server.ts` 硬编码项目但前端根本不请求 Express |
|
||
| 工作区黑屏 | `CanvasArea.tsx` 硬编码 Unsplash 外链,未从 store 读取帧;进入工作区不调用帧列表 API |
|
||
| 导入后黑屏 | 上传未关联 project_id;上传后未触发 `/api/media/parse` 帧提取;后端 `/frames` 返回的是 MinIO 对象名而非可访问 URL |
|
||
|
||
## 需求拆解
|
||
| 编号 | 需求 | 优先级 |
|
||
|------|------|--------|
|
||
| R1 | 后端启动时自动检测并注册 `Data_MyVideo_1.mp4` 为默认项目 | P0 |
|
||
| R2 | 后端 `/api/projects/{id}/frames` 返回 presigned URL 而非对象名 | P0 |
|
||
| R3 | 后端 `ProjectOut` 增加 `frame_count` 供前端显示 | P1 |
|
||
| R4 | 前端 `VideoWorkspace` 进入时自动获取帧列表并写入 store | P0 |
|
||
| R5 | 前端 `CanvasArea` 从 store 读取当前帧 URL 并渲染 | P0 |
|
||
| R6 | 前端 `FrameTimeline` 从 store 读取真实帧数据,支持切换 | P0 |
|
||
| R7 | 前端 `ProjectLibrary` 上传流程:创建项目 → 带 project_id 上传 → 触发解析 | P0 |
|
||
| R8 | 后端 upload 接口支持无 project_id 时自动创建项目 | P1 |
|