NVR with realtime local object detection for IP cameras
Go to file
Nicolas Mowen b4d4adb75b
Limit recording retention to available storage (#3942)
* Add field and migration for segment size

* Store the segment size in db

* Add comment

* Add default

* Fix size parsing

* Include segment size in recordings endpoint

* Start adding storage maintainer

* Add storage maintainer and calculate average sizes

* Update comment

* Store segment and hour avg sizes per camera

* Formatting

* Keep track of total segment and hour averages

* Remove unused files

* Cleanup 2 hours of recordings at a time

* Formatting

* Fix bug

* Round segment size

* Cleanup some comments

* Handle case where segments are not deleted on initial run or is only retained segments

* Improve cleanup log

* Formatting

* Fix typo and improve logging

* Catch case where no recordings exist for camera

* Specifically define sort

* Handle edge case for cameras that only record part time

* Increase definition of part time recorder

* Remove warning about not supported storage based retention

* Add note about storage based retention to recording docs

* Add tests for storage maintenance calculation and cleanup

* Format tests

* Don't run for a camera with no recording segments

* Get size of file from cache

* Rework camera stats to be more efficient

* Remove total and other inefficencies

* Rewrite storage cleanup logic to be much more efficient

* Fix existing tests

* Fix bugs from tests

* Add another test

* Improve logging

* Formatting

* Set back correct loop time

* Update name

* Update comment

* Only include segments that have a nonzero size

* Catch case where camera has 0 nonzero segment durations

* Add test to cover zero bandwidth migration case

* Fix test

* Incorrect boolean logic

* Formatting

* Explicity re-define iterator
2022-10-09 06:28:26 -05:00
.devcontainer include prettier in extensions 2022-04-10 09:11:16 -05:00
.github Merge remote-tracking branch 'origin/master' into release-0.11.0 2022-09-22 18:42:20 -05:00
docker Set vod_ignore_edit_list option (#3710) 2022-08-26 06:33:16 -05:00
docs Limit recording retention to available storage (#3942) 2022-10-09 06:28:26 -05:00
frigate Limit recording retention to available storage (#3942) 2022-10-09 06:28:26 -05:00
migrations Limit recording retention to available storage (#3942) 2022-10-09 06:28:26 -05:00
web Recording: Fix z-index issue with recording playlist (#3762) 2022-09-20 06:05:43 -05:00
.dockerignore swr events refactor 2022-03-11 07:49:06 -06:00
.gitignore feat: Timeline UI (#2830) 2022-02-27 08:04:12 -06:00
.pylintrc use fstr log style 2021-02-25 07:01:59 -06:00
benchmark.py support multiple coral devices (fixes #100) 2020-10-18 13:47:13 -05:00
docker-compose.yml add additional render group 2022-07-19 06:44:11 -05:00
labelmap.txt refactor and reduce false positives 2020-09-17 07:37:27 -05:00
LICENSE switch to MIT license 2020-07-26 12:07:47 -05:00
Makefile increment version 2022-10-08 19:32:45 -05:00
process_clip.py Ability to enable / disable motion detection via MQTT (#3117) 2022-04-26 07:29:28 -05:00
README.md update docs url 2021-09-26 16:43:26 -05:00
requirements-dev.txt Use requirement file for pip installs (#3090) 2022-04-12 07:21:21 -05:00
requirements-wheels.txt switch back to upgraded numpy 2022-07-04 16:51:48 -05:00
requirements.txt Use requirement file for pip installs (#3090) 2022-04-12 07:21:21 -05:00

logo

Frigate - NVR With Realtime Object Detection for IP Cameras

A complete and local NVR designed for Home Assistant with AI object detection. Uses OpenCV and Tensorflow to perform realtime object detection locally for IP cameras.

Use of a Google Coral Accelerator is optional, but highly recommended. The Coral will outperform even the best CPUs and can process 100+ FPS with very little overhead.

  • Tight integration with Home Assistant via a custom component
  • Designed to minimize resource use and maximize performance by only looking for objects when and where it is necessary
  • Leverages multiprocessing heavily with an emphasis on realtime over processing every frame
  • Uses a very low overhead motion detection to determine where to run object detection
  • Object detection with TensorFlow runs in separate processes for maximum FPS
  • Communicates over MQTT for easy integration into other systems
  • Records video with retention settings based on detected objects
  • 24/7 recording
  • Re-streaming via RTMP to reduce the number of connections to your camera

Documentation

View the documentation at https://docs.frigate.video

Donations

If you would like to make a donation to support development, please use Github Sponsors.

Screenshots

Integration into Home Assistant

Also comes with a builtin UI:

Events