fix(worker): GPU直连管线音频bug修复+边缘裁剪入GPU省5s #2089

Merged
auto-approve-bot merged 1 commits from fix/gpu-pipeline-audio-and-edgecrop into develop 2026-09-28 20:17:55 +08:00
Owner

修复内容

Bug1 原素材音轨丢失

  • concat 改为 v=1:a=1,视频音频一起 concat
  • 为每段[i:a]增加atrim/asetpts/atempo/aresample预处理,与对应视频段trim对齐
  • concat输出[acat]主音轨,与TTS/BGM一起amix

Bug2 纯BGM音画不同步

  • amix duration=first改为duration=longest,防止纯BGM场景按BGM全长输出
  • amix后加atrim=0:total_duration+asetpts=PTS-STARTPTS精确截断到视频时长
  • 命令行加-shortest兜底

边缘裁剪移入GPU(省~5s CPU libx264重编码)

  • 原GPU管线固定中心裁3%:改为四边独立随机2%~5%(与random_edge_crop口径一致)
  • GPU filter_complex内一步完成,NVENC一次编码出最终成片
  • 新增RenderResult.edge_crop_applied标志透传到generate_video,外层CPU random_edge_crop在GPU已做时跳过
## 修复内容 ### Bug1 原素材音轨丢失 - concat 改为 v=1:a=1,视频音频一起 concat - 为每段[i:a]增加atrim/asetpts/atempo/aresample预处理,与对应视频段trim对齐 - concat输出[acat]主音轨,与TTS/BGM一起amix ### Bug2 纯BGM音画不同步 - amix duration=first改为duration=longest,防止纯BGM场景按BGM全长输出 - amix后加atrim=0:total_duration+asetpts=PTS-STARTPTS精确截断到视频时长 - 命令行加-shortest兜底 ### 边缘裁剪移入GPU(省~5s CPU libx264重编码) - 原GPU管线固定中心裁3%:改为四边独立随机2%~5%(与random_edge_crop口径一致) - GPU filter_complex内一步完成,NVENC一次编码出最终成片 - 新增RenderResult.edge_crop_applied标志透传到generate_video,外层CPU random_edge_crop在GPU已做时跳过
xiaoxia added 1 commit 2026-09-28 20:07:06 +08:00
fix(worker): GPU直连管线保留原素材音轨+BGM时长截断+GPU内随机边缘裁剪
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
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 1s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 45s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 47s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m38s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m56s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m31s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m56s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 5m0s
AI Code Review / AI Code Review (pull_request) Successful in 6m39s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 8m44s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m5s
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 7m47s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m2s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 4m8s
42818942f1
Bug1(原素材音轨丢失):concat 改为 v=1:a=1,为每段[i:a]加 atrim/asetpts/atempo/aresample
预处理,concat 输出[acat]主音轨,再与TTS/BGM一起amix。

Bug2(音画不同步):amix duration 改为 longest(原first在纯BGM时跟随BGM全长),
mix末尾加 atrim=0:total_duration + asetpts=PTS-STARTPTS 精确截断到视频时长,
命令行再加 -shortest 兜底。

P1 边缘裁剪入GPU:将原固定3%中心裁剪改为四边独立随机2~5%(与 ffmpeg_utils.random_edge_crop
口径一致),在GPU filter_complex内一步完成;新增 RenderResult.edge_crop_applied 标志
经 RenderAdapter → generate_video 传递,外层CPU random_edge_crop 在GPU已做时跳过,
省掉约5s CPU libx264二次重编码。

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2089 | | 预览链接 | [https://pr-2089.preview.xiaoxiajianji.com](https://pr-2089.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit 3106496c12 into develop 2026-09-28 20:17:55 +08:00
auto-approve-bot deleted branch fix/gpu-pipeline-audio-and-edgecrop 2026-09-28 20:17:57 +08:00

🗑️ 预览环境已清理

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

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

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