Files
FruitServer/docs/plans/2026-10-22-transcode-media-id-fix.md

1.0 KiB
Raw Permalink Blame History

转码媒资 ID 精度与存量兜底修复

取证

  • 示例分集 2113150431755636737 的 video_asset_id 为 2113150398670966786,与 media_asset.id 完全一致。
  • JS Number('2113150398670966786') 序列化为 2113150398670966800, 超出安全整数后发生精度丢失,导致手动转码查询了错误 ID。

修复

  1. 聚合响应的 episodeId/mediaAssetId/taskId 使用字符串。
  2. 手动转码仍由后端 Long 接收精确路径 ID。
  3. 媒资不存在时通过 content 模块的端口按候选 ID 查找分集:
    • 分集 id;
    • video_asset_id;
    • transcode_task.id。
  4. 找到分集后按 video_url/source_url/objectKey 反查媒资; 文件存在但媒资缺失时补登记并回填分集 video_asset_id。
  5. 无可用视频时保持明确空态/错误语义。

验证

  • 超 2^53 ID 字符串契约。
  • 聚合无媒资空态。
  • video_url 反查命中。
  • 文件存在时补登记。
  • mvn -pl fruitshorts-module-media,fruitshorts-transcode-worker test。