allow the best image timeout to be configurable

This commit is contained in:
Blake Blackshear 2020-09-18 07:07:46 -05:00
parent 6e79a5402e
commit b35cc01035
3 changed files with 9 additions and 3 deletions

View File

@ -19,7 +19,7 @@ You see multiple bounding boxes because it draws bounding boxes from all frames
Run the container with Run the container with
```bash ```bash
docker run --rm \ docker run --rm \
-name frigate \ -name blakeblackshear/frigate:stable \
--privileged \ --privileged \
--shm-size=512m \ # should work for a 2-3 cameras --shm-size=512m \ # should work for a 2-3 cameras
-v /dev/bus/usb:/dev/bus/usb \ -v /dev/bus/usb:/dev/bus/usb \

View File

@ -140,6 +140,12 @@ cameras:
################ ################
take_frame: 1 take_frame: 1
################
# The number of seconds to retain the highest scoring image for the best.jpg endpoint before allowing it
# to be replaced by a newer image. Defaults to 60 seconds.
################
best_image_timeout: 60
################ ################
# MQTT settings # MQTT settings
################ ################

View File

@ -193,8 +193,8 @@ class CameraState():
current_best = self.best_objects[object_type] current_best = self.best_objects[object_type]
now = datetime.datetime.now().timestamp() now = datetime.datetime.now().timestamp()
# if the object is a higher score than the current best score # if the object is a higher score than the current best score
# or the current object is more than 1 minute old, use the new object # or the current object is older than desired, use the new object
if obj_copy['score'] > current_best['score'] or (now - current_best['frame_time']) > 60: if obj_copy['score'] > current_best['score'] or (now - current_best['frame_time']) > self.config.get('best_image_timeout', 60):
obj_copy['frame'] = np.copy(self.current_frame) obj_copy['frame'] = np.copy(self.current_frame)
self.best_objects[object_type] = obj_copy self.best_objects[object_type] = obj_copy
for c in self.callbacks['snapshot']: for c in self.callbacks['snapshot']: