mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +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,
|
frame_time: float,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""Decide if this frame should be added to PREVIEW."""
|
"""Decide if this frame should be added to PREVIEW."""
|
||||||
preview_output_fps = (
|
active_objs = get_active_objects(
|
||||||
2
|
|
||||||
if any(
|
|
||||||
o["label"] == "car"
|
|
||||||
for o in get_active_objects(
|
|
||||||
frame_time, self.config, current_tracked_objects
|
frame_time, self.config, current_tracked_objects
|
||||||
)
|
)
|
||||||
)
|
|
||||||
else 1
|
preview_output_fps = 2 if any(o["label"] == "car" for o in active_objs) else 1
|
||||||
)
|
|
||||||
|
|
||||||
# limit output to 1 fps
|
# limit output to 1 fps
|
||||||
if (frame_time - self.last_output_time) < 1 / preview_output_fps:
|
if (frame_time - self.last_output_time) < 1 / preview_output_fps:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# send frame if a non-stationary object is in a zone
|
# send frame if a non-stationary object is in a zone
|
||||||
if any(
|
if len(active_objs > 0):
|
||||||
(len(o["current_zones"]) > 0 and not o["stationary"])
|
|
||||||
for o in current_tracked_objects
|
|
||||||
):
|
|
||||||
self.last_output_time = frame_time
|
self.last_output_time = frame_time
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -228,6 +220,11 @@ class PreviewRecorder:
|
|||||||
self.last_output_time = frame_time
|
self.last_output_time = frame_time
|
||||||
return True
|
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
|
return False
|
||||||
|
|
||||||
def write_frame_to_cache(self, frame_time: float, frame) -> None:
|
def write_frame_to_cache(self, frame_time: float, frame) -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user