From 69560c8bdec8b004fd50fe50ad7d56ae2e328270 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Mon, 28 Nov 2022 20:47:20 -0700 Subject: [PATCH] Replace green screen with error message and force camera_fps to 0 (#4544) * Move to images specific folder * Send error image when camera stream is not available * Immediately set camera_fps to 0 if camera crashes * Cache error image so it is not read from file system on each run * Move camera fps set --- frigate/http.py | 18 ++++++++++++++++-- frigate/{ => images}/birdseye.png | Bin frigate/images/camera-error.jpg | Bin 0 -> 146745 bytes frigate/object_processing.py | 4 ++++ frigate/output.py | 3 +-- frigate/video.py | 2 ++ 6 files changed, 23 insertions(+), 4 deletions(-) rename frigate/{ => images}/birdseye.png (100%) create mode 100644 frigate/images/camera-error.jpg diff --git a/frigate/http.py b/frigate/http.py index f8d3e6325..57517f168 100644 --- a/frigate/http.py +++ b/frigate/http.py @@ -1,6 +1,7 @@ import base64 from datetime import datetime, timedelta import copy +import glob import logging import json import os @@ -62,6 +63,7 @@ def create_app( app.stats_tracking = stats_tracking app.detected_frames_processor = detected_frames_processor app.plus_api = plus_api + app.camera_error_image = None app.register_blueprint(bp) @@ -657,8 +659,20 @@ def latest_frame(camera_name): frame = current_app.detected_frames_processor.get_current_frame( camera_name, draw_options ) - if frame is None: - frame = np.zeros((720, 1280, 3), np.uint8) + + if frame is None or datetime.now().timestamp() > ( + current_app.detected_frames_processor.get_current_frame_time(camera_name) + + 10 + ): + if current_app.camera_error_image is None: + error_image = glob.glob("/opt/frigate/frigate/images/camera-error.jpg") + + if len(error_image) > 0: + current_app.camera_error_image = cv2.imread( + error_image[0], cv2.IMREAD_UNCHANGED + ) + + frame = current_app.camera_error_image height = int(request.args.get("h", str(frame.shape[0]))) width = int(height * frame.shape[1] / frame.shape[0]) diff --git a/frigate/birdseye.png b/frigate/images/birdseye.png similarity index 100% rename from frigate/birdseye.png rename to frigate/images/birdseye.png diff --git a/frigate/images/camera-error.jpg b/frigate/images/camera-error.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ace648fde850c851ef7c7bed57347063d7f4be24 GIT binary patch literal 146745 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%0A!# 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 Bz;^%u literal 0 HcmV?d00001 diff --git a/frigate/object_processing.py b/frigate/object_processing.py index 4ea3b5e6c..752e2e788 100644 --- a/frigate/object_processing.py +++ b/frigate/object_processing.py @@ -882,6 +882,10 @@ class TrackedObjectProcessor(threading.Thread): def get_current_frame(self, camera, draw_options={}): return self.camera_states[camera].get_current_frame(draw_options) + def get_current_frame_time(self, camera) -> int: + """Returns the latest frame time for a given camera.""" + return self.camera_states[camera].current_frame_time + def run(self): while not self.stop_event.is_set(): try: diff --git a/frigate/output.py b/frigate/output.py index bb088ffff..865a8d367 100644 --- a/frigate/output.py +++ b/frigate/output.py @@ -7,7 +7,6 @@ import queue import signal import subprocess as sp import threading -from multiprocessing import shared_memory from wsgiref.simple_server import make_server import cv2 @@ -113,7 +112,7 @@ class BirdsEyeFrameManager: birdseye_logo = cv2.imread(custom_logo_files[0], cv2.IMREAD_UNCHANGED) if birdseye_logo is None: - logo_files = glob.glob("/opt/frigate/frigate/birdseye.png") + logo_files = glob.glob("/opt/frigate/frigate/images/birdseye.png") if len(logo_files) > 0: birdseye_logo = cv2.imread(logo_files[0], cv2.IMREAD_UNCHANGED) diff --git a/frigate/video.py b/frigate/video.py index bbb5dd866..21eed9dac 100755 --- a/frigate/video.py +++ b/frigate/video.py @@ -242,6 +242,7 @@ class CameraWatchdog(threading.Thread): now = datetime.datetime.now().timestamp() if not self.capture_thread.is_alive(): + self.camera_fps.value = 0 self.logger.error( f"Ffmpeg process crashed unexpectedly for {self.camera_name}." ) @@ -251,6 +252,7 @@ class CameraWatchdog(threading.Thread): self.logpipe.dump() self.start_ffmpeg_detect() elif now - self.capture_thread.current_frame.value > 20: + self.camera_fps.value = 0 self.logger.info( f"No frames received from {self.camera_name} in 20 seconds. Exiting ffmpeg..." )