Commit Graph

84 Commits

Author SHA1 Message Date
Nicolas Mowen
c72d304515
Update go2rtc (#12063) 2024-06-19 08:46:23 -06:00
Blake Blackshear
f1bb797fe0
enable tls by default if undefined (#11994) 2024-06-16 07:55:28 -05:00
Miguel Angel Nubla
e208241eea
Fix X-Proxy-Secret header passthrough (#11984) 2024-06-16 05:53:02 -05:00
Felipe Santos
e3c8901549
Fix cpu count when process name includes the word processor (#11911) 2024-06-12 08:03:27 -06:00
Blake Blackshear
30b86271ea
move clip.mp4 backend to clips folder (#11834)
* move clip.mp4 backend to clips folder

* improve caching

* fix check
2024-06-09 13:45:26 -05:00
Blake Blackshear
4313fd97aa
Adds support for YOLO-NAS in OpenVino (#11645)
* update onnxruntime

* support for yolo-nas in openvino

* cleanup notebook

* update docs

* improve docs

* handle AUTO issue and update docs
2024-06-07 05:52:08 -06:00
Blake Blackshear
4e569ad644
Update deps (#11799)
* web deps

* python deps
2024-06-07 05:50:45 -06:00
Felipe Santos
53fa64fd14
Ensure nginx worker processes respects docker limits (#11769)
* Ensure nginx worker processes respects docker limits

* Update get_cpus.sh revision

* Add get_cpus.sh functionality inline to nginx/run
2024-06-05 13:43:22 -06:00
Marc Altmann
7a4eb0b37c
Add coco-80 labelmap and update FFmpeg for Rockchip (#11695)
* add coco-80 labelmap and update ffmpeg

* Update docs/docs/configuration/object_detectors.md

---------

Co-authored-by: Blake Blackshear <blake.blackshear@gmail.com>
2024-06-02 20:47:26 -05:00
Blake Blackshear
7031c47fb2
fix tempio install for arm64 (#11691) 2024-06-02 08:47:11 -05:00
Blake Blackshear
e431031112
improve tls implementation (#11690)
* improve tls implementation

* update docs
2024-06-02 06:48:28 -06:00
Blake Blackshear
bccffe6670
TLS support (#11678)
* implement self signed cert and monitor/reload

* move go2rtc upstream to separate file

* add directory for ACME challenges

* make certsync more resilient

* add TLS docs

* add jwt secret info to docs
2024-06-01 10:29:46 -05:00
Nicolas Mowen
8179278bfa
Don't fail if user has bind mounted nginx config (#11671) 2024-06-01 06:19:54 -05:00
Nicolas Mowen
142641b387
Adjust nginx proc count based on available CPUs (#11653)
* Restrict nginx to 4 processes if more are available

* Fix bash

* Different sed structure

* Limit ffmpeg thread counts for secondary ffmpeg processes

* Add up / down keyboard shortcut
2024-05-30 12:34:01 -05:00
Nicolas Mowen
7bed854ff7
remove libusb build (#11571) 2024-05-27 16:52:19 -06:00
Blake Blackshear
bfeb7b8a96
upgrade to latest openvino version (#11563) 2024-05-27 14:49:35 -06:00
Nicolas Mowen
4d05bc25f4
Safely load config file for go2rtc (#11491)
* Safely load config file for go2rtc

* Add log for default config

* Cleanup
2024-05-22 18:10:55 -05:00
Nicolas Mowen
c935eb0c79
Update Deps (#11480)
* Update web deps

* Update python deps

* revert matplotlib
2024-05-22 08:41:43 -06:00
Blake Blackshear
1133202cbd
Auth! (#11347)
* reload the window on 401

* backend apis for auth

* add login page

* re-enable web linter

* fix login page routing

* bypass csrf for internal auth endpoint

* disable healthcheck in devcontainer target

* include login page in vite build

* redirect to login page on 401

* implement config for users and settings

* implement JWT actual secret

* add brute force protection on login

* add support for redirecting from auth failures on api calls

* return location for redirect

* default cookie name should pass regex test

* set hash iterations to current OWASP recommendation

* move users to database instead of config

* config option to reset admin password on startup

* user management UI

* check for deleted user on refresh

* validate username and fixes

* remove password constraint

* cleanup

* fix user check on refresh

* web fixes

* implement auth via new external port

* use x-forwarded-for to rate limit login attempts by ip

* implement logout and profile

* fixes

* lint fixes

* add support for user passthru from upstream proxies

* add support for specifying a logout url

* add documentation

* Update docs/docs/configuration/authentication.md

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>

* Update docs/docs/configuration/authentication.md

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-05-18 10:36:13 -06:00
Nicolas Mowen
97f5ba0145
Update go2rtc and implement stream probe to only show 2 way talk when supported (#11407)
* Support two way talk validation

* Fix handling

* Use go2rtc stream info to infer audio output

* Update go2rtc

* Update bundle policy

* Formatting
2024-05-17 07:30:22 -06:00
Marc Altmann
67bff1e79e
update FFmpeg for Rockchip (#11351) 2024-05-13 06:52:11 -06:00
Marc Altmann
50ee447e52
Fix aarch64 build (#11289)
* fix aarch64 build

* change order of packages
2024-05-09 07:22:34 -06:00
Nicolas Mowen
c83c13938c
Update deps (#11044)
* Update web deps

* Update docs deps

* Update python deps
2024-04-19 17:13:01 -05:00
Nicolas Mowen
3788df5bc6
Implement config migration and restructure config for new review format (#10961)
* Update reference config to reflect new config

* Migrate 0.13 config to match 0.14 config style

* Overwrite existing config

* Adjust config schema to remove events required zones and include reviews

* Update object config to check correct required zones config

* Refactor reviews to remove motion and only create review segments in expected circumstances

* Cleanup

* Formatting

* Fix update ordering

* Update pydantic

* Remove rtmp references as part of migration

* Catch file not found for alert frame
2024-04-13 06:08:20 -06:00
Michal Vašíček
4a7a47a931
docker: modify listen directive in nginx.conf to listen on both IPv4&v6 (#10653) 2024-04-11 06:41:29 -05:00
Felix Zenk
5970aead0d
Include leading slash of path in rewrite rule for frigate_api in nginx.conf (#10888)
Noticed the healthcheck curl requests were failing as they were routed to http://127.0.0.1:5001version instead of http://127.0.0.1:5001/version
2024-04-11 06:41:07 -05:00
Nicolas Mowen
8163c036ef
Use zmq for event end queue and update python deps (#10886)
* Use zmq for events ended

* Cleanup

* Update deps

* formatting
2024-04-08 18:19:45 -05:00
Daniel
7e5eb82882
Delete download-models (#10755) 2024-03-30 13:23:32 -06:00
Blake Blackshear
14235c42b9
Remove all AGPL licensed YOLO references from Frigate (#10717)
* Remove yolov8 support from Frigate

* Remove yolov8 from dev

* Remove builds

* Formatting and remove yolov5

* Fix lint

* remove models download

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-03-30 05:46:17 -05:00
dependabot[bot]
7b7d3c56cc
Bump pytz from 2023.3.post1 to 2024.1 in /docker/main (#9592) 2024-03-25 18:08:31 -06:00
Nicolas Mowen
09cf54c731
Improve preview loading (#10406)
* Use skeleton for gif loading

* cache gifs as well

* Show skeleton when switching previews

* Fix touch controls for mobile

* Fix android mobile scrub logic

* Cleanup
2024-03-12 18:19:16 -05:00
Nicolas Mowen
1c5d6765a1
Preview improvements (#10384)
* Write preview frames as webp instead of jpg and ensure webp are cached in nginx

* Support preview player that shows current hour images

* Update to get preview player working

* Use timestamp based recordings check instead of calendar

* Start motion review from current time

* Adjust layout

* Use preview players for previews

* remove vite

* Cleanup

* Fix up the layout
2024-03-11 18:31:05 -05:00
Nicolas Mowen
3c4b1fb6f2
Update flask and restructure into api folder with apis put into separate folders (#10193)
* Update flask

* Update flask and break apart different sections into different files

* formatting

* Fix test and add safety check
2024-03-02 22:10:37 +00:00
Nicolas Mowen
96bf06a7d8
update paho requirement (#10166) 2024-03-01 05:50:57 -07:00
Nicolas Mowen
cb30450060
Migrate pydantic to V2 (#10142)
* Run pydantic migration tool

* Finish removing deprecated functions

* Formatting

* Fix movement weights type

* Fix movement weight test

* Fix config checks

* formatting

* fix typing

* formatting

* Fix

* Fix serialization issues

* Formatting

* fix model namespace warnings

* Update formatting

* Format go2rtc file

* Cleanup migrations

* Fix warnings

* Don't include null values in config json

* Formatting

* Fix test

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-02-29 16:10:13 -07:00
Martin Weinelt
5720b63d70
Import escape function directly from markupsafe (#9858)
Adds a direct dependency on markupsafe, instead of relying on the
implicit dependency via Flask.

This is in preparation of Flask 3.0 support, which will drop compat for
importing escape indirectly.
2024-02-16 06:08:44 -06:00
Nicolas Mowen
dd3dc7949a
Use zmq for inter process communication (#9309)
* Use zmq for inter process communication

* Use localhost for reply and request

* Use pyobj instead of json and Need to use separate requestors for each audio listener

* Cleanup port defining
2024-02-14 18:24:36 -06:00
Blake Blackshear
198dbbdff1 Merge remote-tracking branch 'origin/master' into dev 2024-02-14 18:20:55 -06:00
harakas
cad7cdfb7e
download-models: fix startup failure caused by unset variable (#9781) 2024-02-10 11:54:18 -06:00
harakas
44d8cdbba1
AMD GPU support with the rocm detector and YOLOv8 pretrained model download (#9762)
* ROCm AMD/GPU based build and detector, WIP

* detectors/rocm: separate yolov8 postprocessing into own function; fix box scaling; use cv2.dnn.blobForImage for preprocessing; assert on required model parameters

* AMD/ROCm: add couple of more ultralytics models; comments

* docker/rocm: make imported model files readable by all

* docker/rocm: readme about running on AMD GPUs

* docker/rocm: updated README

* docker/rocm: updated README

* docker/rocm: updated README

* detectors/rocm: separated preprocessing functions into yolo_utils.py

* detector/plugins: added onnx cpu plugin

* docker/rocm: updated container with limite label sets

* example detectors view

* docker/rocm: updated README.md

* docker/rocm: update README.md

* docker/rocm: do not set HSA_OVERRIDE_GFX_VERSION at all for the general version as the empty value broke rocm

* detectors: simplified/optimized yolov8_postprocess

* detector/yolo_utils: indentation, remove unused variable

* detectors/rocm: default option to conserve cpu usage at the expense of latency

* detectors/yolo_utils: use nms to prefilter overlapping boxes if too many detected

* detectors/edgetpu_tfl: add support for yolov8

* util/download_models: script to download yolov8 model files

* docker/main: add download-models overlay into s6 startup

* detectors/rocm: assume models are in /config/model_cache/yolov8/

* docker/rocm: compile onnx files into mxr files at startup

* switch model download into bash script

* detectors/rocm: automatically override HSA_OVERRIDE_GFX_VERSION for couple of known chipsets

* docs: rocm detector first notes

* typos

* describe builds (harakas temporary)

* docker/rocm: also build a version for gfx1100

* docker/rocm: use cp instead of tar

* docker.rocm: remove README as it is now in detector config

* frigate/detectors: renamed yolov8_preprocess->preprocess, pass input tensor element type

* docker/main: use newer openvino (2023.3.0)

* detectors: implement class aggregation

* update yolov8 model

* add openvino/yolov8 support for label aggregation

* docker: remove pointless s6/timeout-up files

* Revert "detectors: implement class aggregation"

This reverts commit dcfe6bbf6f.

* detectors/openvino: remove class aggregation

* detectors: increase yolov8 postprocessing score trershold to 0.5

* docker/rocm: separate rocm distributed files into its own build stage

* Update object_detectors.md

* updated CODEOWNERS file for rocm

* updated build names for documentation

* Revert "docker/main: use newer openvino (2023.3.0)"

This reverts commit dee95de908.

* reverrted openvino detector

* reverted edgetpu detector

* scratched rocm docs from any mention of edgetpu or openvino

* Update docs/docs/configuration/object_detectors.md

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>

* renamed frigate.detectors.yolo_utils.py -> frigate.detectors.util.py

* clarified rocm example performance

* Improved wording and clarified text

* Mentioned rocm detector for AMD GPUs

* applied ruff formating

* applied ruff suggested fixes

* docker/rocm: fix missing argument resulting in larger docker image sizes

* docs/configuration/object_detectors: fix links to yolov8 release files

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-02-10 06:41:46 -06:00
Stephen Advincula
f6a4c2a7b3 bump go2rtc to 1.8.5 (#9487) 2024-02-06 06:52:20 -06:00
Nicolas Mowen
af3f6dadcb Improve graph using pandas (#9234)
* Ensure viewport is always full screen

* Protect against hour with no cards and ensure data is consistent

* Reduce grouped up image refreshes

* Include current hour and fix scrubbing bugginess

* Scroll initially selected timeline in to view

* Expand timelne class type

* Use poster image for preview on video player instead of using separate image view

* Fix available streaming modes

* Incrase timing for grouping timline items

* Fix audio activity listener

* Fix player not switching views correctly

* Use player time to convert to timeline time

* Update sub labels for previous timeline items

* Show mini timeline bar for non selected items

* Rewrite desktop timeline to use separate dynamic video player component

* Extend improvements to mobile as well

* Improve time formatting

* Fix scroll

* Fix no preview case

* Mobile fixes

* Audio toggle fixes

* More fixes for mobile

* Improve scaling of graph motion activity

* Add keyboard shortcut hook and support shortcuts for playback page

* Fix sizing of dialog

* Improve height scaling of dialog

* simplify and fix layout system for timeline

* Fix timeilne items not working

* Implement basic Frigate+ submitting from timeline
2024-01-31 12:56:11 +00:00
Pierre Belanger
15f79d91e3 Remove deprecated RTMP port 1935 (#9137) 2024-01-31 12:56:11 +00:00
Blake Blackshear
bdebb99b5a Use new UI (#8983)
* fixup build

* swap frontends
2024-01-31 12:56:11 +00:00
Nicolas Mowen
d2d1278a4d Remove rtmp (#8941)
* remove rtmp from python

* remove rtmp from nginx

* remove rtmp from docs

* fix test for missing role
2024-01-31 12:56:11 +00:00
Blake Blackshear
34fb1c2ef5
Increase hash map size (#9515)
* bump version

* increase map hash size
2024-01-31 05:53:59 -06:00
Nicolas Mowen
595fa3d111
Re-add support for go2rtc webrtc api (#8828) 2023-12-01 06:47:09 -07:00
Blake Blackshear
a490c375f4
Limit exposed go2rtc api to bare minimum (#8762)
* only permit GET requests to go2rtc

* bare minimum go2rtc passthrough

* support frigate card

* expose go2rtc streams data only
2023-11-27 18:25:47 -06:00
Sergey Krashevich
500d369c50
Fix: workaround for drawing non-latin characters (#7686)
* Add transliteration support to draw_box_with_label function

* isort
2023-11-21 02:05:51 +00:00
Marc Altmann
1eb5105b24
Adding go2rtc presets for Rockchip hardware acceleration (#8686)
* add go2rtc presets for rk hw accel

* code formatting

* add docs about go2rtc presets

* Update comment
2023-11-20 19:10:44 -06:00