mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-12-19 19:06:16 +01:00
Ensure at least 2 frames are saved per minute in preview video (#10337)
* simplify * Formatting
This commit is contained in:
parent
086eb37ece
commit
f7122a766e
@ -201,26 +201,18 @@ class PreviewRecorder:
|
||||
frame_time: float,
|
||||
) -> bool:
|
||||
"""Decide if this frame should be added to PREVIEW."""
|
||||
preview_output_fps = (
|
||||
2
|
||||
if any(
|
||||
o["label"] == "car"
|
||||
for o in get_active_objects(
|
||||
frame_time, self.config, current_tracked_objects
|
||||
)
|
||||
)
|
||||
else 1
|
||||
active_objs = get_active_objects(
|
||||
frame_time, self.config, current_tracked_objects
|
||||
)
|
||||
|
||||
preview_output_fps = 2 if any(o["label"] == "car" for o in active_objs) else 1
|
||||
|
||||
# limit output to 1 fps
|
||||
if (frame_time - self.last_output_time) < 1 / preview_output_fps:
|
||||
return False
|
||||
|
||||
# send frame if a non-stationary object is in a zone
|
||||
if any(
|
||||
(len(o["current_zones"]) > 0 and not o["stationary"])
|
||||
for o in current_tracked_objects
|
||||
):
|
||||
if len(active_objs > 0):
|
||||
self.last_output_time = frame_time
|
||||
return True
|
||||
|
||||
@ -228,6 +220,11 @@ class PreviewRecorder:
|
||||
self.last_output_time = frame_time
|
||||
return True
|
||||
|
||||
# ensure that at least 2 frames are written every minute
|
||||
if frame_time - self.last_output_time > 30:
|
||||
self.last_output_time = frame_time
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def write_frame_to_cache(self, frame_time: float, frame) -> None:
|
||||
|
Loading…
Reference in New Issue
Block a user