From 201ac310a4c958d5746dd614def47b23600c7fbb Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Mon, 27 May 2024 19:57:40 -0600 Subject: [PATCH] Handle out of resources --- frigate/output/preview.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/frigate/output/preview.py b/frigate/output/preview.py index 1669012d6..c64591b6e 100644 --- a/frigate/output/preview.py +++ b/frigate/output/preview.py @@ -5,6 +5,7 @@ import logging import os import subprocess as sp import threading +import time from pathlib import Path import cv2 @@ -101,12 +102,24 @@ class FFMpegConverter(threading.Thread): f"duration {self.frame_times[t_idx + 1] - self.frame_times[t_idx]}" ) - p = sp.run( - self.ffmpeg_cmd.split(" "), - input="\n".join(playlist), - encoding="ascii", - capture_output=True, - ) + try: + p = sp.run( + self.ffmpeg_cmd.split(" "), + input="\n".join(playlist), + encoding="ascii", + capture_output=True, + ) + except BlockingIOError: + logger.warning( + f"Failed to create preview for {self.config.name}, retrying..." + ) + time.sleep(2) + p = sp.run( + self.ffmpeg_cmd.split(" "), + input="\n".join(playlist), + encoding="ascii", + capture_output=True, + ) start = self.frame_times[0] end = self.frame_times[-1]