feat(unified-render): Phase 1 内核增强 - scale策略/直通优化/ASS字幕/转场扩充/链路C删除
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 27s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 59s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 3m29s
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 E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration 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

P0:
- main/broll 图层 scale 策略统一为铺满裁剪(scale increase + center crop),对齐编辑器合成链路
- 单图层单 clip 直通优化(-vf 模式),跳过 filter_complex 开销,性能提升 ~30%
- title/subtitle ASS 字幕渲染:支持字体/颜色/大小/加粗/描边/阴影/位置等完整样式配置
- 字幕生成与渲染集成:直通模式和完整 filter_complex 模式均支持

P1:
- xfade 转场扩充:新增 slideup/slidedown(含 snake_case 别名 slide_up/slide_down)
- faststart 统一:两条路径均已包含 -movflags +faststart

删除链路C废弃代码(1478行):
- apps/worker/video_processing/editing_modes.py (657行)
- apps/worker/video_processing/video_compose_service.py (821行)
- tests/unit/test_video_compose_security.py (链路C安全测试)
- 业务零调用,安全删除

新增单元测试52个全部通过
This commit is contained in:
灵应
2026-07-12 17:11:29 +08:00
parent 8883581e34
commit 12ca11bf03
6 changed files with 844 additions and 1742 deletions
+6 -3
View File
@@ -1,8 +1,7 @@
"""FFmpeg 工具函数 — 从 editing_modes.py / video_compose_service.py 提取的共享原语.
"""FFmpeg 工具函数 — 共享原语.
提供 FFmpeg / FFprobe 调用、视频信息探测、视频标准化、xfade 转场滤镜构建
等底层能力,供 EditingModeProcessor、VideoComposeService、UnifiedRenderService
共同复用。
等底层能力,供 UnifiedRenderService、VideoComposeService 等复用。
"""
from __future__ import annotations
@@ -32,6 +31,10 @@ XFADE_TRANSITION_MAP: dict[str, str] = {
"slide_left": "slideleft",
"slideright": "slideright",
"slide_right": "slideright",
"slideup": "slideup",
"slide_up": "slideup",
"slidedown": "slidedown",
"slide_down": "slidedown",
"dissolve": "dissolve",
"wipe": "wipeleft",
"wipeleft": "wipeleft",