Releases: blakeblackshear/frigate
0.10.0 Beta 10
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 9
- Publish mqtt updates to events topic on position changes, when an object becomes stationary, and at least once per minute
- Make
stationary_threshold
configurable so you can adjust how many frames are required to determine an object is stationary - In progress events are now listed in the recordings viewer
- Playback rate is retained in recordings viewer
- In progress events can now be downloaded
BREAKING CHANGES
Camera Names
Camera names in the config file must be URL safe starting with this version. Only A-Z
, a-z
, 0-9
, -
, and _
are permitted. If your cameras need to be renamed, any associated events will be retained based on your global retain settings, not the new camera name settings. If you want to retain recordings from the previous camera name, you need to ensure you have retain days set globally. For example:
record: # <---------- global setting
retain:
days: 7 # <------- will retain 7 days of recordings for old cameras
Retain modes
This release adds the ability to define retain modes for the initial retention period and for event data beyond the initial retain period. There are three modes:
- all: retain all recording segments. This is consistent with the previous behavior
- motion: retain only the recording segments that have some motion
- active_objects: retain only the recording segments that have a moving true positive object that is being tracked
The default record settings will retain only segments that have motion for events.
Note that the retain_days
config entry has been DEPRECATED. This release includes backwards compatibility, but you should migrate to the new format.
Example: Store all segments with motion for 7 days and events with active objects for 14 days.
record:
enabled: True
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be paused (the new stationary_interval
setting allows periodic checks too) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous 10 frames. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. The zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived. Ensure you use the right retain mode to ensure you only capture the segments you want.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
Now that recordings are managed proactively, recordings are expired according to the retention settings at the interval set in the expire_interval
setting (defaults to once per hour).
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
- Report coral temperature stats when available (USB Coral not supported)
- Limit the cache time for playlist urls to avoid recording playback failures
- Allow yaml extension in addition to yml
- Sync database recordings with the disk on startup
- Store motion and objects data in database
- Entered zones in mqtt messages are now sorted based on the order the object entered zones
- Frigate now scans for objects in the frame on startup
- Detected objects that never move no longer generate events or snapshots
- Make recording expiration interval configurable (previously hard coded to 60 minutes)
- New event datepicker in the events viewer
- Require camera names to be url safe
- Ensure clean snapshots are deleted when deleting events
- Fix bug when last recording in the database does not exist on disk
- Randomize the region slightly to try and reduce lost true positives
- Allow recording motion even when detect is disabled
- Add stacktrace to config errors
- Tweak error messages when ffmpeg fails
- Update has_clip to false when an event fails to play
- Handle rare divide by zero in fps calculation
Fixes
Full Changelog: v0.9.4...v0.10.0-beta10
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta10-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta10-amd64nvidia
Raspberry Pi 3/4 (32bit):blakeblackshear/frigate:0.10.0-beta10-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta10-aarch64
0.10.0 Beta 9
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 8
- Allow recording motion even when detect is disabled
- Fix bug with
active_objects
retain mode - Keep counting motionless frames for stationary objects
- Add stacktrace to config errors
- Tweak error messages when ffmpeg fails
- Update has_clip to false when an event fails to play
- Handle rare divide by zero in fps calculation
- Docs updates
Changes since beta 7
- Allow
-
in camera names
Changes since beta 6
- Frigate now scans for objects in the frame on startup
- Detected objects that never move no longer generate events or snapshots
- Improve method used to determine when an object is stationary
- Stop periodic scans on stationary objects by default
- Make expiration interval configurable (previously hard coded to 60 minutes)
- Make motion the default retain mode for events
- New event datepicker in the events viewer
- Require camera names to be url safe
- Ensure clean snapshots are deleted when deleting events
- Fix bug when last recording in the database does not exist on disk
- Randomize the region slightly to try and reduce lost true positives
Retain modes
This release adds the ability to define retain modes for the initial retention period and for event data beyond the initial retain period. There are three modes:
- all: retain all recording segments. This is consistent with the previous behavior
- motion: retain only the recording segments that have some motion
- active_objects: retain only the recording segments that have a moving true positive object that is being tracked
The default record settings will retain only segments that have motion for events.
Note that the retain_days
config entry has been DEPRECATED. This release includes backwards compatibility, but you should migrate to the new format.
Example: Store all segments with motion for 7 days and events with active objects for 14 days.
record:
enabled: True
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be paused (the new stationary_interval
setting allows periodic checks too) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous 10 frames. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. The zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived. Ensure you use the right retain mode to ensure you only capture the segments you want.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
Now that recordings are managed proactively, recordings are expired according to the retention settings at the interval set in the expire_interval
setting (defaults to once per hour).
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
- Report coral temperature stats when available (USB Coral not supported)
- Limit the cache time for playlist urls to avoid recording playback failures
- Allow yaml extension in addition to yml
- Sync database recordings with the disk on startup
- Store motion and objects data in database
- Entered zones in mqtt messages are now sorted based on the order the object entered zones
Fixes
Full Changelog: v0.9.4...v0.10.0-beta9
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta9-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta9-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta9-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta9-aarch64
0.10.0 Beta 8
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 7
- Allow
-
in camera names
Changes since beta 6
- Frigate now scans for objects in the frame on startup
- Detected objects that never move no longer generate events or snapshots
- Improve method used to determine when an object is stationary
- Stop periodic scans on stationary objects by default
- Make expiration interval configurable (previously hard coded to 60 minutes)
- Make motion the default retain mode for events
- New event datepicker in the events viewer
- Require camera names to be url safe
- Ensure clean snapshots are deleted when deleting events
- Fix bug when last recording in the database does not exist on disk
- Randomize the region slightly to try and reduce lost true positives
Retain modes
This release adds the ability to define retain modes for the initial retention period and for event data beyond the initial retain period. There are three modes:
- all: retain all recording segments. This is consistent with the previous behavior
- motion: retain only the recording segments that have some motion
- active_objects: retain only the recording segments that have a moving true positive object that is being tracked
The default record settings will retain only segments that have motion for events.
Note that the retain_days
config entry has been DEPRECATED. This release includes backwards compatibility, but you should migrate to the new format.
Example: Store all segments with motion for 7 days and events with active objects for 14 days.
record:
enabled: True
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be paused (the new stationary_interval
setting allows periodic checks too) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous 10 frames. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. The zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived. Ensure you use the right retain mode to ensure you only capture the segments you want.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
Now that recordings are managed proactively, recordings are expired according to the retention settings at the interval set in the expire_interval
setting (defaults to once per hour).
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
- Report coral temperature stats when available (USB Coral not supported)
- Limit the cache time for playlist urls to avoid recording playback failures
- Allow yaml extension in addition to yml
- Sync database recordings with the disk on startup
- Store motion and objects data in database
- Entered zones in mqtt messages are now sorted based on the order the object entered zones
Fixes
Full Changelog: v0.9.4...v0.10.0-beta8
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta8-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta8-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta8-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta8-aarch64
0.10.0 Beta 7
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 6
- Frigate now scans for objects in the frame on startup
- Detected objects that never move no longer generate events or snapshots
- Improve method used to determine when an object is stationary
- Stop periodic scans on stationary objects by default
- Make expiration interval configurable (previously hard coded to 60 minutes)
- Make motion the default retain mode for events
- New event datepicker in the events viewer
- Require camera names to be url safe
- Ensure clean snapshots are deleted when deleting events
- Fix bug when last recording in the database does not exist on disk
- Randomize the region slightly to try and reduce lost true positives
Retain modes
This release adds the ability to define retain modes for the initial retention period and for event data beyond the initial retain period. There are three modes:
- all: retain all recording segments. This is consistent with the previous behavior
- motion: retain only the recording segments that have some motion
- active_objects: retain only the recording segments that have a moving true positive object that is being tracked
The default record settings will retain only segments that have motion for events.
Note that the retain_days
config entry has been DEPRECATED. This release includes backwards compatibility, but you should migrate to the new format.
Example: Store all segments with motion for 7 days and events with active objects for 14 days.
record:
enabled: True
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be paused (the new stationary_interval
setting allows periodic checks too) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous 10 frames. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. The zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived. Ensure you use the right retain mode to ensure you only capture the segments you want.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
Now that recordings are managed proactively, recordings are expired according to the retention settings at the interval set in the expire_interval
setting (defaults to once per hour).
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
- Report coral temperature stats when available (USB Coral not supported)
- Limit the cache time for playlist urls to avoid recording playback failures
- Allow yaml extension in addition to yml
- Sync database recordings with the disk on startup
- Store motion and objects data in database
- Entered zones in mqtt messages are now sorted based on the order the object entered zones
Fixes
Full Changelog: v0.9.4...v0.10.0-beta7
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta7-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta7-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta7-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta7-aarch64
0.10.0 Beta 6
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 5
- Fix issue with migrations for new users
- Remove disk sync on startup
Retain modes
This release adds the ability to define retain modes for the initial retention period and for event data beyond the initial retain period. There are three modes:
- all: retain all recording segments. This is consistent with the previous behavior
- motion: retain only the recording segments that have some motion
- active_objects: retain only the recording segments that have a moving true positive object that is being tracked
The default record settings will retain only segments that have active_objects for events.
Note that the retain_days
config entry has been DEPRECATED. This release includes backwards compatibility, but you should migrate to the new format.
Example: Store all segments with motion for 7 days and events with active objects for 14 days.
record:
enabled: True
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be throttled to 1 frame every 10 seconds (this is adjustable with the new stationary_interval
setting) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous frame. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. The zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived. Ensure you use the right retain mode to ensure you only capture the segments you want.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
Now that recordings are managed proactively, recordings are expired according to the retention settings once per hour.
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
- Report coral temperature stats when available (USB Coral not supported)
- Limit the cache time for playlist urls to avoid recording playback failures
- Allow yaml extension in addition to yml
- Sync database recordings with the disk on startup
- Store motion and objects data in database
- Entered zones in mqtt messages are now sorted based on the order the object entered zones
Fixes
- fixes #2129
Full Changelog: v0.9.4...v0.10.0-beta6
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta6-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta6-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta6-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta6-aarch64
0.10.0 Beta 5
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 4
- Add new retention modes to allow only storing recording segments when tracked objects are active
- Store motion and objects data in database
- Entered zones in mqtt messages are now sorted based on the order the object entered zones
- Only sync database recordings with the disk on startup
- Only expire recordings once per hour
- Report coral temperature stats when available (USB Coral not supported)
- Limit the cache time for playlist urls to avoid recording playback failures
- Allow yaml extension in addition to yml
Retain modes
This release adds the ability to define retain modes for the initial retention period and for event data beyond the initial retain period. There are three modes:
- all: retain all recording segments. This is consistent with the previous behavior
- motion: retain only the recording segments that have some motion
- active_objects: retain only the recording segments that have a moving true positive object that is being tracked
The default record settings will retain only segments that have active_objects for events.
Note that the retain_days
config entry has been DEPRECATED. This release includes backwards compatibility, but you should migrate to the new format.
Example: Store all segments with motion for 7 days and events with active objects for 14 days.
record:
enabled: True
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be throttled to 1 frame every 10 seconds (this is adjustable with the new stationary_interval
setting) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous frame. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. The zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived. Ensure you use the right retain mode to ensure you only capture the segments you want.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
Now that recordings are managed proactively, recordings are expired according to the retention settings once per hour.
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
- Report coral temperature stats when available (USB Coral not supported)
- Limit the cache time for playlist urls to avoid recording playback failures
- Allow yaml extension in addition to yml
- Sync database recordings with the disk on startup
- Store motion and objects data in database
- Entered zones in mqtt messages are now sorted based on the order the object entered zones
Fixes
- fixes #2129
Full Changelog: v0.9.4...v0.10.0-beta5
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta5-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta5-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta5-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta5-aarch64
0.10.0 Beta 4
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 3
- Fix issue causing recording segments to be missing for events that ended before the segment was ready
- Prevent stationary interval from being less than 1
- Fix snapshot url for in progress events
- Prevent segments in playlist from having duration 0
- Add logging for error messages in VOD endpoints
- Cleanup recordings missing from disk once per hour
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be throttled to 1 frame every 10 seconds (this is adjustable with the new stationary_interval
setting) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous frame. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. This means that the recording segments will be retained for all 5 hours the car was tracked. In addition, the zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
Fixes
- fixes #2129
Full Changelog: v0.9.4...v0.10.0-beta4
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta4-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta4-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta4-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta4-aarch64
0.10.0 Beta 3
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 2
- Bugfix for
local variable 'duration' referenced before assignment
errors
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be throttled to 1 frame every 10 seconds (this is adjustable with the new stationary_interval
setting) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous frame. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. This means that the recording segments will be retained for all 5 hours the car was tracked. In addition, the zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
Fixes
- fixes #2129
Full Changelog: v0.9.4...v0.10.0-beta3
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta3-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta3-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta3-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta3-aarch64
0.10.0 Beta 2
Major Changes for 0.10.0
Updated docs are available for preview here.
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be throttled to 1 frame every 10 seconds (this is adjustable with the new stationary_interval
setting) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous frame. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. This means that the recording segments will be retained for all 5 hours the car was tracked. In addition, the zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so now you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. You should never see more than 7 segments in the cache for each camera. If the cache maintenance job is too slow, you will get a warning in the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. If you have customized either frame_height
or contour_area
in the past, it is recommended that you remove those for your camera and let them revert back to the new defaults. For most users, the sensitivity can be tuned by adjusting contour_area
(smaller numbers are more sensitive and larger numbers are less sensitive). For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
Fixes
- fixes #2129
Full Changelog: v0.9.4...v0.10.0-beta2
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta2-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta2-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta2-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta2-aarch64
0.10.0 Beta 1
Major Changes for 0.10.0
Stationary objects
Frigate will now continue to track objects after they are stationary. This enables use cases such as presence detection. After an object has been stationary for 10 frames, object detection for the object will be throttled to 1 frame every 10 seconds (this is adjustable with the new stationary_interval
setting) until there is new movement. An object is determined to be stationary if the bounding box in the current frame overlaps almost entirely with the previous frame. I have been testing this in my home office, and it works quite well.
I expect this to disrupt the way a few people are using Frigate. For example, a car that enters the driveway, parks, and then leaves 5 hours later will be one continuous event. This means that the recording segments will be retained for all 5 hours the car was tracked. In addition, the zones will stay with the tracked object over this lifetime, so when the car leaves, it will still have zones associated from when it first arrived.
Depending on the specifics of your room, you may need to tune your resolution and motion settings to get the results you want. In my office, I reduced the resolution to 640x360 and increased the contour_area
setting for motion detection up to 125 to reduce the sensitivity. I recommend watching the debug view and adjusting as needed.
fixes #841
In progress events and cache handling
Events are now stored in the database while in progress, so you can expect to see In progress
for some events under end time in the Events view.
Recording segments written to the cache are now only moved to the recordings folder if they overlap with an event (in-progress events too). For those with retain_days
set to 0, this eliminates disk I/O when there are no events. Frigate will no longer store a minimum of 5 minutes of recording segments for each camera, so no you can enable recording without worrying about SD/SSD wear.
Lastly, more proactive cache maintenance was implemented to prevent the cache disk from filling up. If too many cache segments exist, they will be deleted and a warning message (Proactively cleaning cache. Your recordings disk may be too slow.
) will be printed to the logs. You can also see the time it takes to copy to the recordings disk by setting frigate.record: debug
in the logger config. Additional error handling was also implemented to prevent the cache maintenance thread from stopping on errors.
fixes #1885
Motion detection improvements
0.9.0 introduced dynamic motion sensitivity which didn't work out well. For many users, this made motion detection too sensitive which increased CPU usage due to more motion causing more object detection. It also increased false positive detections due to the increased frequency for detections on areas without substantial motion.
In this release, motion detection has been reset back to better defaults for frame_height
and contour_area
. For most users, the sensitivity can be tuned by adjusting contour_area
. For very high resolutions with very small objects, the frame_height
may need to be increased.
In addition, this release brings about dynamic contrast adjustment for motion detection. Based on my testing, this substantially improves night time detection with IR lights and other low contrast situations.
Other changes
- Improved logic for merging motion, bounding boxes, and regions
Fixes
- fixes #2129
Full Changelog: v0.9.4...v0.10.0-beta1
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta1-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta1-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta1-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta1-aarch64