diff --git a/apps/worker/video_processing/render_audio.py b/apps/worker/video_processing/render_audio.py index 9de62265f..bd0388d2c 100755 --- a/apps/worker/video_processing/render_audio.py +++ b/apps/worker/video_processing/render_audio.py @@ -278,7 +278,9 @@ def concat_main_audio( has_speed = abs(speed - 1.0) >= 1e-6 if not has_speed and not has_reverse: - # 无调速无倒放:简单命令行,-ss 裁剪更高效 + # 无调速无倒放:简单命令行,-ss 裁剪更高效。 + # 注意:有调速或倒放时走下方 else 分支(filter_complex),那里正确处理了 + # atrim/atempo/reverse/volume/aformat,单 clip 简单路径不需要这些。 command = [ FFMPEG_BIN, "-y", diff --git a/apps/worker/video_processing/unified_render_service.py b/apps/worker/video_processing/unified_render_service.py index 313b30e02..fc3286bdc 100755 --- a/apps/worker/video_processing/unified_render_service.py +++ b/apps/worker/video_processing/unified_render_service.py @@ -1290,11 +1290,7 @@ class UnifiedRenderService: if has_audio: af_parts: list[str] = [] - # 片段音量(原声=1.0,静音已在上层排除) - if abs(clip_volume - 1.0) >= 1e-6: - af_parts.append(f"volume={clip_volume:.4f}") - - # 音频降噪 + # 音频降噪(必须先降噪,再调整音量,否则音量放大会增加降噪难度) try: from video_processing.noise_reduction_engine import NoiseReductionConfig, NoiseReductionEngine @@ -1308,6 +1304,10 @@ class UnifiedRenderService: except Exception as e: logger.warning("[unified-render] 直通模式音频降噪应用失败,跳过: %s", e) + # 片段音量(原声=1.0,静音已在上层排除;降噪后再调音量) + if abs(clip_volume - 1.0) >= 1e-6: + af_parts.append(f"volume={clip_volume:.4f}") + # 音频调速(与视频setpts对应,保持音画同步) speed = UnifiedRenderService._clip_speed(clip) if abs(speed - 1.0) >= 1e-6: