fix(worker): 修复 render_edit_plan 素材下载 + 总时长日志 + video_processing 导入链 #236

Merged
xiaoxia merged 2 commits from fix/render-edit-plan-bugs into develop 2026-07-13 01:32:28 +08:00
Owner

修复内容

Bug 1: render_edit_plan 素材下载路径错误(P0)

edit_plan_generation.py 中直接把 clip.asset_id(数据库主键)传给 download_asset,但 download_asset 期望的是 OSS storage_key。导致所有素材下载失败,剪辑计划渲染必然报错。

修复:先批量查询 assets 表拿到 file_url(storage_key),再调用 download_asset 下载。

Bug 2: "总时长=0.0s" 日志误导(P2)

_build_plan_and_clips_from_task 中构建的 _VirtualClip 没有赋值 duration 字段(默认 0.0),导致剪辑计划日志中「总时长」永远显示 0.0s,容易误判为卡死。

修复:构建 clips 时用 probe_duration 预探测每个素材的实际时长并赋值。

Bug 3: video_processing 导入链副作用(P2)

video_processing/__init__.py 顶层导入了 render_adapterunified_render_service 等重依赖模块,进而引入 packages/DB 全量依赖。导致只想用 oss_helpers / ffmpeg_utils 等轻量工具的场景,也被迫加载全部依赖。

修复__init__.py 只导出轻量工具模块(ffmpeg_utils / oss_helpers / dedup_helpers),渲染组件按需从子模块导入。

验证

  • unified_render_service 单测:75 passed
  • render_adapter 单测:16 passed
  • 轻量工具模块可独立导入
## 修复内容 ### Bug 1: render_edit_plan 素材下载路径错误(P0) `edit_plan_generation.py` 中直接把 `clip.asset_id`(数据库主键)传给 `download_asset`,但 `download_asset` 期望的是 OSS storage_key。导致所有素材下载失败,剪辑计划渲染必然报错。 **修复**:先批量查询 assets 表拿到 file_url(storage_key),再调用 download_asset 下载。 ### Bug 2: "总时长=0.0s" 日志误导(P2) `_build_plan_and_clips_from_task` 中构建的 `_VirtualClip` 没有赋值 `duration` 字段(默认 0.0),导致剪辑计划日志中「总时长」永远显示 0.0s,容易误判为卡死。 **修复**:构建 clips 时用 `probe_duration` 预探测每个素材的实际时长并赋值。 ### Bug 3: video_processing 导入链副作用(P2) `video_processing/__init__.py` 顶层导入了 `render_adapter`、`unified_render_service` 等重依赖模块,进而引入 packages/DB 全量依赖。导致只想用 `oss_helpers` / `ffmpeg_utils` 等轻量工具的场景,也被迫加载全部依赖。 **修复**:`__init__.py` 只导出轻量工具模块(ffmpeg_utils / oss_helpers / dedup_helpers),渲染组件按需从子模块导入。 ## 验证 - unified_render_service 单测:75 passed ✅ - render_adapter 单测:16 passed ✅ - 轻量工具模块可独立导入 ✅
xiaoxia force-pushed fix/render-edit-plan-bugs from c5ee72d1fd to 9f9d799e7f 2026-07-13 01:17:31 +08:00 Compare
xiaoxia added 2 commits 2026-07-13 01:17:48 +08:00
3 个修复:
1. render_edit_plan 素材下载路径错误:直接传 asset_id 给 download_asset,
   改为先查 assets 表拿 file_url(storage_key) 再下载
2. 总时长=0.0s 日志误导:_build_plan_and_clips_from_task 中 _VirtualClip
   的 duration 未赋值导致日志永远显示 0s,改为用 probe_duration 预探测
3. video_processing/__init__.py 导入链副作用:顶层导入 render_adapter 等
   重依赖模块,导致只想用 oss_helpers/ffmpeg_utils 等轻量工具的地方也
   被迫拉进 packages/DB 全量依赖。改为只导出轻量工具模块,渲染组件
   按需从子模块导入
style: black format edit_plan_generation.py
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m51s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m39s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m32s
63b0bde41a
xiaoxia force-pushed fix/render-edit-plan-bugs from 9f9d799e7f to 63b0bde41a 2026-07-13 01:17:48 +08:00 Compare
xiaoxia merged commit bdf99bba39 into develop 2026-07-13 01:32:28 +08:00
Sign in to join this conversation.