1.5 KiB
1.5 KiB
转码产物查询接口
目标
- 媒体维度查询 rendition 与帧图产物。
- 分集维度聚合转码任务、rendition、帧图状态。
/admin/dashboard/transcode改为明确 VO,OpenAPI 不再出现匿名 Object。
设计
MediaTranscodeOutputService统一读取媒体、任务、rendition 与 thumbnail。- rendition 按高度、视频码率、质量倒序,id 正序保证稳定。
- thumbnail 优先读取
thumbnails.vtt,解析 cue 后分页;无记录返回EMPTY, 记录失败返回FAILED,不把缺产物当服务错误。 - 分集聚合对不存在、无视频、无媒资、无任务返回明确 status 和空列表。
- dashboard 使用强类型 queue/failed task VO,保留现有字段语义并补 total。
接口
GET /admin/media/{id}/renditionsGET /admin/media/{id}/thumbnails?pageIndex=1&pageSize=100GET /admin/episodes/{id}/transcodeGET /admin/dashboard/transcode(响应类型由 Map 收敛为 VO)
缩略图响应内嵌 PageResult<MediaThumbnailFrameVO>,同时返回 sprite/VTT 元数据;
空产物 status 为 EMPTY,无绑定分集为 NO_EPISODE,损坏 VTT 为 INVALID。
TDD
- 先提交媒体有/无产物、不存在、VTT 解析与分页边界测试。
- 再提交接口、VO、聚合服务和 dashboard 类型收敛实现。
- 门禁:
mvn -pl fruitshorts-module-media test。
红线
- 不改
/app契约、specs、ReelShortWeb、Flutter。 - 不改 P1 入队与手动重转逻辑。
- 不启停服务,不操作真机。