This commit is contained in:
2026-08-06 16:50:34 +08:00
parent 70f2261d68
commit 820f601b32
+13 -5
View File
@@ -7,6 +7,7 @@ from __future__ import annotations
import logging
from datetime import datetime, timezone
import os
from typing import Any
from app.config import settings
@@ -82,7 +83,7 @@ def api_upscale_execute_local_simple(self, upscale_task_id: str) -> dict[str, An
"""简化版本地超分执行(API v3 专用)。"""
from app.models.base import async_session
from app.models.video_upscale_task import VideoUpscaleTask
from app.services.video_upscale.local_ffmpeg_service import run_local_ffmpeg_upscale
from app.services.video_upscale.local_ffmpeg_service import execute_local_ffmpeg_crop
from sqlalchemy import select
async def _execute():
@@ -105,18 +106,25 @@ def api_upscale_execute_local_simple(self, upscale_task_id: str) -> dict[str, An
await db.commit()
try:
# 构建输出路径
date_dir = _now_str()
final_local_path = f"./storage/generate/api/videos/{date_dir}/{upscale.api_generation_task_id or 'unknown'}.mp4"
# 执行本地 FFmpeg 超分
output_path = await run_local_ffmpeg_upscale(upscale)
output_path = await execute_local_ffmpeg_crop(
source_path=upscale.source_local_path,
final_path=final_local_path,
target_width=int(upscale.target_width or 0),
target_height=int(upscale.target_height or 0),
)
# 计算相对 URL 路径
# output_path 是绝对路径,需要转换为 /generate/api/videos/... 格式
date_dir = _now_str()
url_path = f"/generate/api/videos/{date_dir}/{upscale.api_generation_task_id}.mp4"
# 更新成功状态
upscale.status = "completed"
upscale.stage = "upscale_completed"
upscale.final_local_path = f"./storage/generate/api/videos/{_now_str()}/{upscale.api_generation_task_id or "unknown"}.mp4"
upscale.final_local_path = final_local_path
upscale.final_resource_url = url_path # 相对 URL
upscale.completed_at = _now()