diff --git a/apps/worker/video_processing/pip_engine.py b/apps/worker/video_processing/pip_engine.py index 762fee4d6..fe5e4a799 100755 --- a/apps/worker/video_processing/pip_engine.py +++ b/apps/worker/video_processing/pip_engine.py @@ -124,7 +124,9 @@ class PiPEngine: if layer.border_width > 0: bw = layer.border_width color = layer.border_color - filters.append(f"pad={pip_width + 2*bw}:{pip_height + 2*bw}:{bw}:{bw}:{color}") + filters.append( + f"pad={pip_width + 2*bw}:{pip_height + 2*bw}:{bw}:{bw}:{color}" + ) # Step 4: 透明度 if layer.opacity < 1.0: @@ -165,7 +167,9 @@ class PiPEngine: # 淡出需要知道总时长,这里用表达式 if layer.duration > 0: start_fade = layer.duration - anim_dur - filters.append(f"fade=t=out:st={max(0, start_fade)}:d={anim_dur}:alpha=1") + filters.append( + f"fade=t=out:st={max(0, start_fade)}:d={anim_dur}:alpha=1" + ) return filters @@ -274,7 +278,9 @@ class PiPEngine: base_x, base_y = self._parse_position(layer, pip_w, pip_h) # 构建overlay表达式(支持滑动动画) - x_expr, y_expr = self._build_overlay_expr(layer, base_x, base_y, pip_w, pip_h) + x_expr, y_expr = self._build_overlay_expr( + layer, base_x, base_y, pip_w, pip_h + ) # 时间控制(enable表达式) enable_expr = "" @@ -291,7 +297,9 @@ class PiPEngine: # overlay 滤镜 overlay_filter = ( - f"[{current_label}][{pre_label}]" f"overlay={x_expr}:{y_expr}{enable_expr}" f"[{combined_label}]" + f"[{current_label}][{pre_label}]" + f"overlay={x_expr}:{y_expr}{enable_expr}" + f"[{combined_label}]" ) filter_parts.append(overlay_filter) @@ -338,7 +346,9 @@ class PiPEngine: validate_url_safety(layer.source, purpose="pip_source") logger.info("PiP URL 安全校验通过: %s", layer.source[:80]) except UrlSecurityError as e: - logger.warning("PiP URL 安全校验失败: %s (error=%s)", layer.source[:80], e) + logger.warning( + "PiP URL 安全校验失败: %s (error=%s)", layer.source[:80], e + ) return None # 暂时不支持直接URL下载,返回None表示降级跳过 return None