NVR with realtime local object detection for IP cameras
Go to file
Rui Alves cffc431bf0
Frigate HTTP API using FastAPI (#13871)
* POC: Added FastAPI with one endpoint (get /logs/service)

* POC: Revert error_log

* POC: Converted preview related endpoints to FastAPI

* POC: Converted two more endpoints to FastAPI

* POC: lint

* Convert all media endpoints to FastAPI. Added /media prefix (/media/camera && media/events && /media/preview)

* Convert all notifications API endpoints to FastAPI

* Convert first review API endpoints to FastAPI

* Convert remaining review API endpoints to FastAPI

* Convert export endpoints to FastAPI

* Fix path parameters

* Convert events endpoints to FastAPI

* Use body for multiple events endpoints

* Use body for multiple events endpoints (create and end event)

* Convert app endpoints to FastAPI

* Convert app endpoints to FastAPI

* Convert auth endpoints to FastAPI

* Removed flask app in favour of FastAPI app. Implemented FastAPI middleware to check CSRF, connect and disconnect from DB. Added middleware x-forwared-for headers

* Added starlette plugin to expose custom headers

* Use slowapi as the limiter

* Use query parameters for the frame latest endpoint

* Use query parameters for the media snapshot.jpg endpoint

* Use query parameters for the media MJPEG feed endpoint

* Revert initial nginx.conf change

* Added missing even_id for /events/search endpoint

* Removed left over comment

* Use FastAPI TestClient

* severity query parameter should be a string

* Use the same pattern for all tests

* Fix endpoint

* Revert media routers to old names. Order routes to make sure the dynamic ones from media.py are only used whenever there's no match on auth/etc

* Reverted paths for media on tsx files

* Deleted file

* Fix test_http to use TestClient

* Formatting

* Bind timeline to DB

* Fix http tests

* Replace filename with pathvalidate

* Fix latest.ext handling and disable uvicorn access logs

* Add cosntraints to api provided values

* Formatting

* Remove unused

* Remove unused

* Get rate limiter working

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-09-24 07:05:30 -06:00
.cspell Work through most of the cspell warnings in python (#13794) 2024-09-17 10:41:46 -05:00
.devcontainer Removed usage of PyYAML for config parsing. (#13883) 2024-09-22 10:56:57 -05:00
.github Rocm yolonas (#13816) 2024-09-18 19:34:07 -05:00
.vscode Fix vscode launch configuration (#13795) 2024-09-17 10:42:10 -05:00
config Improve the devcontainer experience (#3492) 2022-11-20 07:34:12 -06:00
docker Frigate HTTP API using FastAPI (#13871) 2024-09-24 07:05:30 -06:00
docs Frigate HTTP API using FastAPI (#13871) 2024-09-24 07:05:30 -06:00
frigate Frigate HTTP API using FastAPI (#13871) 2024-09-24 07:05:30 -06:00
migrations Implement support for notifications (#12523) 2024-08-29 20:19:50 -06:00
notebooks Adds support for YOLO-NAS in OpenVino (#11645) 2024-06-07 05:52:08 -06:00
web Frigate HTTP API using FastAPI (#13871) 2024-09-24 07:05:30 -06:00
.dockerignore Improve the devcontainer experience (#3492) 2022-11-20 07:34:12 -06:00
.gitignore Removed usage of PyYAML for config parsing. (#13883) 2024-09-22 10:56:57 -05:00
.pylintrc
audio-labelmap.txt Audio events (#6848) 2023-07-01 08:18:33 -05:00
benchmark_motion.py use a different method for blur and contrast to reduce CPU (#6940) 2023-06-30 07:27:31 -05:00
benchmark.py Add isort and ruff linter (#6575) 2023-05-29 05:31:17 -05:00
CODEOWNERS Initial support for Hailo-8L (#12431) 2024-08-29 20:19:50 -06:00
cspell.json Work through most of the cspell warnings in python (#13794) 2024-09-17 10:41:46 -05:00
docker-compose.yml Docs improvements (#8641) 2023-11-18 08:04:43 -06:00
labelmap.txt Cleanup Detector labelmap (#4932) 2023-01-06 07:03:16 -06:00
LICENSE
Makefile Formatting improvements (#13765) 2024-09-17 07:39:44 -05:00
netlify.toml Docs improvements (#8641) 2023-11-18 08:04:43 -06:00
package-lock.json Implement support for notifications (#12523) 2024-08-29 20:19:50 -06:00
process_clip.py Removed usage of PyYAML for config parsing. (#13883) 2024-09-22 10:56:57 -05:00
pyproject.toml Docs improvements (#8641) 2023-11-18 08:04:43 -06:00
README.md update images in readme 2024-06-08 15:37:16 -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 RTSP to reduce the number of connections to your camera
  • WebRTC & MSE support for low-latency live view

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

Live dashboard

Live dashboard

Streamlined review workflow

Streamlined review workflow

Multi-camera scrubbing

Multi-camera scrubbing

Built-in mask and zone editor

Multi-camera scrubbing