Releases: blakeblackshear/frigate
0.11.0 Beta 6
Major Changes for 0.11.0
Link to updated docs: https://deploy-preview-2829--frigate-docs.netlify.app/
Changes since beta 5
- Note new breaking change! Switch to ffmpeg 5 (I know, I know...)
- Fixed arm32 compatibility (for now, but this is hanging by a thread)
- Motion
contour_area
andthreshold
values can now be adjusted dynamically via mqtt (#3154) - Recordings playback no longer resets when switching windows
- Experimental timeline UI improvements (#3298)
- Improve logging if recording segments are discarded when the cache falls behind
BREAKING CHANGES
- Update to ffmpeg5 will break any custom input arguments using the
stimeout
parameter. This needs to be renamed totimeout
in your config. - Some amd64 users may need to set the environment variable
LIBVA_DRIVER_NAME_JELLYFIN=i965
to get similar hardware acceleration performance to previous builds. - Upgrading to the beta will run migrations on the database file that are not backwards compatible. In order to rollback to 0.10.0, you will either need to restore an old database file or delete the database files so they can be recreated.
- This version includes a significant rework of the docker build. This may have broken ffmpeg hardware acceleration for some hardware that was working previously. Please open an issue if this happens so we can try and track down what's missing.
- Some deployment approaches are overwriting the PATH environment value to an old value. If you see errors like
No such file or directory: 'ffmpeg'
, then you need to stop overriding your PATH. This happens with both Proxmox LXC and Portainer (#3223) - The
max_seconds
config setting under events has been removed as it no longer has any effect
Frigate+ Integration
With this release, users can easily send snapshots to Frigate+ for labeling directly from the Events view. Note that Frigate+ is still in development, and custom models are not yet available. There is no cost to create an account and submit labeled images. Making it simpler to submit images should accelerate the build out of a robust training set.
To enable the Frigate+ functionality, you need to obtain an API Key from your Frigate+ account on the settings page and set it via the PLUS_API_KEY
environment variable. I am working on getting this added into the Home Assistant Addon as well.
Here is the roadmap for Frigate+:
- Launch web version allowing manual upload of training examples and labeling
- Integrate submission in Frigate
- Launch Frigate optimized models
- Launch individually optimized models
- Integrate labeling and suggestions in Frigate
Updated Events View
- Speed. The events view has been completely revamped and should be much faster than it was before.
- Slightly larger thumbnails.
- You no longer have to refresh the page to see the latest events.
- You can "star" or "favorite" events to tell Frigate to keep associated recordings and the snapshot indefinitely.
- Sub labels have been added to allow setting arbitrary labels on events. For example, you can use deepstack to run facial recognition and update the event with the name of the person detected. (#2949)
Updated Recordings View
- Speed. The recordings view doesn't look different, but it has been completely overhauled. It should be much faster, and event data and thumbnails are lazy loaded to reduce the amount of data that is loaded when visiting the page.
- Smoother seeking and transitions. Re-renders of the player have been reduced and you should see smoother seek behavior when selecting events.
- 16x playback was added for browsers other than Firefox.
Updated Dockerbuild
- Frigate is now built on top of plain Debian containers and consolidated into a single multiarch image.
Experimental Timeline UI
Not recommended for use yet, but an alternative UI has been added. It has very limited browser/device support. #2830
Other changes
- MQTT sensors for any object type #2908
- Update latest object endpoints to reference most recent event from database (you will no longer see black images for objects under the camera in live view) #2944
- Added a new ratio filter for object filters #2952
- Camera recordings always in sidebar #2846
- Enable and set mode per camera for birdseye #3083
- Customize order and hide cameras from the UI #2981
- Enable improve_contrast via MQTT #3011
- Enable/disable motion detection independent of object detection via MQTT #3117
- MQTT topic for motion detection #3152
- Batch deletes of recordings when more than 100,000 recordings need to be deleted
- Switch to jellyfin ffmpeg
- Improve cache handling for thumbnails and snapshots of completed events
- Fixes hwaccel issues for Raspberry Pi users
- Updates to debian 11 as a base image
- Consolidate Dockerfile to enable multiarch images
- Birdseye icno can now be customized #2979
- Frigate now checks for a newer release on startup and exposes that in the stats endpoint #3038
- Initial implementation of mypy and type checking
- Images from backend now have appropriate cache headers
Full Changelog: v0.10.0...v0.11.0-beta6
Image: blakeblackshear/frigate:0.11.0-beta6
0.11.0 Beta 5
Major Changes for 0.11.0
Link to updated docs: https://deploy-preview-2829--frigate-docs.netlify.app/
Changes since beta 4
- Support for reading Frigate+ api key from hassos addon options
- Switch back to ffmpeg 4.4.1
Changes since beta 3
- Just a re-release with the frontend build updated
Changes since beta 2
- Switch to ffmpeg 4.3.2 in hopes of audio encoding and hwaccel fixes
- Fixes for UI not loading with addons
- Fix delete icon for firefox
- Warning when deleting favorite events
- Gracefully handle failed new version checks when frigate doesn't have internet access
- Add filtering for sub labels
- Remove deprecated
max_seconds
config option
BREAKING CHANGES
- Upgrading to the beta will run migrations on the database file that are not backwards compatible. In order to rollback to 0.10.0, you will either need to restore an old database file or delete the database files so they can be recreated.
- This version includes a significant rework of the docker build. This may have broken ffmpeg hardware acceleration for some hardware that was working previously. Please open an issue if this happens so we can try and track down what's missing.
- Some deployment approaches are overwriting the PATH environment value to an old value. If you see errors like
No such file or directory: 'ffmpeg'
, then you need to stop overriding your PATH. This happens with both Proxmox LXC and Portainer (#3223) - The
max_seconds
config setting under events has been removed as it no longer has any effect
Frigate+ Integration
With this release, users can easily send snapshots to Frigate+ for labeling directly from the Events view. Note that Frigate+ is still in development, and custom models are not yet available. There is no cost to create an account and submit labeled images. Making it simpler to submit images should accelerate the build out of a robust training set.
To enable the Frigate+ functionality, you need to obtain an API Key from your Frigate+ account on the settings page and set it via the PLUS_API_KEY
environment variable. I am working on getting this added into the Home Assistant Addon as well.
Here is the roadmap for Frigate+:
- Launch web version allowing manual upload of training examples and labeling
- Integrate submission in Frigate
- Launch Frigate optimized models
- Launch individually optimized models
- Integrate labeling and suggestions in Frigate
Updated Events View
- Speed. The events view has been completely revamped and should be much faster than it was before.
- Slightly larger thumbnails.
- You no longer have to refresh the page to see the latest events.
- You can "star" or "favorite" events to tell Frigate to keep associated recordings and the snapshot indefinitely.
- Sub labels have been added to allow setting arbitrary labels on events. For example, you can use deepstack to run facial recognition and update the event with the name of the person detected. (#2949)
Updated Recordings View
- Speed. The recordings view doesn't look different, but it has been completely overhauled. It should be much faster, and event data and thumbnails are lazy loaded to reduce the amount of data that is loaded when visiting the page.
- Smoother seeking and transitions. Re-renders of the player have been reduced and you should see smoother seek behavior when selecting events.
- 16x playback was added for browsers other than Firefox.
Updated Dockerbuild
- Frigate is now built on top of plain Debian containers and consolidated into a single multiarch image.
Experimental Timeline UI
Not recommended for use yet, but an alternative UI has been added. It has very limited browser/device support. #2830
Other changes
- MQTT sensors for any object type #2908
- Update latest object endpoints to reference most recent event from database (you will no longer see black images for objects under the camera in live view) #2944
- Added a new ratio filter for object filters #2952
- Camera recordings always in sidebar #2846
- Enable and set mode per camera for birdseye #3083
- Customize order and hide cameras from the UI #2981
- Enable improve_contrast via MQTT #3011
- Enable/disable motion detection independent of object detection via MQTT #3117
- MQTT topic for motion detection #3152
- Batch deletes of recordings when more than 100,000 recordings need to be deleted
- Switch to jellyfin ffmpeg
- Improve cache handling for thumbnails and snapshots of completed events
- Fixes hwaccel issues for Raspberry Pi users
- Updates to debian 11 as a base image
- Consolidate Dockerfile to enable multiarch images
- Birdseye icno can now be customized #2979
- Frigate now checks for a newer release on startup and exposes that in the stats endpoint #3038
- Initial implementation of mypy and type checking
- Images from backend now have appropriate cache headers
Full Changelog: v0.10.0...v0.11.0-beta5
Image: blakeblackshear/frigate:0.11.0-beta5
0.11.0 Beta 4
Major Changes for 0.11.0
Link to updated docs: https://deploy-preview-2829--frigate-docs.netlify.app/
Changes since beta 3
- Just a re-release with the frontend build updated
Changes since beta 2
- Switch to ffmpeg 4.3.2 in hopes of audio encoding and hwaccel fixes
- Fixes for UI not loading with addons
- Fix delete icon for firefox
- Warning when deleting favorite events
- Gracefully handle failed new version checks when frigate doesn't have internet access
- Add filtering for sub labels
- Remove deprecated
max_seconds
config option
BREAKING CHANGES
- Upgrading to the beta will run migrations on the database file that are not backwards compatible. In order to rollback to 0.10.0, you will either need to restore an old database file or delete the database files so they can be recreated.
- This version includes a significant rework of the docker build. This may have broken ffmpeg hardware acceleration for some hardware that was working previously. Please open an issue if this happens so we can try and track down what's missing.
- Some deployment approaches are overwriting the PATH environment value to an old value. If you see errors like
No such file or directory: 'ffmpeg'
, then you need to stop overriding your PATH. This happens with both Proxmox LXC and Portainer (#3223) - The
max_seconds
config setting under events has been removed as it no longer has any effect
Frigate+ Integration
With this release, users can easily send snapshots to Frigate+ for labeling directly from the Events view. Note that Frigate+ is still in development, and custom models are not yet available. There is no cost to create an account and submit labeled images. Making it simpler to submit images should accelerate the build out of a robust training set.
To enable the Frigate+ functionality, you need to obtain an API Key from your Frigate+ account on the settings page and set it via the PLUS_API_KEY
environment variable. I am working on getting this added into the Home Assistant Addon as well.
Here is the roadmap for Frigate+:
- Launch web version allowing manual upload of training examples and labeling
- Integrate submission in Frigate
- Launch Frigate optimized models
- Launch individually optimized models
- Integrate labeling and suggestions in Frigate
Updated Events View
- Speed. The events view has been completely revamped and should be much faster than it was before.
- Slightly larger thumbnails.
- You no longer have to refresh the page to see the latest events.
- You can "star" or "favorite" events to tell Frigate to keep associated recordings and the snapshot indefinitely.
- Sub labels have been added to allow setting arbitrary labels on events. For example, you can use deepstack to run facial recognition and update the event with the name of the person detected. (#2949)
Updated Recordings View
- Speed. The recordings view doesn't look different, but it has been completely overhauled. It should be much faster, and event data and thumbnails are lazy loaded to reduce the amount of data that is loaded when visiting the page.
- Smoother seeking and transitions. Re-renders of the player have been reduced and you should see smoother seek behavior when selecting events.
- 16x playback was added for browsers other than Firefox.
Updated Dockerbuild
- Frigate is now built on top of plain Debian containers and consolidated into a single multiarch image.
Experimental Timeline UI
Not recommended for use yet, but an alternative UI has been added. It has very limited browser/device support. #2830
Other changes
- MQTT sensors for any object type #2908
- Update latest object endpoints to reference most recent event from database (you will no longer see black images for objects under the camera in live view) #2944
- Added a new ratio filter for object filters #2952
- Camera recordings always in sidebar #2846
- Enable and set mode per camera for birdseye #3083
- Customize order and hide cameras from the UI #2981
- Enable improve_contrast via MQTT #3011
- Enable/disable motion detection independent of object detection via MQTT #3117
- MQTT topic for motion detection #3152
- Batch deletes of recordings when more than 100,000 recordings need to be deleted
- Switch to jellyfin ffmpeg
- Improve cache handling for thumbnails and snapshots of completed events
- Fixes hwaccel issues for Raspberry Pi users
- Updates to debian 11 as a base image
- Consolidate Dockerfile to enable multiarch images
- Birdseye icno can now be customized #2979
- Frigate now checks for a newer release on startup and exposes that in the stats endpoint #3038
- Initial implementation of mypy and type checking
- Images from backend now have appropriate cache headers
Full Changelog: v0.10.0...v0.11.0-beta4
Image: blakeblackshear/frigate:0.11.0-beta4
0.11.0 Beta 3
Major Changes for 0.11.0
Link to updated docs: https://deploy-preview-2829--frigate-docs.netlify.app/
Changes since beta 2
- Switch to ffmpeg 4.3.2 in hopes of audio encoding and hwaccel fixes
- Fixes for UI not loading with addons
- Fix delete icon for firefox
- Warning when deleting favorite events
- Gracefully handle failed new version checks when frigate doesn't have internet access
- Add filtering for sub labels
- Remove deprecated
max_seconds
config option
BREAKING CHANGES
- Upgrading to the beta will run migrations on the database file that are not backwards compatible. In order to rollback to 0.10.0, you will either need to restore an old database file or delete the database files so they can be recreated.
- This version includes a significant rework of the docker build. This may have broken ffmpeg hardware acceleration for some hardware that was working previously. Please open an issue if this happens so we can try and track down what's missing.
- Some deployment approaches are overwriting the PATH environment value to an old value. If you see errors like
No such file or directory: 'ffmpeg'
, then you need to stop overriding your PATH. This happens with both Proxmox LXC and Portainer (#3223) - The
max_seconds
config setting under events has been removed as it no longer has any effect
Frigate+ Integration
With this release, users can easily send snapshots to Frigate+ for labeling directly from the Events view. Note that Frigate+ is still in development, and custom models are not yet available. There is no cost to create an account and submit labeled images. Making it simpler to submit images should accelerate the build out of a robust training set.
To enable the Frigate+ functionality, you need to obtain an API Key from your Frigate+ account on the settings page and set it via the PLUS_API_KEY
environment variable. I am working on getting this added into the Home Assistant Addon as well.
Here is the roadmap for Frigate+:
- Launch web version allowing manual upload of training examples and labeling
- Integrate submission in Frigate
- Launch Frigate optimized models
- Launch individually optimized models
- Integrate labeling and suggestions in Frigate
Updated Events View
- Speed. The events view has been completely revamped and should be much faster than it was before.
- Slightly larger thumbnails.
- You no longer have to refresh the page to see the latest events.
- You can "star" or "favorite" events to tell Frigate to keep associated recordings and the snapshot indefinitely.
- Sub labels have been added to allow setting arbitrary labels on events. For example, you can use deepstack to run facial recognition and update the event with the name of the person detected. (#2949)
Updated Recordings View
- Speed. The recordings view doesn't look different, but it has been completely overhauled. It should be much faster, and event data and thumbnails are lazy loaded to reduce the amount of data that is loaded when visiting the page.
- Smoother seeking and transitions. Re-renders of the player have been reduced and you should see smoother seek behavior when selecting events.
- 16x playback was added for browsers other than Firefox.
Updated Dockerbuild
- Frigate is now built on top of plain Debian containers and consolidated into a single multiarch image.
Experimental Timeline UI
Not recommended for use yet, but an alternative UI has been added. It has very limited browser/device support. #2830
Other changes
- MQTT sensors for any object type #2908
- Update latest object endpoints to reference most recent event from database (you will no longer see black images for objects under the camera in live view) #2944
- Added a new ratio filter for object filters #2952
- Camera recordings always in sidebar #2846
- Enable and set mode per camera for birdseye #3083
- Customize order and hide cameras from the UI #2981
- Enable improve_contrast via MQTT #3011
- Enable/disable motion detection independent of object detection via MQTT #3117
- MQTT topic for motion detection #3152
- Batch deletes of recordings when more than 100,000 recordings need to be deleted
- Switch to jellyfin ffmpeg
- Improve cache handling for thumbnails and snapshots of completed events
- Fixes hwaccel issues for Raspberry Pi users
- Updates to debian 11 as a base image
- Consolidate Dockerfile to enable multiarch images
- Birdseye icno can now be customized #2979
- Frigate now checks for a newer release on startup and exposes that in the stats endpoint #3038
- Initial implementation of mypy and type checking
- Images from backend now have appropriate cache headers
Full Changelog: v0.10.0...v0.11.0-beta3
Image: blakeblackshear/frigate:0.11.0-beta3
0.11.0 Beta 2
Major Changes for 0.11.0
Link to updated docs: https://deploy-preview-2829--frigate-docs.netlify.app/
BREAKING CHANGES
- This version includes a significant rework of the docker build. This may have broken ffmpeg hardware acceleration for some hardware that was working previously. Please open an issue if this happens so we can try and track down what's missing.
- Some deployment approaches are overwriting the PATH environment value to an old value. If you see errors like
No such file or directory: 'ffmpeg'
, then you need to stop overriding your PATH. This happens with both Proxmox LXC and Portainer (#3223)
Frigate+ Integration
With this release, users can easily send snapshots to Frigate+ for labeling directly from the Events view. Note that Frigate+ is still in development, and custom models are not yet available. There is no cost to create an account and submit labeled images. Making it simpler to submit images should accelerate the build out of a robust training set.
To enable the Frigate+ functionality, you need to obtain an API Key from your Frigate+ account on the settings page and set it via the PLUS_API_KEY
environment variable. I am working on getting this added into the Home Assistant Addon as well.
Here is the roadmap for Frigate+:
- Launch web version allowing manual upload of training examples and labeling
- Integrate submission in Frigate
- Launch Frigate optimized models
- Launch individually optimized models
- Integrate labeling and suggestions in Frigate
Updated Events View
- Speed. The events view has been completely revamped and should be much faster than it was before.
- Slightly larger thumbnails.
- You no longer have to refresh the page to see the latest events.
- You can "star" or "favorite" events to tell Frigate to keep associated recordings and the snapshot indefinitely.
- Sub labels have been added to allow setting arbitrary labels on events. For example, you can use deepstack to run facial recognition and update the event with the name of the person detected. (#2949)
Updated Recordings View
- Speed. The recordings view doesn't look different, but it has been completely overhauled. It should be much faster, and event data and thumbnails are lazy loaded to reduce the amount of data that is loaded when visiting the page.
- Smoother seeking and transitions. Re-renders of the player have been reduced and you should see smoother seek behavior when selecting events.
- 16x playback was added for browsers other than Firefox.
Updated Dockerbuild
- Frigate is now built on top of plain Debian containers and consolidated into a single multiarch image.
Experimental Timeline UI
Not recommended for use yet, but an alternative UI has been added. It has very limited browser/device support. #2830
Other changes
- MQTT sensors for any object type #2908
- Update latest object endpoints to reference most recent event from database (you will no longer see black images for objects under the camera in live view) #2944
- Added a new ratio filter for object filters #2952
- Camera recordings always in sidebar #2846
- Enable and set mode per camera for birdseye #3083
- Customize order and hide cameras from the UI #2981
- Enable improve_contrast via MQTT #3011
- Enable/disable motion detection independent of object detection via MQTT #3117
- MQTT topic for motion detection #3152
- Batch deletes of recordings when more than 100,000 recordings need to be deleted
- Switch to jellyfin ffmpeg
- Improve cache handling for thumbnails and snapshots of completed events
- Fixes hwaccel issues for Raspberry Pi users
- Updates to debian 11 as a base image
- Consolidate Dockerfile to enable multiarch images
- Birdseye icno can now be customized #2979
- Frigate now checks for a newer release on startup and exposes that in the stats endpoint #3038
- Initial implementation of mypy and type checking
- Images from backend now have appropriate cache headers
Full Changelog: v0.10.0...v0.11.0-beta2
Image: blakeblackshear/frigate:0.11.0-beta2
Release 0.10.1
Changes:
- Make dynamic contrast optional and disable by default
- Cleanup print statement
Full Changelog: v0.10.0...v0.10.1
Images:
- x86:
blakeblackshear/frigate:0.10.1-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.1-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.1-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.1-aarch64
0.10.0 Release
Major Changes for 0.10.0
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.
The following settings have been added to tune stationary tracking:
detect:
...
# Optional: Configuration for stationary object tracking
stationary:
# Optional: Frequency for running detection on stationary objects (default: shown below)
# When set to 0, object detection will never be run on stationary objects. If set to 10,
# it will be run on every 10th frame.
interval: 0
# Optional: Number of frames without a position change for an object to be considered
# stationary (default: 10x the frame rate or 10s)
threshold: 50
# Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
# This can help with false positives for objects that should only be stationary for a limited amount of time.
# It can also be used to disable stationary object tracking. For example, you may want to set a value for person,
# but leave car at the default.
max_frames:
# Optional: Default for all object types (default: not set, track forever)
default: 3000
# Optional: Object specific values
objects:
person: 1000
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. 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. It may result in more false positives at night.
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
- Recordings link is always visible in the UI even when record is disabled
- Playback rate is retained in recordings viewer
Fixes
Full Changelog: v0.9.4...v0.10.0
Images:
- x86:
blakeblackshear/frigate:0.10.0-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-aarch64
0.10.0 Release Candidate 1
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 12
- None
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.
The following settings have been added to tune stationary tracking:
detect:
...
# Optional: Configuration for stationary object tracking
stationary:
# Optional: Frequency for running detection on stationary objects (default: shown below)
# When set to 0, object detection will never be run on stationary objects. If set to 10,
# it will be run on every 10th frame.
interval: 0
# Optional: Number of frames without a position change for an object to be considered
# stationary (default: 10x the frame rate or 10s)
threshold: 50
# Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
# This can help with false positives for objects that should only be stationary for a limited amount of time.
# It can also be used to disable stationary object tracking. For example, you may want to set a value for person,
# but leave car at the default.
max_frames:
# Optional: Default for all object types (default: not set, track forever)
default: 3000
# Optional: Object specific values
objects:
person: 1000
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
- Recordings link is always visible in the UI even when record is disabled
- Playback rate is retained in recordings viewer
Fixes
Full Changelog: v0.9.4...v0.10.0-rc1
Images:
- x86:
blakeblackshear/frigate:0.10.0-rc1-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-rc1-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-rc1-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-rc1-aarch64
0.10.0 Beta 12
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 11
- New
max_frames
setting to allow per object customization of stationary tracking - BREAKING CHANGE refactored stationary settings (previously
stationary_threshold
andstationary_interval
) under a stationary section
detect:
...
# Optional: Configuration for stationary object tracking
stationary:
# Optional: Frequency for running detection on stationary objects (default: shown below)
# When set to 0, object detection will never be run on stationary objects. If set to 10,
# it will be run on every 10th frame.
interval: 0
# Optional: Number of frames without a position change for an object to be considered
# stationary (default: 10x the frame rate or 10s)
threshold: 50
# Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
# This can help with false positives for objects that should only be stationary for a limited amount of time.
# It can also be used to disable stationary object tracking. For example, you may want to set a value for person,
# but leave car at the default.
max_frames:
# Optional: Default for all object types (default: not set, track forever)
default: 3000
# Optional: Object specific values
objects:
person: 1000
Changes since beta 10
- Default for stationary_threshold is now 10x the FPS or ~10s
- Update birdseye to only show non-stationary objects
- Recordings link is always visible in the UI even when record is disabled
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.
The following settings have been added to tune stationary tracking:
detect:
...
# Optional: Configuration for stationary object tracking
stationary:
# Optional: Frequency for running detection on stationary objects (default: shown below)
# When set to 0, object detection will never be run on stationary objects. If set to 10,
# it will be run on every 10th frame.
interval: 0
# Optional: Number of frames without a position change for an object to be considered
# stationary (default: 10x the frame rate or 10s)
threshold: 50
# Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
# This can help with false positives for objects that should only be stationary for a limited amount of time.
# It can also be used to disable stationary object tracking. For example, you may want to set a value for person,
# but leave car at the default.
max_frames:
# Optional: Default for all object types (default: not set, track forever)
default: 3000
# Optional: Object specific values
objects:
person: 1000
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-beta12
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta12-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta12-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta12-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta12-aarch64
0.10.0 Beta 11
Major Changes for 0.10.0
Updated docs are available for preview here.
Changes since beta 10
- Default for stationary_threshold is now 10x the FPS or ~10s
- Update birdseye to only show non-stationary objects
- Recordings link is always visible in the UI even when record is disabled
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-beta11
Images:
- x86:
blakeblackshear/frigate:0.10.0-beta11-amd64
- x86 w/ nvidia (for ffmpeg only):
blakeblackshear/frigate:0.10.0-beta11-amd64nvidia
- Raspberry Pi 3/4 (32bit):
blakeblackshear/frigate:0.10.0-beta11-armv7
- Raspberry Pi 4 (64bit):
blakeblackshear/frigate:0.10.0-beta11-aarch64