diff --git a/frigate/object_processing.py b/frigate/object_processing.py index 55f6196b6..55a4d08f8 100644 --- a/frigate/object_processing.py +++ b/frigate/object_processing.py @@ -674,7 +674,7 @@ class CameraState: ) if current_frame is None: - logger.warning(f"Failed to get frame {frame_id} from SHM") + logger.debug(f"Failed to get frame {frame_id} from SHM") tracked_objects = self.tracked_objects.copy() current_ids = set(current_detections.keys()) diff --git a/frigate/output/output.py b/frigate/output/output.py index 65d1e3323..f351e967d 100644 --- a/frigate/output/output.py +++ b/frigate/output/output.py @@ -99,7 +99,7 @@ def output_frames( frame = frame_manager.get(frame_id, config.cameras[camera].frame_shape_yuv) if frame is None: - logger.warning(f"Failed to get frame {frame_id} from SHM") + logger.debug(f"Failed to get frame {frame_id} from SHM") continue # send camera frame to ffmpeg process if websockets are connected diff --git a/frigate/video.py b/frigate/video.py index aaea05d43..712ac1bcd 100755 --- a/frigate/video.py +++ b/frigate/video.py @@ -127,21 +127,22 @@ def capture_frames( if len(shm_frames) > shm_count: expired_frame_name = shm_frames.pop(0) frame_manager.delete(expired_frame_name) - except Exception as e: - logger.error(f"something video bad happened :: {e}") + except Exception: + # always delete the frame frame_manager.delete(frame_name) # shutdown has been initiated if stop_event.is_set(): break + logger.error(f"{config.name}: Unable to read frames from ffmpeg process.") if ffmpeg_process.poll() is not None: logger.error( f"{config.name}: ffmpeg process is not running. exiting capture thread..." ) - frame_manager.delete(frame_name) break + continue frame_rate.update()