Draft docs for this release: https://deploy-preview-6262--frigate-docs.netlify.app
Major Changes For 0.13.0
Security Advisories
The Github Security Lab team reached out to report the following security vulnerabilities.
- Cross-site request forgery in
config_save
andconfig_set
request handlers (GHSL-2023-198) - Reflected XSS through
/<camera_name>
API endpoints (GHSL-2023-195) - Unsafe deserialization in
load_config_with_no_duplicates
offrigate/util/builtin.py
(GHSL-2023-190)
Exploiting these vulnerabilities requires the attacker to both know very specific information about a user's Frigate server and requires an authenticated user to be tricked into clicking a specially crafted link to their Frigate instance.
This vulnerability could exploited by an attacker under the following circumstances:
- Frigate publicly exposed to the internet (even with some authentication methods implemented)
- Attacker knows the public address of a user's Frigate instance
- Attacker crafts a specialized page which links to the user's Frigate instance
- Attacker finds a way to get an authenticated user to visit their specialized page and click the button/link
If you haven't click any links to your Frigate server from unknown sources, there is no reason to believe that you have been compromised.
I have enabled the private vulnerability disclosure features inside Github for the project as well as the automated CodeQL scanning features to identify future issues.
Changes since Beta 7
- Compatibility for Jetpack 5.1.2 Jetson devices
Breaking Changes
- If no detect resolution is defined then frigate will now run detect at the native camera resolution. This means if you did not explicitly set the detect width / height AND your sub stream is not 1280x720, then your masks and zones will be configured incorrectly.
- Default values have been changed for motion detection and
improve_contrast
is now enabled by default. If you have specific values set in your config, it is recommended to remove them and re-calibrate as necessary. - Stationary object validation is now required, anyone who manually set
interval: 0
will need to delete this field from the config or increase the value - Changes have been made to the DB schema, downgrading to 0.12 will require restoring from a backup or deleting the DB and existing recordings / snapshots.
NOTE: Some users have reported migrations taking a while and frigate frontend is not available until the migrations are complete. - New location for
frigate.db
: Due to the support for network shares in HA OS and the popularity of storing recordings on a NAS in general, the database has a new default location of/config/frigate.db
. This change is going to be done for existing users too, so frigate will automatically move the db for you.-
For Frigate Addon Users:
The migration is handled automatically and no action is required from the user. -
For Docker Container Users:
The migration is handled for you, but you must make sure that the docker CLI or docker-compose binds the entire/config
directory and not just the/config/config.yml
file.For example, if your current volume mapping is
- /host/path/config_folder/config.yml:/config/config.yml
it should now be- /host/path/config_folder/:/config/
-
- The previously deprecated
record -> retain_days
config has been removed, this should be migrated torecord -> retain -> days
if you have not already. - HomeAssistant Integration 5.0 beta is required for the new features introduced in this release.
- TensorRT has been updated and the model generation has been refactored. New models will need to be generated for 0.13 and have a new path, check the detector docs for more info.
- TensorRT now requires Nvidia Driver Version 530+
- The cameras in
/stats
have been moved to their owncameras
block. This only affects users that were directly reading from the/stats
data via the API or MQTT.
Frigate+
Frigate+ Model Launch
Frigate+ models are now rolling out by invitation. If you would like to be invited for early access to purchase a subscription, please send an email to blake@frigate.video from the email address on your Frigate+ account. For more information, see this discussion.
False positive submissions
You can now submit false positive detections to Frigate+ for training feedback. Note that you will still need to login to your Frigate+ account and verify the images to ensure all relevant objects are labeled before the image will be used during training. Confirming the object is a true positive will also upload the image.
Models
Frigate+ models are almost ready for launch, and this release has support for automatically downloading from Frigate+. The model and related information are stored at /config/model_cache
. Once Frigate+ models are launched, you will be able to use the model id in your config.
model:
path: plus://e63b7345cc83a84ed79dedfc99c16616
Community Supported Boards
In version 0.12 Frigate gained support for Intel iGPUs via OpenVINO and for Nvidia GPUs, this was a great step forward for compatibility and for more users being able to use Frigate effectively. There are many other devices, including dedicated SBCs (Small Board Computers), that Frigate could support but the maintainers do not have the time or hardware to support.
The community supported boards framework will allow community members who want to contribute to create and manage support for a particular board. This will allow Frigate to support more devices while allowing the maintainers to focus on improving the core of Frigate.
Nvidia Jetson Support
@madsciencetist has contributed a community supported board build by adding support for Jetson 4.6 and Jetson 5 devices!
More information can be found in the detector docs on how to set this up.
@MarcA711 has contributed a community supported board build by adding support for devices with RockChip SoCs:
RK3566/RK3568
RK3588/RK3588S
RV1103/RV1106
RK3562
Object Tracking & Motion Detection
There have been many improvements to object tracking and motion detection which make Frigate more efficient and can reduce false positives.
New Object Tracker
Frigate now uses Norfair for object tracking, this means that object attributes like size, width/height ratio, and position are used to intelligently track objects. ID swapping between tracked objects is greatly reduced in situations where a car in the driveway was confused with a car passing in the street.
Improved Motion Detection
Frigate's motion detection is now more efficient. Motion detection will also re-calibrate for flashes like lightning or when the camera switches from color to IR mode or it is moved via PTZ. This reduces CPU usage during these changes and reduces false positives caused by excessive motion.
Historical Data
Frigate now uses the recordings timeline data to generate an 8x8 grid for each camera. This grid holds the range of expected regions (portions of the image sent to detection) for that area of the camera frame. This helps to improve accuracy of detection after motion has occurred and can reduce false positives in some cases.
The grid is updated on each startup and every day at 2 AM for each camera that is enabled.
Minimum Time For Zone Presence
Frigate now has a configurable field for the minimum amount of time an object needs to be in a zone before it is considered in a zone. For example, currently in Frigate if you have a front_yard zone and someone is walking by and briefly steps into the front yard Frigate would create an event for this. However, you may prefer for events to only be created if a person is in the front yard for multiple frames before creating an event.
zones:
my_zone:
inertia: 3 # <- 3 consecutive frames needed to consider object in zone
coordinates: ...
Recordings Improvements
There have been a number of improvements to the management of recordings
Recordings Exporting
Frigate now supports exporting recordings in standard format or as a time-lapse. Exported recordings are stored in /media/frigate/exports
and are downloadable from the UI.
Recordings Timeline Metadata
Frigate now saves metadata for key moments in an event such as when the tracked object is detected, enters or exits zone, becomes active / stationary, and leaves. This metadata is used to overlay on top of the recordings so it is easy to see what was detected and where. Note that the timing of the bounding boxes will likely be slightly off because it is based on the detect stream, but overlayed on the record stream. The annotation_offset
value in the config can be used to adjust for any differences.
Internal Processing Improvements
There have been many improvements to the recordings management process to make it faster and more efficient:
- Recordings maintainer now lives in a dedicated process
- Recordings maintenance is now fully asynchronous
- Database writes are now much more efficient
- Record config can now have
sync_recordings
enabled which will check all recordings in the db and on the file to make sure they are in sync and recordings sync will be run once a day on the last 36 hours of recordings
Audio Events
Frigate now supports audio events via YamNet. Over 600 labels are included so there are too many to list here, but Frigate can listen to a cameras audio feed to create events and update MQTT when speech, yell, fire alarm, dog bark, etc. are heard. Version 5.0 of the HomeAssistant integration also supports sensors for these audio detections so automations can be fired when certain types of audio are detected.
Manual Events API
Frigate now supports creating events manually via the API. This means that custom events can be created, for example an event when the doorbell is pressed or a sensor is tripped. The API allows full control of event length, if recordings should be saved, and much more. The request and response can be seen in the documentation.
Curl Example:
curl -X POST "http://<frigate_ip>:5000/api/events/front_doorbell_cam/doorbell/create" -H Content-Type:\ application/json
PTZ Control
Frigate now supports PTZ cameras.
Basic PTZ Autotracking
https://deploy-preview-6262--frigate-docs.netlify.app/configuration/autotracking
Along with Frigate's improved tracking algorithm, basic autotracking is now supported. Not all PTZ cameras will support this as relative movement is required (see the docs for more details).
PTZ Controls In The WebUI
Frigate also supports controlling PTZ cameras in the WebUI and via the Home Assistant Integration.
Other Notable Changes:
- MSE is now supported on iPhones running iOS 17.1+
- The events page has been updated to show the ongoing events at the top and past events below. The ongoing events section can be collapsed at any point.
- The ordering of birdseye cameras is now supported
- Birdseye now supports autolayout meaning that a grid system is no longer used. Panoramic and portrait cameras now take up a proportional amount of space to better use the canvas to show these cameras.
- Camera zone & mask editor now supports saving directly without the need to copy / paste
- Deepstack/CodeProjectAI is now supported as a detector.
Images
ghcr.io/blakeblackshear/frigate:0.13.0-rc1
ghcr.io/blakeblackshear/frigate:0.13.0-rc1-standard-arm64
ghcr.io/blakeblackshear/frigate:0.13.0-rc1-tensorrt
ghcr.io/blakeblackshear/frigate:0.13.0-rc1-tensorrt-jp4
ghcr.io/blakeblackshear/frigate:0.13.0-rc1-tensorrt-jp5
ghcr.io/blakeblackshear/frigate:0.13.0-rc1-rk
All changes since 0.12.1
- Remove arm32 by @blakeblackshear in #5935
- Remove deprecated retain_days config by @NickM-27 in #5952
- docker-compose.yml: remove
:ro
forconfig.yml
by @kevin-david in #6086 - update deps by @blakeblackshear in #6093
- Bump docker/build-push-action from 3 to 4 by @dependabot in #5319
- update to 8.3.x by @blakeblackshear in #6100
- Migrate away from deprecated np.float by @mweinelt in #5898
- Auto approve dependabot PRs by @felipecrs in #5147
- update python deps by @blakeblackshear in #6101
- Edit dsize order by @tom2002965 in #6172
- Use browser timezone if not specified in config by @lucasnz in #6205
- Metadata Timeline by @NickM-27 in #6194
- Migrate default database path from
/media/frigate
to/config
by @felipecrs in #5219 - Fix substitution change on yaml config file by @NickM-27 in #6212
- Fix timeline event overlay when recordings mode is not all by @NickM-27 in #6215
- Use correct method for retrieving current unix time by @NickM-27 in #6218
- Bump actions/setup-python from 4.5.0 to 4.6.0 by @dependabot in #6192
- False positives by @blakeblackshear in #6217
- Support Controlling PTZ Cameras Via WebUI by @NickM-27 in #4715
- dependency updates by @blakeblackshear in #6246
- Move recording management to separate process by @NickM-27 in #6248
- Add option to have cameras sorted inside the Birdseye stream by @alinbalutoiu in #5450
- Record annotation offset by @NickM-27 in #6288
- Show other system processes in system page by @NickM-27 in #6276
- Cleanup timeline entries when relevant recording segments are removed by @NickM-27 in #6319
- Refactor events to be more generic by @NickM-27 in #6320
- add plus integration for models by @blakeblackshear in #6328
- Bug fixes by @blakeblackshear in #6332
- Replace subprocess usage with os module for better performance and maintainability by @skrashevich in #6298
- Refactor Process Stats and Bugfixes by @skrashevich in #6344
- Increase maximum event sub_label length to 100 characters by @skrashevich in #6350
- Hide PTZ Controls in Birdseye when no cameras support it by @skrashevich in #6353
- Add icon to explain in more detail the system stats / storage info by @NickM-27 in #6358
- Implement NVML for NVIDIA GPU Stats by @skrashevich in #6359
- Do not show the loader during recordings api call by @petslane in #6366
- Fix site.webmanifest referencing images that don't exist when built by @Steve-Tech in #6304
- Add Deepstack/CodeProject-AI.Server detector plugin by @skrashevich in #6143
- Timeline UI optimizations by @NickM-27 in #6367
- Add Go2RTC Version to System Dashboard by @skrashevich in #6390
- Upgrade deps by @blakeblackshear in #6395
- Bugfix: improve error handling in Deepstack detector by @skrashevich in #6463
- Add cmdline info to System page's cameras-ffmpeg table by @skrashevich in #6430
- Dynamic Image Size Support for DeepStack Detector by @skrashevich in #6429
- Don't fail if camera does not support presets by @NickM-27 in #6497
- add ffmpeg bandwidth stats by @jarzebski in #6492
- Add go2rtc & remote detectors network bandwidth usage to System table by @skrashevich in #6526
- Ability to manually create events through the API by @NickM-27 in #3184
- Fix breakages by manual_event_api branch by @NickM-27 in #6542
- Fix false positives by @NickM-27 in #6544
- fix coral libs by @blakeblackshear in #6558
- Update go2rtc to 1.5.0 by @NickM-27 in #5814
- Add handling for non-existent or empty model file paths by @skrashevich in #6525
- documentation fix: go2rtc 1.5.0 forgotten changes by @skrashevich in #6561
- Fix pydantic by @NickM-27 in #6584
- deepstack: pass api key in request by @mweinelt in #6579
- Add isort and ruff linter by @mweinelt in #6575
- Update docs link by @themactep in #6657
- Improve tracking by @blakeblackshear in #6516
- Remove ffmpeg banner by @NickM-27 in #6600
- Update deps by @blakeblackshear in #6669
- Bump actions/setup-python from 4.6.0 to 4.6.1 by @dependabot in #6609
- fix: don't assume build platform is amd64 by @no2chem in #6709
- Add API and WebUI to export recordings by @NickM-27 in #6550
- Fix bug introduced in new linter by @NickM-27 in #6754
- Bump docker/login-action from 2.1.0 to 2.2.0 by @dependabot in #6740
- DB Optimizations by @NickM-27 in #6712
- Add function to get physical interfaces for bandwidth calculation by @skrashevich in #6618
- Birdseye Autolayout by @NickM-27 in #6734
- Ability to configure min frames for zone presence by @NickM-27 in #6680
- Enhancement: Add Date and Time Inputs to Export Component with Time Validation by @skrashevich in #6750
- Optimization of Sync Records: Implementing Pagination and Temporary Table by @skrashevich in #6585
- Option to enable / disable stats that require external processes by @NickM-27 in #6615
- Improve motion detection and region selection by @blakeblackshear in #6741
- Fix birdseye optimistic approach by @NickM-27 in #6764
- [Feature] Add timepicker to calendar by @sinamics in #5183
- Refactor storage stats calculation to use powers of 2 for more accurate values by @skrashevich in #6765
- Add FAQ about MQTT not connecting by @NicholasFlamy in #6554
- Various Bug Fixes by @NickM-27 in #6768
- Fix bug in intersection logic by @NickM-27 in #6780
- Optimize Birdseye layout for portrait cameras by @NickM-27 in #6779
- Typo fixed in hardware.md by @asztalosdani in #6788
- Bugfix: Refactor date and time initialization in Export.jsx by @skrashevich in #6794
- Fix stream name not being used for MSE by @NickM-27 in #6796
- Bugfix: timestamp value read from .vacuum by @skrashevich in #6800
- Fix max_frames, improve stationary objects in masked areas by @blakeblackshear in #6815
- Rewrite birdseye auto layout by @NickM-27 in #6818
- Optimize stacked recordings by @NickM-27 in #6809
- Add docs for annotation offset by @NickM-27 in #6824
- Don't fail to save segment when cv2 fails by @NickM-27 in #6823
- Label attributes by @blakeblackshear in #6829
- Fix video properties dict getting overwritten by @NickM-27 in #6830
- use clahe for contrast improvement by @blakeblackshear in #6835
- reduce grid size for contrast improvement by @blakeblackshear in #6870
- Performance: multiprocessing improvement by @skrashevich in #6936
- fix tooltip not showing if too far left by @spacebares in #6909
- Load labels dynamically for event filters by @NickM-27 in #6896
- actually keep track of skipped frames by @ccutrer in #6889
- optimize frame-per-second calculations by @ccutrer in #6887
- Remove legacy recordings file cleanup by @NickM-27 in #6947
- configurable ffmpeg timeout by @spacebares in #6897
- Show object attributes when hovering or tapping timeline bounding box by @NickM-27 in #6879
- Apply zone filter before inertia by @NickM-27 in #6854
- use a different method for blur and contrast to reduce CPU by @blakeblackshear in #6940
- Integrate ccache into libusb and nginx build scripts for improved build speed by @skrashevich in #6886
- Fix Bad Resize For Camera Snapshot by @NickM-27 in #6797
- Fix bad check on np.array by @NickM-27 in #6968
- Update docs to reflect HA addon storage feature by @NickM-27 in #6681
- update deps by @blakeblackshear in #6973
- fixed TimeAgo abbreviation by @sinamics in #6977
- Audio events by @NickM-27 in #6848
- Fix small audio events details by @NickM-27 in #6978
- Fix audio events not being ended by @NickM-27 in #6981
- Scale birdseye layout up to max size after it has been calculated by @NickM-27 in #6825
- Add designator when events are from the api by @NickM-27 in #6997
- UI: add audio process stats to System page by @skrashevich in #6993
- UI: display only enabled cameras on System page by @skrashevich in #6992
- Fix: audio events end error handling by @skrashevich in #6984
- Fix min region size not being divisible by 4 by @NickM-27 in #7040
- Use pre capture for custom events by @NickM-27 in #7038
- Force birdseye cameras into standard aspect ratios by @NickM-27 in #7026
- Reduce framerate before downscaling by @madsciencetist in #7022
- Check ffmpeg version instead of checking for presence of BTBN_PATH by @madsciencetist in #7023
- Ptz cleanup by @NickM-27 in #6999
- Performance: multiprocessing improvement: step 2 by @skrashevich in #6986
- Update reolink docs to make go2rtc config more clear by @NickM-27 in #6985
- reduce contention on frame_queue by @ccutrer in #6890
- Fix go2rtc getting env var by @NickM-27 in #7052
- Cleanup and organize utils by @NickM-27 in #7033
- Bugfix: SqliteQueueDatabase instead of SqliteDatabase and retry_interval for fetching latest frame in http.py by @skrashevich in #7059
- Bump NGINX version to 1.25.1, VOD module version to 1.31, secure token module version to 1.5, and RTMP module version to 1.2.2 by @skrashevich in #7058
- Feature: camera debug/config enhancements by @skrashevich in #6920
- Bugfix: race condition by @skrashevich in #7053
- Upgrade TensorRT to 8.5.3 by @NateMeyer in #7006
- Fix incorrect http resopnses by @NickM-27 in #7066
- Fix webUI ptz presets by @NickM-27 in #7065
- UI Improvement: Full-width birdseye (if no PTZ cameras) by @skrashevich in #6817
- Hide birdseye width button on mobile devices by @NickM-27 in #7077
- Fix queues by @NickM-27 in #7087
- Update ha_network_storage.md to make it clear which config file by @wire67 in #7084
- Basic PTZ object autotracking functionality by @hawkeye217 in #6913
- Only run audio detection when audio is above noise threshold by @NickM-27 in #7078
- Autotracking fixes by @hawkeye217 in #7096
- fix edgetpu device type "None" not working by @Links2004 in #7097
- Attribute scores by @blakeblackshear in #7100
- UI Fix: don't show zones icon in Events page if no zones configured by @skrashevich in #7120
- Improve date and time formatting with fallback for unsupported Intl.DateTimeFormat features by @sinamics in #7099
- Autotracking optimizations by @hawkeye217 in #7109
- Autotracking: reset motion estimator by @hawkeye217 in #7129
- go2rtc v1.6.0 by @skrashevich in #7122
- Expose dBFS when doing audio analysis by @jpverdejo in #6979
- WebUI: Show label & sub labels values next to the score by @skrashevich in #7121
- Sub label api score by @NickM-27 in #7113
- Refactor ff queue size by @NickM-27 in #7116
- Fix Birdseye Width & PTZ control panel by @NickM-27 in #7118
- Fix: Add limit to event query by @skrashevich in #7108
- Feature: automatic camera resolution configuration by @skrashevich in #6810
- Fix incorrect import in Config by @NickM-27 in #7157
- Autotracker: minor efficiency tweaks by @hawkeye217 in #7163
- Add check for valid label index for object detection (#7149) by @NateMeyer in #7164
- Save average dBFS and retain segment with dBFS in motion mode by @NickM-27 in #7158
- Publish audio detections by @NickM-27 in #7159
- Fix recording dBFS logic by @NickM-27 in #7165
- Add option for enabling sync recordings by @NickM-27 in #7169
- Show / Download Exported recordings UI by @NickM-27 in #7171
- Remove faster_fifo by @NickM-27 in #7181
- Allow customization of tooltip capitalization by @NickM-27 in #7172
- Add tests for recordings retention and fix bug by @NickM-27 in #7183
- Save audio scores and add audio filter config by @NickM-27 in #7185
- Don't show frigate+ button for audio / custom events by @NickM-27 in #7203
- Set DB timeout based on number of cameras by @NickM-27 in #7219
- Set supported ptz features in init to not fail when camera has an error by @NickM-27 in #7228
- db improvements by @NickM-27 in #7227
- Show status when mask is saved by @NickM-27 in #7212
- scroll camera list in camera/recordings route by @spacebares in #7195
- Update go2rtc to version 1.6.2 by @skrashevich in #7250
- Update TensorRT driver requirement documentation (>=530) by @JeffWDH in #7221
- Update reolink config by @NickM-27 in #7253
- fix: allow env var templating for go2rtc rtsp creds by @tnyeanderson in #6449
- Resolve conflict in reolink docs by @xconverge in #7264
- Community Supported Boards Framework by @NickM-27 in #7114
- Fix build by @NickM-27 in #7266
- Nvidia Jetson ffmpeg + TensorRT support by @madsciencetist in #6458
- Refactor Audio Events To Use stdout Pipe by @NickM-27 in #7291
- Refactor Recordings by @NickM-27 in #7275
- Fix ffmpeg preset typo by @NickM-27 in #7293
- Build CI images in parallel by @madsciencetist in #7296
- Fix CI by @madsciencetist in #7303
- Revert the switch to zstd docker layer compression by @madsciencetist in #7308
- Batch delete recordings for removed cameras as well by @NickM-27 in #7302
- Update OpenVINO 2022.3.1 by @NateMeyer in #7319
- Dockerfile: replacing wget with native ADD by @skrashevich in #7321
- Accept floats for export when used directly with event start / end time by @NickM-27 in #7314
- Fix frame not in cache error by @NickM-27 in #7313
- Reuse CACHE_DIR constant by @mweinelt in #7306
- Organize configuration sidebar by @NickM-27 in #7333
- Add support for stationary and active timeline entires by @NickM-27 in #7344
- Revert numpy upgrade by @madsciencetist in #7341
- Disambiguate 12h export filename timestamp by @madsciencetist in #7340
- Update web deps by @blakeblackshear in #7339
- Improve Storage Logs by @NickM-27 in #7338
- Improve debug logs for audio & ptz by @NickM-27 in #7387
- bugfix: date selection in events calendar by @skrashevich in #7374
- Revert numpy upgrade cont. by @madsciencetist in #7348
- Fix audio filter config by @NickM-27 in #7401
- Fix linter error by @NickM-27 in #7428
- Remove unused code by @jirasak-n in #7430
- Catch case where detected object has a height of 0 by @NickM-27 in #7425
- Fix typo in installation.md by @eltociear in #7463
- Catch websocket exception in output by @NickM-27 in #7525
- Clarify go2rtc requirement for ha integration by @NickM-27 in #7503
- Make clear only network storage is supported for addon by @NickM-27 in #7505
- clarify birdseye restream in docs by @spacebares in #7521
- Remove custom model example from basic coral docs by @NickM-27 in #7639
- AudioDetection: some improvements by @skrashevich in #7588
- Update libusb version to v1.0.26 by @skrashevich in #7585
- Update s6 overlay version to 3.1.5.0 by @skrashevich in #7584
- Update NGINX version to 1.25.2 by @skrashevich in #7583
- Clarify autotracking return_preset docs by @hawkeye217 in #7576
- Don't count in progress events as duplicates by @NickM-27 in #7568
- Show sub label in debug view when available by @NickM-27 in #7567
- WebUI: audio icons in MultiSelect component by @skrashevich in #7564
- Add link to audio classes by @anaisbetts in #7554
- Clarify tmpfs and shm in installation docs by @Redsandro in #7551
- Add default hass location for go2rtc config by @NickM-27 in #7549
- Catch broken pipe when sending to websocket by @NickM-27 in #7556
- Set commands before subscribing to messages by @NickM-27 in #7550
- Don't fail ptz if camera does not support relative zoom by @NickM-27 in #7542
- Add troubleshooting docs for recordings by @NickM-27 in #7381
- Run flask as multi threaded by @NickM-27 in #7648
- Improve error checking and handling for recordings export by @NickM-27 in #7647
- Upgrade deps by @NickM-27 in #7664
- Upgrade more deps by @NickM-27 in #7684
- Suggest object masks for stationary false positives by @flyize in #7685
- Bump actions/setup-python from 4.6.1 to 4.7.0 by @dependabot in #7156
- Bump actions/checkout from 3 to 4 by @dependabot in #7696
- more deps by @blakeblackshear in #7712
- Reduce database queries to necessary fields by @NickM-27 in #7751
- Update python deps by @NickM-27 in #7763
- Fix Python Dependabot by @NickM-27 in #7762
- Fix webUI success / error messages by @NickM-27 in #7820
- Remove quotes from tensorrt env variable example by @NickM-27 in #7823
- Remove maximum inertia constraint by @NickM-27 in #7890
- Add ability to play and delete exports from webUI by @NickM-27 in #7882
- revert min region size by @NickM-27 in #7883
- Remove frame interval for qsv timelapse output args by @NickM-27 in #7873
- Fix birdseye exception handling by @NickM-27 in #7864
- Set export sub process to be lower priority by @NickM-27 in #7862
- Add fire alarm to default audio labels by @NickM-27 in #7854
- Select a specific GPU for converting TRT models by @NateMeyer in #7857
- Add cancel button to delete starred event dialog by @NickM-27 in #7853
- Refactor Exports To Better Handle Recording Configs by @NickM-27 in #7846
- use useEffect for key listeners on camera control panel by @hawkeye217 in #7827
- add note about network bandwidth permissions and don't set interfaces by default by @NickM-27 in #7813
- Add docs for audio volume config by @NickM-27 in #7807
- Add capability to link directly to an event ID in the web UI by @hoverduck in #7803
- Improve default timelapse args and make timelapse customizable by @NickM-27 in #7840
- Update go2rtc to 1.7.1 by @NickM-27 in #7657
- fix typo by @NickM-27 in #7903
- add more robust plus documentation by @blakeblackshear in #7905
- Fix case where camera is disabled but autotrack is enabled by @NickM-27 in #7914
- Increase initial hit count for norfair tracker by @NickM-27 in #7925
- Dep updates by @blakeblackshear in #7933
- Fix recording timeline info text in light mode by @NickM-27 in #7963
- Refactor time filter by @NickM-27 in #7962
- Add seconds to exports by @NickM-27 in #7955
- plus docs update by @blakeblackshear in #7964
- Fix frame height default value in docs by @NickM-27 in #7947
- update docs sidebar for go2rtc 1.7.1 by @hawkeye217 in #7946
- Autotracker: Basic zooming and moves with velocity estimation by @hawkeye217 in #7713
- Add documentation for TP-Link VIGI stream settings. by @mvn23 in #7694
- Update api.md by @tpjanssen in #7971
- Autotracker: add thread lock for move queues by @hawkeye217 in #7973
- Limit max export player height by @NickM-27 in #7974
- Update CAP_PERFMON instructions on hardware_acceleration.md by @OnFreund in #7957
- Pull radeon driver from bookworm by @NickM-27 in #7983
- Autotracking improvements and bugfixes by @hawkeye217 in #7984
- docs for onvif camera support by @hawkeye217 in #7999
- Force birdseye to standard aspect ratio by @NickM-27 in #7994
- Update autotracking gif by @NickM-27 in #8002
- Autotracking: add image of debug view by @hawkeye217 in #8003
- Set default min score for attributes labels to 0.7 by @NickM-27 in #8001
- Security fixes by @blakeblackshear in #8081
- Ensure deleted export file name is safe by @NickM-27 in #8089
- Fix recording snapshot time range by @NickM-27 in #8073
- Add recordings timeline entry for frigate+ attributes by @NickM-27 in #8063
- disable zooming if relative zoom not supported by @hawkeye217 in #8028
- remove erroneous check for move threads by @hawkeye217 in #8031
- Fix a couple bugs by @NickM-27 in #8045
- Zone docs by @NickM-27 in #8047
- update list of onvif capable cams by @hawkeye217 in #8021
- Update ESXi instructions by @theawes0megamer in #8018
- onvif: use preset token if name is unsupported by @hawkeye217 in #8046
- Add docker healthcheck by @felipecrs in #8006
- Added filter option for min/max score for event to API function /events by @tpjanssen in #8079
- Consider new attribute a significant change by @NickM-27 in #8054
- Add debug logs for audio labels by @NickM-27 in #8080
- corrected a typo in the "Configuring Minimum Volume" section. by @MrAnonymous722 in #8012
- Fix export name containing
:
by @NickM-27 in #8090 - Fix trt build by @NickM-27 in #8091
- Onvif presets: use getattr instead of get by @hawkeye217 in #8094
- Change multiselect camera icon by @Daniel-dev22 in #8016
- Show settings cog for camera toggles on mobile by @NickM-27 in #8098
- Add event length filter to events API by @tpjanssen in #8107
- Lower min scores for person and car in plus docs by @NickM-27 in #8114
- Fix jetson docker build with old apt key by @felipecrs in #8112
- Add audio role to camera config docs by @NickM-27 in #8113
- Fix Config success message by @NickM-27 in #8121
- Support TiB in storage calculation by @NickM-27 in #8142
- Add note about recording retention to manual event docs by @NickM-27 in #8141
- clarifications and fixes for live go2rtc example by @NickM-27 in #8132
- Rework initialization delay by @NickM-27 in #8126
- Added audio sensors to camera metrics and API stats by @tpjanssen in #8109
- Add support for nvidia decoder and encoder utilization stats by @NickM-27 in #8150
- Fix bug forcing rtsp for audio detection ffmpeg process by @NickM-27 in #8156
- Don't print ffprobe stdout to logs by @NickM-27 in #8153
- Support ManagedMediaSource and update docs to reflect iOS 17.1+ supports MSE by @NickM-27 in #8160
- Don't zero out motion during calibration by @blakeblackshear in #8163
- Websocket changes by @blakeblackshear in #8178
- Remove sizing on summary icons by @NickM-27 in #8169
- Show ongoing events at top of events page by @NickM-27 in #8168
- dont set has_clip to false unless the event is older by @blakeblackshear in #8179
- Upd: go2rtc v1.8.1 by @skrashevich in #8166
- Delete timeline entries when deleting event via API by @NickM-27 in #8192
- Pin all hwaccel deps by @NickM-27 in #8191
- Fixes for ongoing events by @NickM-27 in #8208
- Include non-free in hwaccel deps types by @NickM-27 in #8203
- Fix recording events intermittently missing by @winstona in #8162
- Add FAQ item for cameras with bad sub streams by @NickM-27 in #8224
- Fix recording segment management by @NickM-27 in #8220
- Smarter Regions by @NickM-27 in #8194
- Fix: count only enabled cameras in RecordingMaintainer by @skrashevich in #8232
- Sync stationary object checks by @NickM-27 in #8238
- Change camera stats to be more structured by @tpjanssen in #8151
- Fix dangling webrtc connections by @NickM-27 in #8251
- Use existing bounding box for region when object is stationary by @NickM-27 in #8248
- Adjust motion calibration to be more dynamic by @NickM-27 in #8250
- fix logic error in onvif preset fetch by @hawkeye217 in #8245
- Use different consolidation requirement depending on label by @NickM-27 in #8249
- address codeql scan results by @blakeblackshear in #8260
- refactor and disable access logs for stats and version by @blakeblackshear in #8259
- fix route for stats and version by @blakeblackshear in #8263
- Update deps by @blakeblackshear in #8261
- more consistent use of iterators in select queries by @blakeblackshear in #8258
- Catch ws reset error by @NickM-27 in #8266
- [CHANGE] More resilient and slightly faster PTZ by @danielvandenberg95 in #8009
- Fix export player sizing by @NickM-27 in #8270
- Autotracking bugfixes and zooming updates by @hawkeye217 in #8103
- Fix long webrtc connections failing by @NickM-27 in #8273
- Fix bug on bad storage stats read by @NickM-27 in #8275
- Revamp object consolidation logic by @NickM-27 in #8289
- Re-enable init delay and use untracked object boxes for regions by @NickM-27 in #8283
- Add
--validate-config
option for CI config validation by @rtrox in #8222 - Use norfair uninitialized score history for tracked object and update false positive docs by @NickM-27 in #8299
- Reduce zones for timeline by @NickM-27 in #8300
- Don't generate region boxes from motion when autotracking by @hawkeye217 in #8306
- Add count of audio labels to active count by @NickM-27 in #8310
- Don't overwrite event while cleaning up expired cameras by @NickM-27 in #8320
- Show event duration in landscape mode by @tpjanssen in #8301
- MQTT: Birdseye enabled/disabled and mode change support by @sberryman in #8291
- Add other known birdseye aspect ratios by @NickM-27 in #8322
- Autotracking tweaks and docs update by @hawkeye217 in #8345
- Fix birdseye scaling by @NickM-27 in #8343
- Ensure delayed segment info does not lead to lost segments by @hawkeye217 in #8318
- Version update: nginx 1.25.3 by @skrashevich in #8361
- plus docs clarification by @blakeblackshear in #8352
- add release workflow for images by @blakeblackshear in #8362
- implement nginx caching by @blakeblackshear in #8333
- Make sure custom events use int for box coordinates by @NickM-27 in #8388
- Delete export if it fails by @NickM-27 in #8381
- Improve logic of birdseye by @NickM-27 in #8375
- Handle recording checks in utc by @NickM-27 in #8379
- Make tracker initialization configurable by @NickM-27 in #8392
- clean passwords when both rtsp and http present by @blakeblackshear in #8399
- Autotracking tweaks by @hawkeye217 in #8400
- Ensure that birdseye error correction uses correct resolution by @NickM-27 in #8398
- API recordings snapsnot PNG fix by @tpjanssen in #8401
- Visit camera directly from system page by @tpjanssen in #8405
- Fix region when no data in grid by @NickM-27 in #8415
- Filtering on Frigate+ submits in frontend by @tpjanssen in #8344
- Add MQTT topic for active autotracking by @hawkeye217 in #8419
- Add endpoint to return camera frame with regions grid overlaid by @NickM-27 in #8413
- Improve robustness of storage maintenance by @NickM-27 in #8411
- fix release workflow by @blakeblackshear in #8408
- add support for docker secrets by @blakeblackshear in #8409
- Clean up RPi ffmpeg presets by @NickM-27 in #8428
- Initial support for rockchip boards by @MarcA711 in #8382
- Fix rk build by @NickM-27 in #8430
- Update deps by @blakeblackshear in #8426
- Suppress frontend websocket error by @hawkeye217 in #8431
- fix rknn.py by @MarcA711 in #8434
- Don't fail on 0 rms in audio stats by @NickM-27 in #8447
- Add motion mask recommendation to autotracking docs by @hawkeye217 in #8448
- Add endpoint to restart Frigate by @coperni in #8440
- Don't fail on invalid class IDs for TensorRT detector by @NickM-27 in #8438
- Periodically sync for stale recordings by @NickM-27 in #8433
- avoid import error for non-rk builds by @blakeblackshear in #8454
- Fix periodic sync check by @NickM-27 in #8472
- Add dependabot to tensorrt python deps by @NickM-27 in #8455
- Write recording segments to cache with timezone info by @NickM-27 in #8468
- Cleanup timeline entries by @NickM-27 in #8489
- Add /vod and /exports to Vite proxy config by @tpjanssen in #8490
- Set the min region size for grid as the model size by @NickM-27 in #8486
- Cleanup existing timeline entries by @NickM-27 in #8495
- Autotracking: only use max target box for relative zoom limiter by @hawkeye217 in #8509
- Reduce recording info timeout by @NickM-27 in #8506
- Fix event only datetime check by @NickM-27 in #8500
- Revert TRT class id filtering by @NickM-27 in #8497
- Fix go2rtc UDP port default config by @NickM-27 in #8469
- Remove iterator from recordings events query by @NickM-27 in #8522
- Performance increase with lots of recordings by @tpjanssen in #8525
- Only cache json requests with nginx by @NickM-27 in #8529
- Ensure storage cleanup doesn't fail by @NickM-27 in #8531
- Make output writing asynchronous by @NickM-27 in #8530
- use skopeo to copy images by @blakeblackshear in #8539
- Tuning Motion guide by @NickM-27 in #6877
- fix restart from webui by @hawkeye217 in #8541
- Fix Detect Resolution Docs by @NickM-27 in #8542
- Show error when clicking on image before creating mask / zone by @NickM-27 in #8547
- Update go2rtc to 1.8.2 by @NickM-27 in #8459
- Fix nginx cache by @NickM-27 in #8558
- fix image tag for release workflow by @blakeblackshear in #8560
- Don't run forever in autotracking by @NickM-27 in #8579
- Fix safari timezone by @NickM-27 in #8574
- Fix vaapi color mapping by @NickM-27 in #8604
- Update Reolink 823A ONVIF Support by @Sch0field9 in #8556
- ONVIF debugging and exception handling fixes by @hawkeye217 in #8583
- Add static FFmpeg with rockchip hardware acceleration to rk- image by @MarcA711 in #8599
- Add vision pipeline diagram to documentation by @cat101 in #7689
- Update go2rtc to 1.8.3 by @NickM-27 in #8627
- Fix reolink link in recommended hardware by @NickM-27 in #8628
- Add backend support for autotracking switch in HA integration by @hawkeye217 in #8630
- Add features to rknn detector by @MarcA711 in #8631
- Add H265 preset for Raspberry Pi by @Tibladar in #8640
- Improve periodic sync reliability and make it optional by @NickM-27 in #8647
- Include libraries and .rknn models for other Rockchip SoCs by @MarcA711 in #8649
- Docs improvements by @blakeblackshear in #8641
- use timeout for autotracking move queues by @hawkeye217 in #8662
- fix rknn crashing after restart by @MarcA711 in #8661
- Set max value for pre_capture by @NickM-27 in #8656
- update web deps by @blakeblackshear in #8663
- make go2rtc always rebuild config at startup by @trademark789 in #8664
- Customize regions grid overlay API by @tpjanssen in #8668
- go2rtc 1.8.4 by @skrashevich in #8691
- fix go2rtc run script by @skrashevich in #8692
- Adding go2rtc presets for Rockchip hardware acceleration by @MarcA711 in #8686
- Add rename exports function to API by @tpjanssen in #8687
- Fix: workaround for drawing non-latin characters by @skrashevich in #7686
- update github links for rknn image by @MarcA711 in #8705
- Don't fail when tz is incorrect by @NickM-27 in #8723
- clarifications to guide based on feedback by @blakeblackshear in #8727
- Fix Broken Links by @justindhillon in #8711
- remove mqtt password from config api by @blakeblackshear in #8757
- Update reverse_proxy.md by @jenniferlee1818 in #8763
- Fix path of device tree on HassOS add on by @MarcA711 in #8764
- Fix dark color scheme for exports by @NickM-27 in #8770
- Limit exposed go2rtc api to bare minimum by @blakeblackshear in #8762
- Don't incorrectly overwrite score history by @NickM-27 in #8795
- Show bbox on in_progress events by @blakeblackshear in #8785
- Create Edgetpu troubleshooting docs by @NickM-27 in #8827
- Re-add support for go2rtc webrtc api by @NickM-27 in #8828
- don't fail on go2rtc stream with no url by @NickM-27 in #8839
- handle onvif connection failure in autotrack init by @hawkeye217 in #8838
- Clarify radeon env variable by @NickM-27 in #8809
- Update output.py with NTSC DVT, Amcrest DV1 aspect ratio 704x480 by @eric-cgn in #8835
- Fix timeline overlay for in progress events by @NickM-27 in #8852
- Go2rtc stream don't fail on empty producers by @NickM-27 in #8854
- Add docs specifically for reolink doorbell by @NickM-27 in #8851
- Update deps by @blakeblackshear in #8872
- Proxy websockets in devcontainers by @hawkeye217 in #8886
- Fix inertia calculation check by @qvr in #8890
- Don't fail if NaN is returned for segment duration by @NickM-27 in #8923
- Fix ffmpeg input arg parsing by @NickM-27 in #8924
- Included caution about Snapcraft docker issues. by @FinnakaLite in #8925
- Make recording docs more clear about 24/7 recording by @NickM-27 in #8931
- Don't fail if deepstack detector times out by @NickM-27 in #8979
- Update Jetson ffmpeg patch for Jetpack 5.1.2 compatibility by @AndBobsYourUncle in #8914
New Contributors
- @tom2002965 made their first contribution in #6172
- @lucasnz made their first contribution in #6205
- @alinbalutoiu made their first contribution in #5450
- @petslane made their first contribution in #6366
- @Steve-Tech made their first contribution in #6304
- @jarzebski made their first contribution in #6492
- @themactep made their first contribution in #6657
- @NicholasFlamy made their first contribution in #6554
- @asztalosdani made their first contribution in #6788
- @ccutrer made their first contribution in #6889
- @madsciencetist made their first contribution in #7022
- @wire67 made their first contribution in #7084
- @Links2004 made their first contribution in #7097
- @jpverdejo made their first contribution in #6979
- @JeffWDH made their first contribution in #7221
- @tnyeanderson made their first contribution in #6449
- @jirasak-n made their first contribution in #7430
- @eltociear made their first contribution in #7463
- @anaisbetts made their first contribution in #7554
- @Redsandro made their first contribution in #7551
- @flyize made their first contribution in #7685
- @hoverduck made their first contribution in #7803
- @mvn23 made their first contribution in #7694
- @tpjanssen made their first contribution in #7971
- @OnFreund made their first contribution in #7957
- @theawes0megamer made their first contribution in #8018
- @MrAnonymous722 made their first contribution in #8012
- @Daniel-dev22 made their first contribution in #8016
- @winstona made their first contribution in #8162
- @danielvandenberg95 made their first contribution in #8009
- @rtrox made their first contribution in #8222
- @sberryman made their first contribution in #8291
- @MarcA711 made their first contribution in #8382
- @coperni made their first contribution in #8440
- @Sch0field9 made their first contribution in #8556
- @cat101 made their first contribution in #7689
- @Tibladar made their first contribution in #8640
- @trademark789 made their first contribution in #8664
- @justindhillon made their first contribution in #8711
- @jenniferlee1818 made their first contribution in #8763
- @eric-cgn made their first contribution in #8835
- @qvr made their first contribution in #8890
- @FinnakaLite made their first contribution in #8925
- @AndBobsYourUncle made their first contribution in #8914
Full Changelog: v0.12.1...v0.13.0-rc1