diff --git a/apps/worker/video_processing/render_adapter.py b/apps/worker/video_processing/render_adapter.py index ac87ab956..defb59068 100755 --- a/apps/worker/video_processing/render_adapter.py +++ b/apps/worker/video_processing/render_adapter.py @@ -221,17 +221,18 @@ class RenderAdapter: except subprocess.CalledProcessError as exc: stderr_text = (exc.stderr or "").strip() + stderr_tail = stderr_text[-5000:] if len(stderr_text) > 5000 else stderr_text logger.error( "[render-adapter] ffmpeg渲染失败: plan_id=%s job_id=%s exit_code=%d\nstderr:\n%s", plan_id, job_id, exc.returncode, - stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text, + stderr_tail, ) return RenderAdapterResult( success=False, - error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[:200]}", - error_detail=stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text, + error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[-500:]}", + error_detail=stderr_tail, ) except Exception as exc: logger.exception( @@ -721,16 +722,17 @@ class RenderAdapter: except subprocess.CalledProcessError as exc: stderr_text = (exc.stderr or "").strip() + stderr_tail = stderr_text[-5000:] if len(stderr_text) > 5000 else stderr_text logger.error( "[render-adapter] 内存模式渲染失败: plan_id=%s exit_code=%d\nstderr:\n%s", actual_plan_id, exc.returncode, - stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text, + stderr_tail, ) return RenderAdapterResult( success=False, - error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[:200]}", - error_detail=stderr_text[-2000:] if len(stderr_text) > 2000 else stderr_text, + error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[-500:]}", + error_detail=stderr_tail, ) except Exception as exc: logger.exception( diff --git a/apps/worker/worker_app/tasks/generation.py b/apps/worker/worker_app/tasks/generation.py index a429d7b47..171fa7f14 100644 --- a/apps/worker/worker_app/tasks/generation.py +++ b/apps/worker/worker_app/tasks/generation.py @@ -705,7 +705,8 @@ def _render_from_edit_plan( ) if not result.success: - raise RuntimeError(f"渲染失败: {result.error_message}") + detail_suffix = f"\n[detail] {result.error_detail}" if result.error_detail else "" + raise RuntimeError(f"渲染失败: {result.error_message}{detail_suffix}") render_elapsed = time.monotonic() - render_start logger.info(