chore: rebase到develop + 格式化代码
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 24s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m16s
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 1m41s

This commit is contained in:
CI Bot
2026-07-14 09:37:16 +08:00
committed by xiaoxia-bot
parent 2652ca5c8a
commit 9c19da3c34
4 changed files with 3 additions and 6 deletions
+3 -2
View File
@@ -16,14 +16,13 @@ import subprocess
from dataclasses import dataclass, field
from pathlib import Path
from video_processing.speed_engine import SpeedEngine
# 延迟导入避免循环依赖:unified_render_service 定义 ResolvedClip / RenderLayer
# 本模块提供音频函数供 unified_render_service 调用。
# 使用 from __future__ import annotations + TYPE_CHECKING 解决类型引用。
from typing import TYPE_CHECKING
from video_processing.ffmpeg_utils import FFMPEG_BIN, probe_has_audio, run_ffmpeg
from video_processing.speed_engine import SpeedEngine
if TYPE_CHECKING:
from video_processing.unified_render_service import RenderLayer, ResolvedClip
@@ -178,6 +177,7 @@ def concat_main_audio(
else:
# 有调速:用 filter_complex + atempo
from video_processing.speed_engine import SpeedConfig
speed_engine = SpeedEngine()
config = SpeedConfig(speed=float(speed))
config.clamp()
@@ -237,6 +237,7 @@ def concat_main_audio(
# 音频调速 — atempo 多级串联
if abs(speed - 1.0) >= 1e-6:
from video_processing.speed_engine import SpeedConfig
config = SpeedConfig(speed=float(speed))
config.clamp()
atempo_filter = speed_engine.build_audio_filter(config)
@@ -11,7 +11,6 @@
from dataclasses import dataclass
from typing import Optional
# ─── 常量 ───────────────────────────────────────────────
MIN_SPEED = 0.25
MAX_SPEED = 4.0
@@ -1131,7 +1131,6 @@ class UnifiedRenderService:
return min(clip.duration, clip.actual_duration) if clip.actual_duration > 0 else clip.duration
return clip.actual_duration if clip.actual_duration > 0 else 0.0
@staticmethod
def _clip_speed(clip: ResolvedClip) -> float:
"""获取 clip 的播放速度,无效值回退到 1.0."""
@@ -1148,4 +1147,3 @@ class UnifiedRenderService:
if abs(speed - 1.0) < 1e-6:
return base
return base / speed
-1
View File
@@ -8,7 +8,6 @@ from video_processing.speed_engine import (
SpeedEngine,
)
# ─── SpeedConfig 解析与校验 ──────────────────────────────────