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] diff --git a/web/src/components/menu/GeneralSettings.tsx b/web/src/components/menu/GeneralSettings.tsx index 56c0dd47c..cd0ce1749 100644 --- a/web/src/components/menu/GeneralSettings.tsx +++ b/web/src/components/menu/GeneralSettings.tsx @@ -66,6 +66,7 @@ import { DialogTrigger, } from "../ui/dialog"; import { TooltipPortal } from "@radix-ui/react-tooltip"; +import { cn } from "@/lib/utils"; type GeneralSettingsProps = { className?: string; @@ -113,249 +114,249 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) { return ( <> -
Settings
-Settings
+