feat: 水印 + 片头片尾引擎(视频包装能力) #298

Merged
xiaoxia merged 6 commits from feat/watermark-intro-outro into develop 2026-07-14 10:44:19 +08:00

6 Commits

Author SHA1 Message Date
xiaoxia-bot 7812dda9a0 fix: black + isort 格式化
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 34s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m19s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m15s
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
CI/CD Pipeline / Integration Tests (pull_request) Failing after 1m16s
2026-07-14 10:39:07 +08:00
xiaoxia-bot 211d9a7965 fix: 修正缩进
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 23s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m7s
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
CI/CD Pipeline / Integration Tests (pull_request) Failing after 1m16s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m23s
2026-07-14 10:31:59 +08:00
xiaoxia-bot 2cd3d3d049 fix: flake8 E117 over-indented
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 15s
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
2026-07-14 10:31:39 +08:00
xiaoxia-bot ad85627478 chore: isort + black 格式化
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
2026-07-14 10:30:59 +08:00
CI Bot ad84e54305 feat: 水印 + 片头片尾引擎(视频包装能力)
新增两大视频包装能力:

【水印引擎 WatermarkEngine】
- 图片水印(PNG/logo)+ 文字水印(drawtext)双模式
- 9宫格位置:左上/中上/右上/左中/中心/右中/左下/中下/右下
- 透明度 + 大小缩放配置
- 滚动水印(跑马灯)支持,速度可配
- 水印素材不存在自动跳过,不阻断渲染

【片头片尾引擎 IntroOutroEngine】
- 片头:视频片段 或 纯文字片头(背景色+标题+副标题+淡入)
- 片尾:视频片段 或 文字片尾(关注引导+淡出)
- 时长可配置,自动与正片 concat 拼接
- 配置无效或生成失败自动降级,不阻断渲染

【系统集成】
- 水印:在 filter_complex 最终合成环节叠加(字幕之前)
- 片头片尾:在渲染主流程后做后处理拼接
- 全部从 plan.config 读取配置,零侵入主渲染链路

31 个新增单测 + 100 个现有单测全绿,零回归
2026-07-14 10:30:37 +08:00
CI Bot 1014a42973 feat: 视频裁剪/分割能力(Trimming Engine)
新增 TrimEngine 裁剪引擎,基于 FFmpeg trim/atrim 实现精确帧级裁剪:

核心能力:
- 入点出点裁剪:start_time / end_time / duration 三选二
- 边界自动钳制:超出素材时长自动修正,不阻断渲染
- 多段裁剪:一个素材可裁剪出多段(trim_segments)
- 音画同步:视频 + 音频同步裁剪

系统集成:
- UnifiedRenderService Step 1 接入视频裁剪(修复原有 filter_complex 路径未使用 start_time 的问题)
- render_audio 单 clip/多 clip/独立音轨 三处接入音频裁剪
- _resolve_clips 阶段解析裁剪配置 + 多段展开

129 个单测全绿(29 新增 + 100 现有)
2026-07-14 10:30:13 +08:00