diff --git a/frigate/api/review.py b/frigate/api/review.py index 058f327ae..8dc376554 100644 --- a/frigate/api/review.py +++ b/frigate/api/review.py @@ -363,6 +363,7 @@ def motion_activity(): ) clauses = [(Recordings.start_time > after) & (Recordings.end_time < before)] + clauses.append((Recordings.motion <= 100)) if cameras != "all": camera_list = cameras.split(",") diff --git a/frigate/record/maintainer.py b/frigate/record/maintainer.py index ac0989fe6..6781eed23 100644 --- a/frigate/record/maintainer.py +++ b/frigate/record/maintainer.py @@ -71,7 +71,7 @@ class RecordingMaintainer(threading.Thread): self.audio_recordings_info: dict[str, list] = defaultdict(list) self.end_time_cache: dict[str, Tuple[datetime.datetime, float]] = {} - self.camera_frame_area = dict[str, int] + self.camera_frame_area: dict[str, int] = {} for camera in self.config.cameras.values(): self.camera_frame_area[camera.name] = ( @@ -318,10 +318,16 @@ class RecordingMaintainer(threading.Thread): total_motion_area += sum([area(box) for box in frame[2]]) - normalized_motion_area = int( - (total_motion_area / (self.camera_frame_area[camera] * video_frame_count)) - * 100 - ) + if video_frame_count > 0: + normalized_motion_area = int( + ( + total_motion_area + / (self.camera_frame_area[camera] * video_frame_count) + ) + * 100 + ) + else: + normalized_motion_area = 0 audio_values = [] for frame in self.audio_recordings_info[camera]: