【P0】一键生成端到端出片验证 #406

Closed
opened 2026-07-16 20:08:16 +08:00 by auto-approve-bot · 9 comments
Collaborator

目标

验证一键生成从「填素材→点生成→等待→出片」的完整链路是否通顺。

实测结果(2026-07-17,staging环境)

端到端未通。 共发现6个问题,核心阻塞是OSS素材403。

🔴 P0 阻塞

  • #454 OSS素材文件403 Forbidden,worker下载失败 → 所有渲染任务直接挂掉

🟡 P1 问题

  • #455 配音预设接口/voices/preset返回404 → 一键生成第4步没数据
  • #456 createEditPlan后无自动生成片段 → generate报「请先添加片段」

🟠 P2 问题

  • 素材详情404(列表可见详情不可见,权限问题)
  • #457 生成失败错误信息太笼统

已验证通顺的链路

登录 → 模板列表 → 素材列表 → 创建计划 → 创建片段 → 触发生成 → 状态轮询

验收标准

  • OSS素材可正常下载(#454修复后)
  • 一键生成能完整走到出片,拿到视频URL
  • 配音选择、自动片段等P1问题修复

详细报告:oneclick_gen_test_20260717.md

补充发现(P1-1验证关联)

一键生成的virtual_plan.config始终为空,8个效果层全部未从模板/任务配置读取。渲染引擎本身能力齐全,问题全在上层接入。
具体效果层缺失清单见Issue #407。

## 目标 验证一键生成从「填素材→点生成→等待→出片」的完整链路是否通顺。 ## 实测结果(2026-07-17,staging环境) **端到端未通。** 共发现6个问题,核心阻塞是OSS素材403。 ### 🔴 P0 阻塞 - #454 OSS素材文件403 Forbidden,worker下载失败 → 所有渲染任务直接挂掉 ### 🟡 P1 问题 - #455 配音预设接口/voices/preset返回404 → 一键生成第4步没数据 - #456 createEditPlan后无自动生成片段 → generate报「请先添加片段」 ### 🟠 P2 问题 - 素材详情404(列表可见详情不可见,权限问题) - #457 生成失败错误信息太笼统 ### ✅ 已验证通顺的链路 登录 → 模板列表 → 素材列表 → 创建计划 → 创建片段 → 触发生成 → 状态轮询 ## 验收标准 - [ ] OSS素材可正常下载(#454修复后) - [ ] 一键生成能完整走到出片,拿到视频URL - [ ] 配音选择、自动片段等P1问题修复 详细报告:oneclick_gen_test_20260717.md ## 补充发现(P1-1验证关联) 一键生成的virtual_plan.config始终为空,8个效果层全部未从模板/任务配置读取。渲染引擎本身能力齐全,问题全在上层接入。 具体效果层缺失清单见Issue #407。
auto-approve-bot added this to the Phase 8 - 剪辑计划引擎 milestone 2026-07-16 20:08:16 +08:00
auto-approve-bot added the frontendbackendP0 labels 2026-07-16 20:08:16 +08:00
Author
Collaborator

前端代码实查结果(2026-07-16)

前端侧准备状态: 已就绪

一键生成页面 (/app/generate)

  • 5步向导完整实现,API调用链路:createEditPlan → generateEditPlan → 轮询 getGenerationStatus → getGenerationTaskResults
  • 生成完成后展示视频预览 + 下载按钮 + 分享 + 跳转成片库

生成进度展示

  • EditingPlanner 中有生成进度弹窗,支持百分比 + 片段级状态展示
  • 列表页有自动刷新机制(rendering/editing 状态下 5s 轮询)

API 封装 (apps/web/src/api/editPlans.ts)

  • createEditPlan / generateEditPlan / getGenerationStatus / getGenerationTaskResults 均已实现

建议验证步骤

  1. staging 环境登录后,上传 2-3 个视频素材
  2. 进入 /app/generate,选择模板 + 素材 + 标题 + 配音
  3. 点击生成,观察进度条是否正常推进
  4. 生成完成后验证:视频可播放、可下载、成片库中可见
  5. 验证剪辑计划列表中状态更新正确

状态

前端代码已就绪,需 staging 环境端到端验证。

## 前端代码实查结果(2026-07-16) ### 前端侧准备状态:✅ 已就绪 **一键生成页面** (`/app/generate`) - 5步向导完整实现,API调用链路:createEditPlan → generateEditPlan → 轮询 getGenerationStatus → getGenerationTaskResults - 生成完成后展示视频预览 + 下载按钮 + 分享 + 跳转成片库 **生成进度展示** - EditingPlanner 中有生成进度弹窗,支持百分比 + 片段级状态展示 - 列表页有自动刷新机制(rendering/editing 状态下 5s 轮询) **API 封装** (`apps/web/src/api/editPlans.ts`) - createEditPlan / generateEditPlan / getGenerationStatus / getGenerationTaskResults 均已实现 ### 建议验证步骤 1. staging 环境登录后,上传 2-3 个视频素材 2. 进入 /app/generate,选择模板 + 素材 + 标题 + 配音 3. 点击生成,观察进度条是否正常推进 4. 生成完成后验证:视频可播放、可下载、成片库中可见 5. 验证剪辑计划列表中状态更新正确 ### 状态 前端代码已就绪,需 staging 环境端到端验证。
Owner

【进展更新 - 2026-07-17 14:40】

第二轮一键生成实测结果:

  • #454 前端OSS签名URL:已修复(PR #467)
  • #456 自动生成片段:已验证通过(4个片段,asset_id绑定)
  • 新阻塞:worker端OSS素材下载全失败
    • 根因:render_adapter.py 直接用 asset_id(UUID)当OSS key下载,未转换成 file_url
    • 修复中:PR #471 已提交,待CI

当前阻塞:worker素材下载bug,修复后即可跑第三轮实测验证效果层。

【进展更新 - 2026-07-17 14:40】 第二轮一键生成实测结果: - ✅ #454 前端OSS签名URL:已修复(PR #467) - ✅ #456 自动生成片段:已验证通过(4个片段,asset_id绑定) - ❌ 新阻塞:worker端OSS素材下载全失败 - 根因:render_adapter.py 直接用 asset_id(UUID)当OSS key下载,未转换成 file_url - 修复中:PR #471 已提交,待CI 当前阻塞:worker素材下载bug,修复后即可跑第三轮实测验证效果层。
Owner

第十轮测试进展:主链路一键生成已跑通,#491已合,PR #492待合

第十轮测试进展:主链路一键生成已跑通,#491已合,PR #492待合
Owner

更新:rendered_url签名验证

rendered_url OSS 403问题两端均已修复:

  • generation status接口:#467已合
  • plan详情/列表接口:#492待合(CI中)

前端补充验证:#492部署后验证plan详情接口返回的rendered_url带签名、可直接播放、不403。

## 更新:rendered_url签名验证 rendered_url OSS 403问题两端均已修复: - generation status接口:#467已合 - plan详情/列表接口:#492待合(CI中) 前端补充验证:#492部署后验证plan详情接口返回的rendered_url带签名、可直接播放、不403。
Owner

第十轮验证完成 & 第十一轮启动前紧急修复

第十轮验证结果

  • 一键生成自动选素材全链路打通(PR #490/#491)
  • OSS 403全链路修复(PR #480/#485/#487/#467/#492)
  • rendered_url签名URL可直接播放
  • 第十一轮测试前发现渲染失败(exit=234),暂停测试

渲染失败紧急修复(PR #494)

三重根因

  1. P0核心:legacy渲染引擎 _build_clip_filter 有fps参数但完全未使用,concat要求帧率一致,不同帧率素材必崩
  2. P1:自动选素材无编码过滤,HEVC等不支持编码素材被选中
  3. P2:自动选素材无横竖屏过滤,横屏视频混入竖屏剪辑

修复内容

  • legacy路径fps滤镜统一帧率(scale→crop→fps→setpts→trim)
  • 自动选素材编码格式黑名单过滤(HEVC/H.265/VP9/AV1等)
  • 自动选素材横屏过滤(只选竖屏height>=width)
  • ingest编码格式白名单校验(仅H.264/avc1),非支持编码直接标记ERROR

当前状态:PR #494 CI巡检中,待合并部署到staging后启动第十一轮实测。

当前遗留项

  • PR #494 合并部署 & 第十一轮一键生成渲染验证
  • P0效果层验证(BGM/字幕/调速/水印)— 待测试模板就绪
  • 直通模式调速失效(Issue #463)
  • 导出设置完善(Issue #418)
## 第十轮验证完成 & 第十一轮启动前紧急修复 ### 第十轮验证结果 - ✅ 一键生成自动选素材全链路打通(PR #490/#491) - ✅ OSS 403全链路修复(PR #480/#485/#487/#467/#492) - ✅ rendered_url签名URL可直接播放 - ❌ 第十一轮测试前发现渲染失败(exit=234),暂停测试 ### 渲染失败紧急修复(PR #494) **三重根因**: 1. **P0核心**:legacy渲染引擎 `_build_clip_filter` 有fps参数但完全未使用,concat要求帧率一致,不同帧率素材必崩 2. **P1**:自动选素材无编码过滤,HEVC等不支持编码素材被选中 3. **P2**:自动选素材无横竖屏过滤,横屏视频混入竖屏剪辑 **修复内容**: - legacy路径fps滤镜统一帧率(scale→crop→fps→setpts→trim) - 自动选素材编码格式黑名单过滤(HEVC/H.265/VP9/AV1等) - 自动选素材横屏过滤(只选竖屏height>=width) - ingest编码格式白名单校验(仅H.264/avc1),非支持编码直接标记ERROR **当前状态**:PR #494 CI巡检中,待合并部署到staging后启动第十一轮实测。 ### 当前遗留项 - [ ] PR #494 合并部署 & 第十一轮一键生成渲染验证 - [ ] P0效果层验证(BGM/字幕/调速/水印)— 待测试模板就绪 - [ ] 直通模式调速失效(Issue #463) - [ ] 导出设置完善(Issue #418)
Owner

第十二轮测试失败 & 新修复PR #500

第十二轮失败原因

P0效果层模板第十二轮测试再次渲染失败(exit=234),排查发现PR #494只修了编码过滤,漏了两个关键修复:

  1. P0:legacy路径 _build_clip_filterfps 参数但从未使用 → concat帧率不一致必崩
  2. P1:自动选素材完全没有横竖屏过滤 → 1920x1080横屏素材被选中
  3. P2:legacy路径硬编码1280x720,不读plan.config.export.resolution → 模板竖屏配置不生效

新修复 PR #500

  • legacy路径fps滤镜(crop→fps→setpts顺序)
  • 自动选素材横屏过滤(width > height过滤,正方形/未知放过)
  • legacy路径读取plan.config.export.resolution和fps
  • 55个单元测试全过

CI巡检中,待合并。

## 第十二轮测试失败 & 新修复PR #500 ### 第十二轮失败原因 P0效果层模板第十二轮测试再次渲染失败(exit=234),排查发现PR #494只修了编码过滤,漏了两个关键修复: 1. **P0**:legacy路径 `_build_clip_filter` 有 `fps` 参数但从未使用 → concat帧率不一致必崩 2. **P1**:自动选素材完全没有横竖屏过滤 → 1920x1080横屏素材被选中 3. **P2**:legacy路径硬编码1280x720,不读plan.config.export.resolution → 模板竖屏配置不生效 ### 新修复 PR #500 - ✅ legacy路径fps滤镜(crop→fps→setpts顺序) - ✅ 自动选素材横屏过滤(width > height过滤,正方形/未知放过) - ✅ legacy路径读取plan.config.export.resolution和fps - 55个单元测试全过 CI巡检中,待合并。
Author
Collaborator

2026-07-18 进展更新(第14轮排查)

已确认的问题

  1. 竖屏one_take已稳定成功:#503部署后竖屏素材渲染正常
  2. 横屏素材exit=234仍复现:输入素材参数不一致(1920x1080 25fps + 960x544 30fps)
  3. error_message只输出版本号:stderr只截前200字符,真正报错在后面

找到的新根因

  • 像素格式不统一:legacy路径缺 format=yuv420p
  • xfade路径音频未归一化:#503只修了concat路径没修xfade
  • ingest编码拦截过严:H.265/HEVC直接打error,用户不知道自己视频编码

修复中

  • #508 ingest编码放宽 已提交
  • #511 legacy normalize补全+错误日志增强 已提交
  • #509 素材库批量删除白屏修复 已提交(新增P0)

关联子Issue

  • #512 素材库批量删除白屏
  • #513 ingest编码拦截过严
  • #514 legacy渲染normalize补全
## 2026-07-18 进展更新(第14轮排查) ### 已确认的问题 1. **竖屏one_take已稳定成功**:#503部署后竖屏素材渲染正常 2. **横屏素材exit=234仍复现**:输入素材参数不一致(1920x1080 25fps + 960x544 30fps) 3. **error_message只输出版本号**:stderr只截前200字符,真正报错在后面 ### 找到的新根因 - **像素格式不统一**:legacy路径缺 format=yuv420p - **xfade路径音频未归一化**:#503只修了concat路径没修xfade - **ingest编码拦截过严**:H.265/HEVC直接打error,用户不知道自己视频编码 ### 修复中 - #508 ingest编码放宽 ✅已提交 - #511 legacy normalize补全+错误日志增强 ✅已提交 - #509 素材库批量删除白屏修复 ✅已提交(新增P0) ### 关联子Issue - #512 素材库批量删除白屏 - #513 ingest编码拦截过严 - #514 legacy渲染normalize补全
Owner

2026-07-18 更新(PR #522 已合并)

#522已合入develop(d3f3962),一次性修复4个P0问题:

  1. unified横屏pad小数坐标 → trunc()取整(exit=234根因)
  2. unified错误日志 → stderr取最后2000字符(之前被截断看不到真正报错)
  3. legacy导入路径 → 补__init__.py
  4. 素材列表created_at字段 → schema+route都加了

105个unified单元测试全绿,Integration测试已修复。

待staging部署后验证:

  • 横屏素材one_take渲染exit=234是否解决
  • 横竖屏混合素材能否正常出片
  • 素材列表排序是否按时间倒序
**2026-07-18 更新(PR #522 已合并)** #522已合入develop(d3f3962),一次性修复4个P0问题: 1. ✅ unified横屏pad小数坐标 → trunc()取整(exit=234根因) 2. ✅ unified错误日志 → stderr取最后2000字符(之前被截断看不到真正报错) 3. ✅ legacy导入路径 → 补__init__.py 4. ✅ 素材列表created_at字段 → schema+route都加了 105个unified单元测试全绿,Integration测试已修复。 **待staging部署后验证:** - 横屏素材one_take渲染exit=234是否解决 - 横竖屏混合素材能否正常出片 - 素材列表排序是否按时间倒序
Owner

#547 视频标题P0 已修复合并

PR #553 已合入develop,修复了两个根因:legacy引擎没渲染标题 + 成片库名称硬编码。等待staging部署后验证效果。

当前P0遗留:成片库显示(#541已合入待验证)+ 视频标题(#547已合入待验证)。

## #547 视频标题P0 已修复合并 PR #553 已合入develop,修复了两个根因:legacy引擎没渲染标题 + 成片库名称硬编码。等待staging部署后验证效果。 当前P0遗留:成片库显示(#541已合入待验证)+ 视频标题(#547已合入待验证)。
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: xiaoxia/xiaoxia-saas#406