feat: 封面管理 - 配置读写 + 片段抽帧 + 智能选帧 #396

Merged
xiaoxia merged 2 commits from feat/cover-management into develop 2026-07-17 10:00:19 +08:00
Owner

功能

剪辑计划封面管理完整后端能力:

API 接口

  • GET /api/v1/edit-plans/{plan_id}/cover — 获取封面配置
  • PUT /api/v1/edit-plans/{plan_id}/cover — 更新封面配置(类型/图片URL/时间点)
  • POST /api/v1/edit-plans/{plan_id}/cover/extract — 从指定片段时间点抽帧生成封面
  • POST /api/v1/edit-plans/{plan_id}/cover/smart — 智能选帧(自动找第一个视频片段)

核心实现

  • CoverService 封装 FFmpeg 抽帧 + OSS 上传
  • 支持 ai_frame / manual / upload 三种封面类型
  • 抽帧自动 scale+crop 到 1080x1920 标准封面尺寸
  • 失败降级:scale+crop 失败时退化为原始尺寸抽帧

测试

  • 19个单元测试全覆盖
  • 原有 28个 剪辑计划测试零回归
## 功能 剪辑计划封面管理完整后端能力: ### API 接口 - **GET** `/api/v1/edit-plans/{plan_id}/cover` — 获取封面配置 - **PUT** `/api/v1/edit-plans/{plan_id}/cover` — 更新封面配置(类型/图片URL/时间点) - **POST** `/api/v1/edit-plans/{plan_id}/cover/extract` — 从指定片段时间点抽帧生成封面 - **POST** `/api/v1/edit-plans/{plan_id}/cover/smart` — 智能选帧(自动找第一个视频片段) ### 核心实现 - `CoverService` 封装 FFmpeg 抽帧 + OSS 上传 - 支持 ai_frame / manual / upload 三种封面类型 - 抽帧自动 scale+crop 到 1080x1920 标准封面尺寸 - 失败降级:scale+crop 失败时退化为原始尺寸抽帧 ### 测试 - 19个单元测试全覆盖 - 原有 28个 剪辑计划测试零回归
xiaoxia force-pushed feat/cover-management from 516911adc3 to da327c9ac5 2026-07-16 13:48:32 +08:00 Compare
xiaoxia force-pushed feat/cover-management from 89c427283c to 6f32f25159 2026-07-17 01:15:48 +08:00 Compare
xiaoxia force-pushed feat/cover-management from 6f32f25159 to 4c62dfaa76 2026-07-17 07:48:03 +08:00 Compare
xiaoxia added 1 commit 2026-07-17 09:25:20 +08:00
- GET /{plan_id}/cover 获取封面配置
- PUT /{plan_id}/cover 更新封面配置(类型/图片URL/时间点)
- POST /{plan_id}/cover/extract 从指定片段时间点抽帧生成封面
- POST /{plan_id}/cover/smart 智能选帧(自动找第一个视频片段)
- CoverService 封装 FFmpeg 抽帧 + OSS 上传
- 19个单元测试全覆盖
xiaoxia force-pushed feat/cover-management from 4c62dfaa76 to a03b4b3231 2026-07-17 09:25:20 +08:00 Compare
xiaoxia added 1 commit 2026-07-17 09:36:31 +08:00
style: auto-format with black + isort
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 18s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 51s
AI Code Review / AI Code Review (pull_request) Successful in 2m2s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m35s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m46s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m57s
33983eb76e
xiaoxia force-pushed feat/cover-management from a03b4b3231 to 33983eb76e 2026-07-17 09:36:31 +08:00 Compare
auto-approve-bot approved these changes 2026-07-17 09:44:56 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia merged commit a1f9557dc5 into develop 2026-07-17 10:00:19 +08:00
xiaoxia deleted branch feat/cover-management 2026-07-17 10:00:19 +08:00
Sign in to join this conversation.