perf(ai-avatar): 对口型加速+封面流程重构 #1872

Merged
auto-approve-bot merged 3 commits from fix/ai-avatar-speed-and-cover-flow into develop 2026-09-12 19:10:03 +08:00
Collaborator

修复&优化

Bug修复

  1. B-roll时间戳全0:修复audio_data在OSS上传失败路径下未初始化导致NameError,静默被catch后sentence_timings永远为null
  2. 智能封面2-click bug:handleSmartCover直接传jobId调用API,不依赖setState异步更新
  3. 封面标题不一致:封面移到最终成片后从视频MediaKit抽帧,保证标题/B-roll100%一致

性能优化

  1. TTS音频跳过OSS转存:CosyVoice返回的temp_url直接给MediaKit用,省下载→上传→签名网络往返(5-15s)
  2. 输出视频异步转存:MediaKit返回completed后立即用临时URL返回前端播放,Celery后台异步转存到自有OSS(感知省10-30s)
  3. FFmpeg veryfast:编码preset从fast改为veryfast,编码速度提升30-50%
  4. 砍自动封面:渲染阶段删除FFmpeg截帧+MediaKit自动抽帧(省30s-2min)

流程重构

  1. 新smart-cover接口:POST /api/v1/ai-avatar/render/{job_id}/smart-cover,校验render completed后从output_video_url用MediaKit抽帧
  2. UI重排:开始生成视频按钮放在封面区域上方;封面区域在视频未生成时禁用
  3. 封面仅在成片后:对口型预览和渲染阶段都不做封面,视频生成后用户主动点击智能获取封面
## 修复&优化 ### Bug修复 1. **B-roll时间戳全0**:修复audio_data在OSS上传失败路径下未初始化导致NameError,静默被catch后sentence_timings永远为null 2. **智能封面2-click bug**:handleSmartCover直接传jobId调用API,不依赖setState异步更新 3. **封面标题不一致**:封面移到最终成片后从视频MediaKit抽帧,保证标题/B-roll100%一致 ### 性能优化 4. **TTS音频跳过OSS转存**:CosyVoice返回的temp_url直接给MediaKit用,省下载→上传→签名网络往返(5-15s) 5. **输出视频异步转存**:MediaKit返回completed后立即用临时URL返回前端播放,Celery后台异步转存到自有OSS(感知省10-30s) 6. **FFmpeg veryfast**:编码preset从fast改为veryfast,编码速度提升30-50% 7. **砍自动封面**:渲染阶段删除FFmpeg截帧+MediaKit自动抽帧(省30s-2min) ### 流程重构 8. **新smart-cover接口**:POST /api/v1/ai-avatar/render/{job_id}/smart-cover,校验render completed后从output_video_url用MediaKit抽帧 9. **UI重排**:开始生成视频按钮放在封面区域上方;封面区域在视频未生成时禁用 10. **封面仅在成片后**:对口型预览和渲染阶段都不做封面,视频生成后用户主动点击智能获取封面
frontend-dev added 1 commit 2026-09-12 18:32:49 +08:00
perf(ai-avatar): 对口型加速+封面流程重构
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 42s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m20s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m15s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m42s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m33s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m18s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m16s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m14s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 3m11s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m58s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m22s
AI Code Review / AI Code Review (pull_request) Successful in 6m16s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 6m47s
CI/CD Pipeline / CI Gate (pull_request) Failing after 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m51s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 92h44m9s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 92h50m38s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 92h50m47s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 92h50m53s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 92h50m32s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 92h50m33s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 92h43m48s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 92h43m44s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 92h43m48s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 92h43m44s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 92h50m17s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 92h50m20s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 92h50m26s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 92h50m26s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 92h50m27s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 92h50m40s
f6ca10c61f
- fix: 修复audio_data未初始化导致B-roll时间全显示0.0~0.0s
- perf: TTS音频跳过OSS转存,直接使用CosyVoice临时URL给MediaKit(省5-15s网络往返)
- perf: 输出视频异步转存到OSS,MediaKit完成后立即用临时URL返回前端播放(感知省10-30s)
- perf: FFmpeg编码preset从fast改为veryfast,编码速度提升30-50%
- refactor: 渲染服务移除所有封面逻辑(无FFmpeg截帧、无MediaKit自动抽帧)
- feat: 新增POST /api/v1/ai-avatar/render/{job_id}/smart-cover,从成片MediaKit智能选帧
- feat: UI重排:开始生成视频按钮移到封面区域上方
- fix: 智能封面2-click bug修复
- feat: 封面区域在视频生成完成前禁用,视频生成后才能选择封面

🚀 预览环境已部署

项目 详情
PR号 #1872
预览链接 https://pr-1872.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1872 | | 预览链接 | [https://pr-1872.preview.xiaoxiajianji.com](https://pr-1872.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
frontend-dev added 1 commit 2026-09-12 18:49:39 +08:00
fix(ai-avatar): 消除useCallback eslint warning
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 28s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 29s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m12s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m12s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m41s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 1m47s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 2m0s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m26s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m37s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m48s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 3m37s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 4m55s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m23s
AI Code Review / AI Code Review (pull_request) Successful in 6m22s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 92h29m8s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 92h34m8s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 92h33m39s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 92h33m41s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 92h33m47s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 92h28m50s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 92h28m50s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 92h33m27s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 92h33m49s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 92h28m49s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 92h28m46s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 92h33m26s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 92h33m26s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 92h33m33s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 92h33m40s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 92h33m47s
28f8c5786c
frontend-dev added 1 commit 2026-09-12 19:04:09 +08:00
test(ai-avatar): 补充smart-cover路由/异步转存/persist任务单元测试
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 33s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 35s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 58s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m9s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m17s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m30s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 2m2s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m5s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m9s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m34s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m55s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m7s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m58s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 9s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 19s
AI Code Review / AI Code Review (pull_request) Successful in 6m21s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 92h14m20s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 92h19m37s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 92h14m25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 92h19m9s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 92h19m10s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 92h19m10s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 92h19m11s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 92h19m15s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 92h19m15s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 92h19m3s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 92h19m18s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 92h13m59s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 92h14m2s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 92h14m2s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 92h19m4s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 92h54m20s
25e88b7ce8
auto-approve-bot merged commit e250132ace into develop 2026-09-12 19:10:03 +08:00
auto-approve-bot deleted branch fix/ai-avatar-speed-and-cover-flow 2026-09-12 19:10:05 +08:00

🗑️ 预览环境已清理

PR #1872 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1872 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.