P1-2: 剪辑计划统一渲染链路打通 - 收敛RenderAdapter + 补齐BGM和ASR自动字幕 #442

Merged
xiaoxia merged 2 commits from feature/p1-2-edit-plan-render-link into develop 2026-07-17 12:31:05 +08:00
Owner

改动说明

修复 Issue #408 P1-2 剪辑计划→渲染链路的 3 个 P0 断点:

1. BGM 未接入

  • RenderAdapter 新增 _prepare_bgm 方法
  • 从 plan.config.bgm 读取配置,支持 URL/素材库/预设库三种来源
  • 优先级:audio_url > asset_id > preset_id
  • 下载失败降级,不阻断主流程

2. ASR 自动字幕未接入

  • RenderAdapter 新增 _get_asr_service 方法
  • 调用 UnifiedRenderService 时传入 asr_service
  • 初始化失败降级,不阻断主流程

3. 代码重复

  • edit_plan_generation 的 unified 路径从直接调 UnifiedRenderService 改为通过 RenderAdapter
  • 消除与 compose_video 的重复代码(素材下载+渲染+上传)
  • compose_video 自动获得 BGM+ASR 能力

测试

  • 新增/修改 31 个 RenderAdapter 单元测试,全部通过
  • edit_plan_worker_failure 6 个测试通过
  • unified_render_service 87 个测试通过
  • 合计 124 个相关测试全绿

兼容性

  • 默认关闭:BGM 需 plan.config.bgm.enabled=true 才启用
  • 向后兼容:无 BGM/ASR 时行为与之前完全一致
  • 失败降级:BGM 或 ASR 任一失败都不阻断渲染主流程
## 改动说明 修复 Issue #408 P1-2 剪辑计划→渲染链路的 3 个 P0 断点: ### 1. BGM 未接入 ✅ - RenderAdapter 新增 _prepare_bgm 方法 - 从 plan.config.bgm 读取配置,支持 URL/素材库/预设库三种来源 - 优先级:audio_url > asset_id > preset_id - 下载失败降级,不阻断主流程 ### 2. ASR 自动字幕未接入 ✅ - RenderAdapter 新增 _get_asr_service 方法 - 调用 UnifiedRenderService 时传入 asr_service - 初始化失败降级,不阻断主流程 ### 3. 代码重复 ✅ - edit_plan_generation 的 unified 路径从直接调 UnifiedRenderService 改为通过 RenderAdapter - 消除与 compose_video 的重复代码(素材下载+渲染+上传) - compose_video 自动获得 BGM+ASR 能力 ## 测试 - 新增/修改 31 个 RenderAdapter 单元测试,全部通过 - edit_plan_worker_failure 6 个测试通过 - unified_render_service 87 个测试通过 - 合计 124 个相关测试全绿 ## 兼容性 - 默认关闭:BGM 需 plan.config.bgm.enabled=true 才启用 - 向后兼容:无 BGM/ASR 时行为与之前完全一致 - 失败降级:BGM 或 ASR 任一失败都不阻断渲染主流程
xiaoxia added 1 commit 2026-07-17 11:46:57 +08:00
P1-2: 剪辑计划统一渲染链路打通 - 收敛RenderAdapter + 补齐BGM和ASR自动字幕
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Failing after 31s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 6s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 38s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 39s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 2m55s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m35s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m44s
6bdab42224
## 改动内容

### 1. RenderAdapter 增强(render_adapter.py)
- 新增 BGM 准备逻辑:支持 URL/素材库/预设库三种来源,失败降级不阻断
- 新增 ASR 服务初始化:自动字幕支持,初始化失败降级
- _download_assets 返回值扩展为 (asset_map, rendered_ids, failed_ids)
- RenderAdapterResult 增加 rendered_clip_ids / failed_clip_ids 字段
- render_plan 调用 UnifiedRenderService 时传入 bgm_path 和 asr_service

### 2. 剪辑计划渲染收敛(edit_plan_generation.py)
- _render_with_unified 从直接调 UnifiedRenderService 改为通过 RenderAdapter
- 消除与 compose_video 的重复代码(素材下载+渲染+上传)
- 主流程按引擎分支:unified 走 RenderAdapter,legacy 保留原逻辑
- 移除顶部不再使用的 UnifiedRenderService 直接导入

### 3. 单元测试(test_render_adapter.py)
- 修复 _download_assets 返回值变化的测试
- 新增 TestPrepareBgm:7 个用例覆盖三种来源+优先级+失败降级
- 新增 TestGetAsrService:3 个用例覆盖可用/导入失败/初始化失败
- 新增 TestRenderPlanWithBgmAsr:3 个集成用例
- 共 31 个测试全部通过

## 三个 P0 断点修复
 BGM 未接入 → RenderAdapter._prepare_bgm 自动从 plan.config.bgm 读取
 ASR 自动字幕未接入 → RenderAdapter._get_asr_service 自动初始化
 代码重复 → edit_plan_generation 与 compose_video 统一走 RenderAdapter
xiaoxia added 1 commit 2026-07-17 12:21:05 +08:00
fix: black format code quality issues
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 10s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 36s
AI Code Review / AI Code Review (pull_request) Successful in 1m5s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m3s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m44s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 2m58s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m18s
d1627d5aaf
auto-approve-bot reviewed 2026-07-17 12:24:03 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia merged commit 60699b0b0c into develop 2026-07-17 12:31:05 +08:00
Sign in to join this conversation.