From fa58a15e589020b89c7bb12e3fb0ebd401b22254 Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 31 Jan 2026 08:42:06 -0600 Subject: [PATCH] video: fix flush of closed file error Use wait() instead of communicate() after manually closing stdin. communicate() tries to flush stdin which fails if already closed. Co-Authored-By: Claude Opus 4.5 --- backend/video_generator/create_video.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/video_generator/create_video.py b/backend/video_generator/create_video.py index c045e9f..2f4486e 100644 --- a/backend/video_generator/create_video.py +++ b/backend/video_generator/create_video.py @@ -193,7 +193,8 @@ def generate_and_stream_frames(base_img, pet_img, vinyl_img, needle_img, audio_d logger.info(f"Frame progress: {frame_num + 1}/{frames_per_rotation}") ffmpeg_process.stdin.close() - stdout, stderr = ffmpeg_process.communicate() + ffmpeg_process.wait() + stderr = ffmpeg_process.stderr.read() if ffmpeg_process.returncode != 0: logger.error(f"FFmpeg error: {stderr.decode()}")