Compare commits

..

1389 Commits

Author SHA1 Message Date
Blake Blackshear
4977ed49a5 Update hardware recs 2024-11-29 07:09:25 -06:00
Nicolas Mowen
5cafca1be0 Add docs for go2rtc logging (#15204) 2024-11-26 09:34:40 -06:00
victpork
9c5a04f25f Added code to download weights from new host (#15087) 2024-11-20 05:06:22 -06:00
Charles Crossan
1ffdd32013 Update authentication.md (#14980)
add detail to reset_admin_password setting
2024-11-14 08:13:37 -07:00
Nicolas Mowen
99506845f7 Update edge tpu docs for RPi 5 kernel (#14946) 2024-11-12 15:48:57 -06:00
Blake Blackshear
ffd05f90f3 update hardware recommendations (#14830) 2024-11-06 05:02:42 -07:00
Blake Blackshear
3a8c290f91 update docs for new labels (#14739) 2024-11-03 06:10:38 -06:00
Nicolas Mowen
af844ea9d5 Update coral troubleshooting docs (#14370)
* Update coral docs for latest ubuntu

* capitalization

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-10-15 10:39:31 -05:00
Nicolas Mowen
51509760e3 Update object docs (#14295) 2024-10-12 07:13:00 -05:00
JC
f86957e5e1 Improve docs on exports API endpoints (#14224)
* Add (optional) export name to the create-export API endpoint docs

* Add the exports list endpoint to the docs
2024-10-08 19:15:10 -05:00
Nicolas Mowen
2a15b95f18 Docs updates (#14202)
* Clarify live docs

* Link out to common config examples in getting started guide

* Add tip for go2rtc name configuration

* direct link
2024-10-07 15:28:24 -05:00
Blake Blackshear
039ab1ccd7 add docs for yolonas plus models (#14161)
* add docs for yolonas plus models

* typo
2024-10-05 14:51:05 -05:00
Nicolas Mowen
21c12d118b Correct preview docs (#14136) 2024-10-03 08:40:49 -05:00
Nicolas Mowen
077402406b Make env vars warning more clear (#14128) 2024-10-02 21:52:58 -05:00
Josh Hawkins
6381028fd6 Ensure config file naming is consistent (#14011) 2024-09-27 07:52:42 -05:00
Josh Hawkins
a3d3fe07ce PTZ camera support docs update (#13941)
* Add user reports for ptz cameras/autotracking

* remove message
2024-09-24 12:41:58 -06:00
Josh Hawkins
811da2e159 Clarify live view docs (#13848) 2024-09-20 06:27:15 -06:00
Darryl Sokoloski
c4e2f3bc70 Updated supported cameras: Speco O8P32X (#13698)
Signed-off-by: Darryl Sokoloski <darryl@sokoloski.ca>
2024-09-16 16:17:22 -06:00
Josh Hawkins
bd906a7915 Update docs for another supported autotracking cam (#13753)
* update for Uniview IPC6612SR-X33-VG

* wording
2024-09-15 11:43:11 -06:00
Nicolas Mowen
3df33199bc Add Arc a750 to hardware stats list (#13752) 2024-09-15 11:37:30 -06:00
Josh Hawkins
7ad30f15d5 Add note about onvif cameras without auth (#13721) 2024-09-13 10:43:48 -06:00
mrmorganmurphy
2f38d960d4 Update cameras.md (#13691)
Amcrest IP5M-1190EW does not support autotracking. FOV relative movement not supported.
2024-09-12 07:16:23 -06:00
Nicolas Mowen
2fc58fea81 Add api docs for review api (#13613) 2024-09-07 14:21:38 -05:00
Blake Blackshear
e7dfbf76bb update plus docs for 0.14 (#13604) 2024-09-07 07:28:28 -05:00
OldTyT
94de29187a docs(third_party_extensions.md): added info about frigate telegram (#13584) 2024-09-06 05:42:21 -06:00
Josh Hawkins
a82c1f303b Clarify decoding and the detect role (#13580) 2024-09-05 20:59:47 -05:00
Josh Hawkins
55e1f865d8 Don't allow periods in zone or camera group names (#13400) 2024-08-29 19:58:36 -06:00
Josh Hawkins
3f996cd62c Add portal the live player tooltip (#13389) 2024-08-29 19:58:36 -06:00
Marc Altmann
58a8028485 update go2rtc version in reference config (#13367) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
190ce5ee31 Add tooltip for icons in review event list (#13334) 2024-08-29 19:58:36 -06:00
Blake Blackshear
70aab068fd fix default build (#13321) 2024-08-29 19:58:36 -06:00
Blake Blackshear
617d279419 update actions for release (#13318) 2024-08-29 19:58:36 -06:00
Josh Hawkins
4de088d725 Update discussion templates (#13303)
* Update discussion templates

* camera support go2rtc
2024-08-29 19:58:36 -06:00
Nicolas Mowen
f8fd746678 Fix delayed preview not showing (#13295) 2024-08-29 19:58:36 -06:00
Josh Hawkins
1529ee59fe Fix discussion templates (#13292)
* Fix yaml spacing for discussion templates

* Remove browser question from detectors
2024-08-29 19:58:36 -06:00
Josh Hawkins
19c253b429 Update discussion templates (#13291)
* Revamp support discussion templates

* move text to description

* remove duplicate logs box

* ffprobe on camera support

* longer description on config support
2024-08-29 19:58:36 -06:00
Nicolas Mowen
13bb9dd715 Fix case where user's cgroup says it has 0 cpu cores (#13271) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
9b4602acb3 UI fixes (#13246)
* Fix bad data in stats

* Add support for changes dialog when leaving without saving config editor

* Fix scrolling into view
2024-08-29 19:58:36 -06:00
Nicolas Mowen
e5448110fc Ensure only enabled birdseye cameras are considered active (#13194)
* Ensure only enabled birdseye cameras are considered active

* Cleanup
2024-08-29 19:58:36 -06:00
Nicolas Mowen
4974defe6f Dynamically detect if full screen is supported (#13197) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
65ceadda2b Preview fixes (#13193)
* Handle case where preview was saved late

* fix timing
2024-08-29 19:58:36 -06:00
Josh Hawkins
8b2adb55ed Adjust MSE player playback rate logic (#13164)
* Fix MSE playback rate logic

* don't adjust playback rate if we just started streaming

* memoize onprogress
2024-08-29 19:58:36 -06:00
Nicolas Mowen
58ca44bd15 Fix plus view resetting (#13160) 2024-08-29 19:58:36 -06:00
Josh Hawkins
ef46451b80 Live player fixes (#13143)
* Jump to live when exceeding buffer time threshold in MSE player

* clean up

* Try adjusting playback rate instead of jumping to live

* clean up

* fallback to webrtc if enabled before jsmpeg

* baseline

* clean up

* remove comments

* adaptive playback rate and intelligent switching improvements

* increase logging and reset live mode after camera is no longer active on dashboard only

* jump to live on safari/iOS

* clean up

* clean up

* refactor camera live mode hook

* remove key listener

* resolve conflicts
2024-08-29 19:58:36 -06:00
Josh Hawkins
758b0f9734 Remove dashboard keyboard listener (#13102) 2024-08-29 19:58:36 -06:00
Josh Hawkins
3650000b31 Add shortcut key "r" to mark selected items as reviewed (#13087)
* Add shortcut key "r" to mark selected items as reviewed

* unselect after keypress
2024-08-29 19:58:36 -06:00
Nicolas Mowen
dbd042ca3e Catch case where github sends bad json data (#13077) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
6b9082bdd9 Rename bug report (#13039) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
f9baa3bf20 UI fixes (#13030)
* Fix difficulty overwriting export name

* Fix NaN for score selector
2024-08-29 19:58:36 -06:00
Nicolas Mowen
a75feb7f8f Fix last hour preview (#13027) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
009900b29b Reset recordings when changing the date (#13009) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
dc04cf82d8 Recordings Fixes (#13005)
* If recordings don't exist mark as no recordings

* Fix reloading recordings failing

* Fix mark items not clearing selected

* Cleanup

* Default to last full hour when error occurs

* Remove check

* Cleanup

* Handle empty recordings list case

* Ensure that the start time is within the time range

* Catch other reset cases
2024-08-29 19:58:36 -06:00
Nicolas Mowen
b2c23a367d Hide record switch when disabled (#12997) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
338b59a32e Catch case where recording starts right at end of request (#12956) 2024-08-29 19:58:36 -06:00
Josh Hawkins
07ffd76437 Add pan/pinch/zoom capability on plus snapshots (#12953) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
3eaf9f4011 Catch case where user tries to end definite manual event (#12951)
* Catch case where user tries to end definite manual event

* Formatting
2024-08-29 19:58:36 -06:00
Josh Hawkins
9832831c5e Add confirmation dialog before deleting review items (#12950) 2024-08-29 19:58:36 -06:00
Stavros Kois
d3259c4782 add shortcut and query for fullscreen in live view (#12924)
* add shortcut and query for live view

* Update web/src/views/live/LiveDashboardView.tsx

* Update web/src/views/live/LiveDashboardView.tsx

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

* Apply suggestions from code review

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

* Update LiveDashboardView.tsx

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-08-29 19:58:36 -06:00
Nicolas Mowen
940c12d9d8 Remove user args from http jpeg (#12909) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
8f2cbe261b Web deps (#12908)
* Update web compnent deps

* Update other web deps
2024-08-29 19:58:36 -06:00
Nicolas Mowen
e86788034d Fix use experimental migrator (#12906) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
4ecc0e15ce Add button to mark review item as reviewed in filmstrip (#12878)
* Add button to mark review item as reviewd in filmstrip

* Add tooltip
2024-08-29 19:58:36 -06:00
Soren L. Hansen
b01ce31903 Fix auth when serving Frigate at a subpath (#12815)
Ensure axios.defaults.baseURL is set when accessing login form.

Drop `/api` prefix in login form's `axios.post` call, since `/api` is
part of the baseURL.

Redirect to subpath on succesful authentication.

Prepend subpath to default logout url.

Fixes #12814
2024-08-29 19:58:36 -06:00
Josh Hawkins
87b69c373a Persist live view muted/unmuted for session only (#12727)
* Persist live view muted/unmuted for session only

* consistent naming
2024-08-29 19:58:36 -06:00
Josh Hawkins
07b3160dff Add right click to delete points in desktop mask/zone editor (#12744) 2024-08-29 19:58:36 -06:00
Josh Hawkins
096e2791f5 Ensure review card icon color for event view is visible in light mode (#12812) 2024-08-29 19:58:36 -06:00
Marc Altmann
9d456ccfcf fix default model for rknn detector (#12807) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
ad5c3741e9 Add camera name to audio debug line (#12799)
* Add camera name to audio debug line

* Formatting
2024-08-29 19:58:36 -06:00
Nicolas Mowen
fe188bd646 Handle case where user stops scrubbing but remains hovering (#12794)
* Handle case where user stops scrubbing but remains hovering

* Add type
2024-08-29 19:58:36 -06:00
Josh Hawkins
f47984818f Ensure review cameras are sorted by config ui order if specified (#12789) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
7b274b6974 Use camera status to get state of camera config (#12787)
* Use camera status to get state of camera config

* Fix spelling
2024-08-29 19:58:36 -06:00
Nicolas Mowen
b1806b0a7c Handle case where sub label was null (#12785) 2024-08-29 19:58:36 -06:00
Nicolas Mowen
ff2e46650c Update version 2024-08-29 19:58:36 -06:00
Nicolas Mowen
69fe6cdc05 Fix iOS export buttons (#12755)
* Fix iOS export buttons

* Use layering instead of z index
2024-08-29 19:58:36 -06:00
Josh Hawkins
b7e0d14b83 Only use dense property on phones for motion review timeline (#12768) 2024-08-29 19:58:36 -06:00
Josh Hawkins
7db6ed9ad5 Use radix css var to limit desktop menu height (#12743) 2024-08-29 19:58:36 -06:00
Josh Hawkins
da0f63f095 Fix large tablet recording view layout (#12753) 2024-08-29 19:58:36 -06:00
cvroque
90221e8c94 Remove duplicated text (#13416) 2024-08-29 09:10:47 -06:00
Josh Hawkins
37680c317c Change wording of offline message to account for broker lwt timeout (#13403) 2024-08-28 09:22:57 -05:00
Josh Hawkins
70ea6fc9a1 Update live view docs with camera firmware settings recommendations (#13370)
* Update live view docs with camera firmware settings recommendations

* video/audio

* capitalization

* Video only cams

* clarify higher iframes

* update wording

* fix wording

* Add note on camera specific page

* change note
2024-08-27 07:00:54 -06:00
Nicolas Mowen
67e692a7f3 Add edgetpu docs for synology specific issue (#13335) 2024-08-25 07:56:05 -05:00
ghxstxch
34382ac38e Update cameras.md (#13309) 2024-08-24 06:07:25 -06:00
Nicolas Mowen
b94b08a33c Add comment about global zones behavior (#13269) 2024-08-22 07:47:53 -05:00
Nicolas Mowen
540d66af57 Update reference config to include motion enabled field (#13255) 2024-08-21 20:10:12 -05:00
Josh Hawkins
a2deeb0d12 Update live player docs (#13245)
* Clarify live modes in 0.14

* change column name

* clarify wording
2024-08-21 08:01:15 -05:00
Peter Riemersma
22fe261dd6 Update cameras.md (#13218) 2024-08-20 13:52:35 -06:00
Josh Hawkins
b44354ad29 Update configuring go2rtc docs to reflect 0.14 changes (#13147) 2024-08-17 15:04:12 -06:00
elreydetoda
3ffbdb35a2 updating HACS installation instructions (#13136) 2024-08-17 06:14:45 -06:00
Emil Sandnabba
0504e9ef79 Update reverse proxy documentation (#13075)
* Cleanup the reverse proxy overview

* Adding a Traefik example

* Adding a note about TLS

* Update docs/docs/guides/reverse_proxy.md

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

* Update docs/docs/guides/reverse_proxy.md

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

* Update docs/docs/guides/reverse_proxy.md

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update docs/docs/guides/reverse_proxy.md

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-08-14 15:51:15 -06:00
Nicolas Mowen
b309287087 Add docs for installing Frigate as PWA (#12995)
* Add docs for installing Frigate as PWA

* Add to sidebar
2024-08-12 08:21:02 -05:00
axyzs
e891f2ad6d correct github colab url (#12948) 2024-08-11 07:21:39 -06:00
Josh Hawkins
9b1fb33ac6 Fix camera group icon name in reference config (#12883) 2024-08-09 08:41:12 -06:00
Blake Blackshear
8a099b4ae5 Merge pull request #11419 from blakeblackshear/dev
0.14 Release
2024-08-08 08:43:29 -05:00
Blake Blackshear
80e8930e73 always release from dev builds 2024-08-08 08:25:19 -05:00
Nicolas Mowen
2637541c6c Installation and getting started docs improvements (#12395)
* Add tip banner for quick links

* Add link to getting started guide from installation

* Remove dummy config

* Move tip

* Clarify installation docs

Co-authored-by: Blake Blackshear <blake@frigate.video>

* Update docs/docs/guides/getting_started.md

Co-authored-by: Blake Blackshear <blake@frigate.video>

---------

Co-authored-by: Blake Blackshear <blake@frigate.video>
2024-08-03 08:20:14 -05:00
Jake Angerman
da913d8d31 Add example of single pcie coral (#12446)
* Update object_detectors.md

* Update docs/docs/configuration/object_detectors.md

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-08-03 06:38:40 -06:00
Nicolas Mowen
88d4b694f8 Fix tall videos from covering height in export page (#12725)
* Fix tall videos from covering height in export page

* Handle mobile landscape
2024-08-02 07:06:15 -06:00
Nicolas Mowen
b28cc45510 Update docs (#12714) 2024-08-01 17:27:15 -06:00
Nicolas Mowen
c0b23ca938 Remove mention of older yolox model (#12711) 2024-08-01 14:33:06 -06:00
Josh Hawkins
8e7b83d2f1 Display messages when no events exist (#12694)
* Display message in desktop events list when no events exist

* Add message for when no events are found on plus view

* validating check

* activity indicator check

* clarify error message
2024-07-31 14:08:07 -06:00
Nicolas Mowen
599dd7eecb Build libusb for coral compatibility (#12681) 2024-07-30 16:32:32 -06:00
Nicolas Mowen
84348350fe apply iOS fix to safari (#12663) 2024-07-29 11:34:45 -05:00
Nicolas Mowen
7d03d99852 Show skeleton when live filmstrip items are loading (#12660) 2024-07-29 07:52:22 -05:00
Nicolas Mowen
7c39b176ac Limit preview threads (#12633) 2024-07-26 09:16:45 -05:00
Nicolas Mowen
4c2e6f75a2 Fix frigate failing when no config is defined (#12611) 2024-07-25 12:03:52 -05:00
Josh Hawkins
81139e8f47 Add filmstrip video/image toggle to general settings (#12608) 2024-07-25 08:34:39 -05:00
Nicolas Mowen
cea0596cf5 Docs updates (#12607) 2024-07-25 07:14:22 -06:00
Josh Hawkins
51a1526146 loitering_time can be zero (#12599) 2024-07-24 14:25:01 -05:00
Nicolas Mowen
b4db07d7a5 Fix perview serialization (#12597) 2024-07-24 12:29:51 -05:00
Nicolas Mowen
5c15659a34 Ensure that persisted state is kept in sync (#12596) 2024-07-24 11:17:32 -06:00
Nicolas Mowen
1bd3285679 Use pickle for config objects (#12594) 2024-07-24 10:37:29 -05:00
Josh Hawkins
6de426c697 Prevent pandas overflow and runtime errors from division by zero/NaN (#12591)
* Prevent pandas overflow and runtime errors from division by zero/NaN

* remove pysqlite3
2024-07-24 08:58:42 -06:00
Nicolas Mowen
d28ad0f0c8 Use JSON instead of pickle for serialization (#12590) 2024-07-24 08:58:23 -06:00
Nicolas Mowen
47aecff567 UI Tweaks (#12571) 2024-07-23 09:34:38 -05:00
Nicolas Mowen
524f03a650 Persist show reviewed locally so it maintains state (#12560)
* Persist show reviewed locally so it maintains state

* fix

* Theming fixes
2024-07-22 17:55:39 -05:00
Nicolas Mowen
68e6ffdfef UI fixes (#12542)
* Don't require previews to show motion ui

* Fix recording text to match hls player logic
2024-07-21 14:14:59 -05:00
Nicolas Mowen
29345c429a Fix plus sorting button (#12513) 2024-07-19 09:08:50 -05:00
jameson_uk
2cdd483126 Update automation (#12487)
`data_template` has been deprecated for sometime in HA an no longer works.  This should just be `data`
2024-07-18 16:30:24 -06:00
Nicolas Mowen
f2c46408c4 Add more icons to event icon types (#12507) 2024-07-18 16:11:05 -05:00
Josh Hawkins
e5dc476c1e Disable web assembly for jsmpeg player (#12502) 2024-07-18 10:50:30 -05:00
Josh Hawkins
eb2363b93d Reset preferred live modes to defaults on window visibility change (#12499) 2024-07-18 07:22:31 -06:00
Josh Hawkins
7bfebd5b61 Use canvas2d renderer for jsmpeg player (#12498) 2024-07-18 06:59:12 -06:00
Josh Hawkins
6addf4d88b User-selectable weekday start (Sunday/Monday) for review calendar (#12491) 2024-07-17 11:38:12 -05:00
Nicolas Mowen
c56e7e7c6c UI fixes (#12490)
* Improve export handling when errors occur

* Fix mobile zooming

* Handle recordings buffering

* Cleanup

* Url encode export name

* Start with actual name in input

* Fix buffering
2024-07-17 07:39:37 -06:00
Josh Hawkins
78c15f3020 Prevent onPlaying from being called repeatedly in jsmpeg player (#12482) 2024-07-16 13:40:11 -06:00
Nicolas Mowen
30f0f73a4e Add camera name to recordings log (#12480)
* Add camera name to recordings log

* Formatting
2024-07-16 11:56:09 -05:00
Nicolas Mowen
e9da453190 Don't allow backwards recordings (#12477) 2024-07-16 10:04:33 -05:00
Nicolas Mowen
91f62cf8ce Fix ui config migration (#12476) 2024-07-16 08:45:11 -05:00
Josh Hawkins
58dbbd5d29 Use refs for proper js closures in the liveReady timeout (#12464) 2024-07-16 05:50:58 -06:00
Josh Hawkins
5c90f7dce7 Check if camera is active before disabling liveReady (#12461) 2024-07-15 15:52:34 -06:00
Nicolas Mowen
b7cf5f4105 Fix handling of default group (#12459) 2024-07-15 11:18:01 -05:00
Josh Hawkins
c850604931 Fix flashing of previous still image when live player stops (#12458) 2024-07-15 09:38:59 -06:00
Nicolas Mowen
82d2910039 Fix camera filtering logic (#12457)
* Fix camera filtering logic

* Cleanup

* Simplify and consider birdseye only group in logic

* Don't add filter when group is birdseye only
2024-07-15 09:34:41 -06:00
Nicolas Mowen
5066fa369d Filter alerts by camera group (#12456) 2024-07-15 07:35:41 -05:00
Josh Hawkins
3afd77cbe0 No need to check for h264 onvif profile (#12444) 2024-07-14 13:29:49 -05:00
Josh Hawkins
093201a1cc Update docs for clarity on review items (#12441) 2024-07-14 11:12:26 -06:00
Blake Blackshear
6102e9e5ea Merge remote-tracking branch 'origin/master' into dev 2024-07-13 14:52:42 -05:00
Blake Blackshear
91215a1406 update link to info on plus (#12434) 2024-07-13 14:49:54 -05:00
Nicolas Mowen
a4eb435f1a Improve safari image scrolling performance (#12429)
* Don't set z-height on iOS

* More z-index cleanup
2024-07-13 11:54:24 -05:00
Nicolas Mowen
843d301950 Don't detach media (#12421) 2024-07-12 15:29:42 -06:00
Nicolas Mowen
d08fe170f2 Recordings improvements (#12417) 2024-07-12 15:17:38 -06:00
Josh Hawkins
51153af944 Attempt to support zoom-only onvif cams (#12415)
* Attempt to support zoom-only onvif cams

* don't skip ptz configuration
2024-07-12 11:01:52 -06:00
Josh Hawkins
e7ec014502 Ensure detections are cleared when limit box is unchecked (#12412) 2024-07-12 09:07:01 -06:00
Josh Hawkins
2ebd2dfcc7 Display activity indicators when debug and mask/zone images load (#12411) 2024-07-12 09:02:43 -05:00
Josh Hawkins
aaafd63b94 Move review classification settings to camera settings view (#12410)
* Camera settings view for alerts/detections

* flxes, beautifying, zone renaming, clean up

* replace underscores with spaces in zone names

* replace underscores with spaces in labels
2024-07-12 07:42:53 -06:00
Nicolas Mowen
a361372182 Update review docs (#12401) 2024-07-12 07:36:28 -06:00
Josh Thorpe
8f51f7b4c4 strip whitespaces when loading secrets (#12393)
* strip whitespaces when loading secrets

* formatting
2024-07-12 07:36:15 -06:00
Nicolas Mowen
e416e44998 Simplify ws updating (#12390)
* Simplify ws updating

* Simplify return values
2024-07-11 09:25:33 -06:00
Josh Hawkins
fe4a737421 Fix debug camera image not updating when loading (#12394) 2024-07-11 09:10:37 -06:00
Josh Hawkins
4ee8557061 Fix linter warnings on color order (#12389) 2024-07-11 08:22:02 -05:00
Nicolas Mowen
88e1d56799 Update Web deps (#12388)
* Update radix ui

* Update vite

* More ui deps

* Update typscript

* Update react router
2024-07-11 08:09:35 -05:00
Nicolas Mowen
40be915061 Fix review update causing api spam (#12387) 2024-07-11 08:09:11 -05:00
Josh Hawkins
0d7ee7a87a Clickable logo on desktop sidebar and useMatch for camera group visibility (#12379) 2024-07-10 09:28:05 -06:00
Nicolas Mowen
baf209f257 Docs tweaks (#12375)
* Add explanation of bounding box colors

* Add FAQ about offline camera
2024-07-10 06:34:03 -06:00
Josh Hawkins
c2824d153e Theme updates (#12373)
* remove hideous and ugly themes

* incorporate dei into ui design

* neutral as a theme color

* high contrast theme adjustments

* color tweaks
2024-07-10 07:04:02 -05:00
Josh Hawkins
d2f88491b1 Various UI tweaks and changes (#12364) 2024-07-09 13:36:55 -06:00
stephendb
aacb8c84e0 Bug fix for ONVIF cameras, adjust_time parameter added (#12352)
* adds adjust_time which allows users to fix an issue with onvif authentication where time is not syncrhonized

* updated adjust_time to ignore_time_mismatch to make it clearer what this option does

* adds ignore_time_mismatch to the reference.md and adds a line about the security risk this can introduce as well as the recommendation to setup NTP for both ends.

* fix format error

* happy now linter?

* white space

* Update docs/docs/configuration/reference.md

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

---------

Co-authored-by: Stephen Butler <stephen.butler@ni.com>
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-07-09 13:00:47 -06:00
Nicolas Mowen
f44df9fe61 Revert "Limited shm frame count (#12346)" (#12362)
This reverts commit 34812b7439.
2024-07-09 11:49:08 -05:00
Nicolas Mowen
34812b7439 Limited shm frame count (#12346)
* Only keep 2x detect fps frames in SHM

* Don't delete previous shm frames in output

* Catch case where images do not exist

* Ensure files are closed

* Clear out all frames when shutting down

* Correct the number of frames saved

* Simplify empty shm error handling

* Improve frame safety
2024-07-09 06:44:53 -06:00
Josh Hawkins
0ce596ec8f UI tweaks (#12297)
* Use full resolution aspect for main camera style in history view

* Only check for offline cameras after 60s of uptime

* only call onPlaying when loadeddata is fired or after timeout

* revert to inline funcs

* Portal frigate plus alert dialog

* remove duplicated logic

* increase onplaying timeout

* Use a ref instead of a state and clear timeout in AutoUpdatingCameraImage

* default to the selected month for selectedDay

* Use buffered time instead of timeout

* Use default cursor when not editing polygons
2024-07-08 07:14:10 -06:00
ubawurinna
2ea1d34f4f OpenVino - Error clarification for compile_model function (#12304)
* Error clarification for openvino's compile_model function

* run ruff format

---------

Co-authored-by: ubawurinna <you@example.com>
2024-07-08 08:13:33 -05:00
Josh Hawkins
a0741aa7b1 Remove matplotlib and generate color palette to mimic matplotlib's colors (#12327) 2024-07-07 12:53:00 -06:00
Josh Hawkins
188a7de467 Update export docs (#12288)
* Update exporting docs

* add timelapse clarification
2024-07-04 05:32:07 -06:00
Josh Hawkins
1f4ca32e8c Add exports message and default to webrtc on < iOS 17.1 (#12281) 2024-07-03 08:44:25 -05:00
Josh Hawkins
784b701cc5 Apply landscape margin to ptz controls on mobile only (#12272) 2024-07-02 18:14:38 -05:00
Josh Hawkins
be9e606ae4 Ensure MSE onPlaying always gets called, even if loadeddata never fires (#12271)
* Ensure MSE onPlaying always gets called, even if loadeddata never fires

* Call handleLoadedMetadata too if not playing yet
2024-07-02 16:48:38 -06:00
Steven Conaway
fe9a3c9205 docs(go2rtc): troubleshooting improvements (#12192) 2024-07-02 07:52:32 -06:00
Nicolas Mowen
012aa63571 Enforce minimum value for mqtt stats update (#12253) 2024-07-01 17:08:14 -05:00
Nicolas Mowen
ef7846bb41 Update ffmpeg source (#12251)
* Revert "Use latest 5.1 ffmpeg update (#12243)"

This reverts commit 93e08688be.

* Revert "Change qsv device arg to standard hwaccel arg (#12249)"

This reverts commit 56b4a551dc.

* Use different repo for build
2024-07-01 15:46:40 -06:00
Josh Hawkins
6948702891 Add fullscreen button to the default live grid on desktops (#12250) 2024-07-01 13:00:53 -06:00
Nicolas Mowen
56b4a551dc Change qsv device arg to standard hwaccel arg (#12249) 2024-07-01 12:57:04 -06:00
Nicolas Mowen
93e08688be Use latest 5.1 ffmpeg update (#12243)
* Use latesat 5.1 ffmpeg update

* Fix arm build
2024-07-01 11:08:36 -05:00
Josh Hawkins
0ed7e278eb Re-center ptz controls in mobile landscape and prevent text selection (#12242) 2024-07-01 09:53:36 -06:00
Josh Hawkins
b30fecbd28 Use cache key for mask/zone editor image (#12232) 2024-07-01 09:02:56 -06:00
Josh Hawkins
f050c7b37d Use camera name instead of stream_name for jsmpeg players (#12219) 2024-06-30 11:06:03 -06:00
Josh Hawkins
f9e1ad253f Check websocket readyState for disconnect and fix firefox pip (#12216) 2024-06-30 06:04:45 -06:00
Josh Hawkins
f0159bf41e Fix jsmpeg player flickering (#12213) 2024-06-29 17:45:28 -06:00
Nicolas Mowen
21a777ab45 Fix nginx 5000 template (#12210) 2024-06-29 18:36:24 -05:00
Nicolas Mowen
18b8e19847 Fix audio model download again (#12207)
* Fix audio model download again

* Update Dockerfile
2024-06-29 12:55:55 -06:00
Josh Hawkins
53a2a865f1 Live player fixes and improvements (#12202)
* Live player fixes and improvements

* remove comment

* Simplify wording
2024-06-29 09:02:30 -06:00
Nicolas Mowen
48a87b16b8 Fix yamnet model download (#12200) 2024-06-29 09:35:34 -05:00
Nicolas Mowen
46c3ef8c6b Nginx config tweaks (#12174)
* Change auth port and remove ipv6

* Add docs for nginx bind mount

* Consolidate listen statements

* Update port in docs

* Fix typing
2024-06-29 07:18:40 -06:00
Steven Conaway
94b1350c9d config reference: add note about birdseye>layout>scaling_factor (#12190) 2024-06-28 15:34:15 -06:00
Nicolas Mowen
bfbacee7b5 Quick fix (#12153)
* Use list for zones to keep chronological order

* Replace when changing playbackRate
2024-06-25 07:38:37 -05:00
On Freund
c3455518c2 Update TLS docs with certbot instructions (#12141)
* Update tls.md

Update TLS docs with certbot instructions

* Apply suggestions from code review

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-06-24 18:06:23 -05:00
Nicolas Mowen
00e235867a Downgrade go2rtc (#12139) 2024-06-24 08:26:32 -05:00
Nicolas Mowen
88046ebd15 Fix review items (#12126) 2024-06-23 18:52:02 -05:00
Nicolas Mowen
abc1ecfb60 Show correct previous state when updating for end (#12122)
* Show correct previous state when updating for end

* remove log

* Formatting
2024-06-23 08:45:10 -05:00
Nicolas Mowen
9bbb88cdcb Fix left swipe on preview (#12104)
* Fix left swipe

* Simplify
2024-06-21 16:06:40 -05:00
Nicolas Mowen
c867d90f50 Add reviews topic to MQTT docs (#12097) 2024-06-21 11:43:52 -05:00
Nitin Gupta
1129a2aba4 Added FAQ entry for viewing logs (#12088) 2024-06-21 10:20:45 -06:00
Nicolas Mowen
3410290b45 Fix preview failing on cameras with - in name (#12093) 2024-06-21 07:33:20 -06:00
Nicolas Mowen
b34be991bd Simplify zone objects example (#12086) 2024-06-20 21:06:42 -05:00
Nicolas Mowen
73755e9777 Auto focus user field for login (#12083) 2024-06-20 11:37:54 -05:00
Nicolas Mowen
c871bebee6 Fix export timing (#12080) 2024-06-20 07:25:02 -06:00
Josh Hawkins
a60ffe06ac Prevent ptz keyboard shortcuts from reopening presets menu (#12079) 2024-06-20 07:24:50 -06:00
Josh Hawkins
9f81ce2876 Only close MSE websocket when it's already open (#12078) 2024-06-20 06:03:14 -06:00
Josh Hawkins
5c33cdba4e Timeline performance improvements (#12070)
* Use intersection observer for timeline segments

* only render when visible
2024-06-19 18:14:32 -05:00
Nicolas Mowen
e9cdef9f25 fix case where camera is disabled and has no previews (#12066)
* fix case where camera is disabled and has no previews

* Maintain slow loading behavior
2024-06-19 12:51:19 -06:00
Nicolas Mowen
d01457e64d Fix showing loading indicator when first loading a camera without previews (#12064) 2024-06-19 08:52:45 -06:00
Nicolas Mowen
c72d304515 Update go2rtc (#12063) 2024-06-19 08:46:23 -06:00
Sam Wright
10c1f7ead4 Update web readme (#12062)
* Update web readme

* Update /web readme

* Apply suggestions from code review

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

---------

Co-authored-by: Sam Wright <sam@sams-mbp.lan>
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-06-19 08:11:51 -06:00
Josh Hawkins
7b57a66d45 Various UI tweaks (#12061) 2024-06-19 06:09:49 -06:00
Nicolas Mowen
767033e4d8 Treat meta key same as ctrl (#12051) 2024-06-18 20:26:00 -05:00
Nicolas Mowen
e6790d9a6a Add ability to select all on desktop (#12044)
* Add ability to select all review items

* Refactor keybaord listener
2024-06-18 09:32:17 -05:00
Marc Altmann
4bca405e29 fix key error for custom models (#12042) 2024-06-18 07:40:54 -06:00
Nicolas Mowen
bdda89b5e2 Fix case where S6 timestamp is missing (#12040) 2024-06-18 08:07:28 -05:00
Josh Hawkins
2cbc336bc0 Memoize onPlaying and only instantiate one jsmpeg player (#12033) 2024-06-17 17:10:41 -06:00
Josh Hawkins
6c107883b5 Small jsmpeg and mse player fixes (#12032) 2024-06-17 14:54:14 -06:00
Nicolas Mowen
4635e64b2e Use api path to determine type (#12031)
* Use api path to determine type

* Use in both cases

* Fix extension parsing
2024-06-17 14:53:35 -06:00
Nicolas Mowen
5b60785cca Increase resolution for mobile viewing (#12025) 2024-06-17 12:35:36 -05:00
Nicolas Mowen
ef304e6f7f Set image height to make bandwidth usage lower (#12024) 2024-06-17 08:21:51 -06:00
Nicolas Mowen
24770148a7 Don't fail when preview restore fails (#12022)
* Don't fail when preview restore fails

* Cleanup
2024-06-17 08:56:24 -05:00
Nicolas Mowen
ba6fc0fdb3 UI Tweaks (#12002)
* Adjust review padding

* Fix mse check

* Don't fail when cpu property is missing

* ignore lines without any spaces
2024-06-17 06:19:16 -06:00
Josh Hawkins
89a478ce0a Use modal on dropdowns for mobile only (#11993) 2024-06-16 13:58:28 -05: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
Miguel Angel Nubla
02af1b0ac7 Fix header auth (#11985) 2024-06-16 05:52:17 -05:00
Nicolas Mowen
3c12872a56 Update template to include all detector types (#11981)
* Change from coral to general detector dropdown

* Update camera-support.yml

* Update config-support.yml

* Update general-support.yml
2024-06-15 15:26:09 -05:00
Josh Hawkins
4e5a6eb1c8 Consolidate onvif camera recommendations in docs (#11972) 2024-06-15 08:02:18 -05:00
Josh Hawkins
5617fbbcb1 Optional proxy in config (#11973) 2024-06-15 08:01:19 -05:00
Blake Blackshear
15e2df1e5c set shortest edge to preview height (#11971) 2024-06-15 06:42:23 -05:00
Alex Yao
0d862d6aa8 Show failure exception message (#11964) 2024-06-14 20:34:14 -05:00
Blake Blackshear
9ceffeb191 split out proxy from auth (#11963)
* split out proxy from auth

* update documentation

* fixup auth mode check
2024-06-14 18:02:13 -05:00
Nicolas Mowen
b49cda274d Fix calendar selection (#11959) 2024-06-14 12:14:32 -05:00
Marc Altmann
2934c7817d Update FFmpeg for Rockchip (#11952) 2024-06-14 07:25:33 -05:00
Blake Blackshear
4078a147ef Merge remote-tracking branch 'origin/master' into dev 2024-06-14 06:45:21 -05:00
Blake Blackshear
1cb5dcb7dc clarify vaapi vs qsv (#11954) 2024-06-14 06:44:22 -05:00
Blake Blackshear
7aec8222fc clarify model id (#11953) 2024-06-14 06:42:53 -05:00
Blake Blackshear
30e1969fad clarify plus models (#11951) 2024-06-14 05:15:19 -06:00
Nicolas Mowen
a7da468b97 Manually set current time when selecting event (#11948)
* Manually set current time when selecting event

* Make it clear which camera has no preview

* Make it clear which camera has no preview

* Format camera name
2024-06-13 19:00:41 -05:00
Blake Blackshear
1a0d9e10d7 clarifications for proxy auth mode (#11947) 2024-06-13 16:13:55 -06:00
Nicolas Mowen
9514a3d089 UI tweaks (#11940)
* Enforce events must have snapshots for frigate+

* Open docs links in separate tabs

* Reload after restart to the baseUrl
2024-06-13 16:11:25 -06:00
Josh Hawkins
349b27b764 Draggable grid fixes (#11944)
* Use globals on grid for resizing/dragging flags

* remove unneeded useeffect
2024-06-13 13:11:48 -06:00
Nicolas Mowen
e56ce993df UI Tweaks (#11931)
* Show number of items instead of dot

* Don't call error when connection has been closed on purpose

* Use motion icon for motion

* Show text on tablets as well
2024-06-13 09:45:07 -05:00
Nicolas Mowen
3e1861e2ce Correctly update segment data (#11922) 2024-06-12 15:48:54 -06:00
Josh Hawkins
187d98a153 Ensure uri components are decoded (#11920) 2024-06-12 16:03:00 -05:00
Josh Hawkins
2d4d1584fd Activity indicator for alerts/detections count when loading (#11914)
* Activity indicator for alerts/detections count when loading

* Return zeros if summary is unavailable
2024-06-12 12:30:22 -06:00
Josh Hawkins
c75fc40833 Activity indicator whenever preferred live mode changes (#11913) 2024-06-12 11:36:11 -06:00
Felipe Santos
e3c8901549 Fix cpu count when process name includes the word processor (#11911) 2024-06-12 08:03:27 -06:00
Nicolas Mowen
6978140492 Copy review data so there is a diff (#11896) 2024-06-11 18:05:20 -05:00
Josh Hawkins
272a21ffab Add scrollbar class to preview row/column (#11890) 2024-06-11 13:45:45 -05:00
Josh Hawkins
a8e901b63c UI fixes (#11883)
* Keep as optional prop

* put zones inside of scrollable container
2024-06-11 09:05:50 -06:00
Josh Hawkins
bb359f67a4 Review UI improvements (#11882) 2024-06-11 09:46:05 -05:00
Nicolas Mowen
c9d253a320 Review improvements (#11879)
* Update segment even when number of active objects is the same

* add score to frigate+ chip

* Add support for selecting zones

* Add api support for filtering on zones

* Adjust UI

* Update filtering logic

* Clean up
2024-06-11 08:19:17 -06:00
Blake Blackshear
b3eab17f2c just check for secret file specifically (#11877)
* just check for secret file specifically

* add josh to funding
2024-06-11 06:53:12 -06:00
Nicolas Mowen
962d213699 UI changes (#11863)
* Delay live ready being dropped

* Handle case of removed camera
2024-06-10 20:20:58 -05:00
Josh Hawkins
18d561da0e Live player fixes and improvements (#11855)
* Only set stalled error when player is visible

* Show activity indicator before live player starts playing

* remove comment

* keep gradients when still image is showing

* fix chips

* red dot and outline
2024-06-10 17:24:25 -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
Josh Hawkins
5f3c35209d Prevent editing of object mask type on existing mask (#11829) 2024-06-09 06:28:38 -06:00
Julien Ehrhart
2535519830 Update HA integration doc with image entities following #548 (#11261) 2024-06-09 06:44:27 -05:00
Blake Blackshear
f4dd3e44b6 update images in readme 2024-06-08 15:37:16 -05:00
Nicolas Mowen
11babb9509 Remove mention of recordings timeline object debugging (#11820) 2024-06-08 09:00:24 -06:00
Josh Hawkins
e1bedf30bf Make sure camera is always set in settings (#11812) 2024-06-07 13:34:29 -06:00
Josh Hawkins
859682c8d1 Change breakpoint for desktop motion review columns (#11808) 2024-06-07 09:40:32 -06:00
Josh Hawkins
804edceec2 Retain 3 columns on desktop motion review (#11805) 2024-06-07 06:51:09 -06:00
Josh Hawkins
9f181014a1 UI tweaks (#11795)
* Prevent "undefined" from being displayed in searchParams string

* Show message for no motion data

* Use theme colors for no preview found divs
2024-06-07 05:57:15 -06: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
Blake Blackshear
b4384a1be3 Shutdown hang (#11793)
* intentionally handle queues during shutdown and carefully manage shutdown order

* more carefully manage shutdown to avoid threadlocks

* use debug for signal logging

* ensure disabled cameras dont break shutdown

* typo
2024-06-06 18:54:38 -05:00
Josh Hawkins
5b42c91a91 Compare timestamps instead of datetimes when exporting (#11790) 2024-06-06 14:34:31 -06:00
Josh Hawkins
926d394b2f Ensure datetime comparison is the same (native vs aware) (#11789) 2024-06-06 14:10:46 -06:00
Josh Hawkins
fc5a926892 Ensure export thumbnail datetime is UTC (#11786) 2024-06-06 13:18:42 -06:00
Josh Hawkins
d2787d4308 Change debug message about deleting db entries to warning (#11780) 2024-06-06 09:16:28 -06:00
Josh Hawkins
8cc170f027 Draggable grid layout bugfixes (#11777)
* Maintain aspect ratio when overdragging

* add existing x value

* Better handle portrait and wide cam aspect ratios
2024-06-06 06:26:02 -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
Josh Hawkins
8c96dfe1d1 Some small layout tweaks for portrait cams and motion review (#11766)
* Some small layout tweaks for portrait cams and motion review

* spans

* fix desktop
2024-06-05 09:53:17 -05:00
Ramūnas Dronga
36ae42a011 fix: remove contradictory ffmpeg param and missing param (#11752) 2024-06-04 14:19:37 -06:00
Nicolas Mowen
0181d1e377 Don't show preview for birdseye (#11749)
* Don't show preview for birdseye

* Retry ws connection on error

* Flex wrap cameras labels
2024-06-04 14:00:04 -06:00
Josh Hawkins
3f0a954856 Try webrtc when mse fails with decoding error (#11745)
* Try webrtc if enabled and mse fails with decoding error

* default to jsmpeg if webrtc times out

* check for mic first
2024-06-04 09:11:32 -06:00
Nicolas Mowen
2875e84cb5 UI Fixes (#11742)
* Allow deleting failed in progress exports

* Fix comparison and preview retrieval

* Fix stretching of event cards

* Reset edit state when group changes

* Allow specifying group
2024-06-04 09:10:19 -06:00
Jason Hunter
7917bf55ff Fix unclean shutdown of ZMQ (#11740) 2024-06-04 06:39:34 -06:00
Nicolas Mowen
ea0292b911 Ensure review padding is consistently applied (#11728) 2024-06-03 17:10:39 -06:00
Josh Hawkins
e6d1ad0ac5 Theme scrollbars with tailwind-scrollbar (#11723) 2024-06-03 12:43:30 -06:00
reidprichard
9808ff64e7 Update authentication.md to note port 8080 vs 5000 (#11722)
* Update authentication.md to note port 8080 vs 5000

* Update docs/docs/configuration/authentication.md

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-06-03 11:53:59 -06:00
Josh Hawkins
f65ddccd6e Ensure debug switches match loaded options (#11721) 2024-06-03 08:51:23 -06:00
Nicolas Mowen
b763754723 fix duplicate id in bug report (#11718) 2024-06-03 08:00:29 -06:00
Nicolas Mowen
d5dafffc39 Fix bug template (#11716)
* Update bug-link.yml

* Delete .github/ISSUE_TEMPLATE/bug-link.yml

* Use existing template
2024-06-03 08:19:16 -05:00
Nicolas Mowen
bd7c575f26 Add bug template to issues (#11712)
* Add bug template to issues

* Delete .github/ISSUE_TEMPLATE/bug_report.yml

* Create bug-report.yml

* Create bug-link.yml
2024-06-03 07:42:47 -05:00
Josh Hawkins
13f250f630 Use valid/unique css identifier for jsmpeg canvas elements (#11704) 2024-06-03 05:39:19 -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
Josh Hawkins
1e80342c41 UI tweaks and bugfixes (#11692)
* UI tweaks and bugfixes

* fix linter complaints in unmodified files
2024-06-02 12:00:59 -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
Sergei
379061f847 Typo on edgetpu.md (#11686)
Added a missing bracket.
2024-06-02 05:22:55 -06:00
Josh Hawkins
beefc51361 container for birdseye aspect and auto width for mobile time pill (#11685) 2024-06-01 21:13:37 -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
8418b65f34 Fix path containing too many / (#11680) 2024-06-01 08:24:20 -05:00
Soren L. Hansen
6e53c109b6 feat: apply ingress path to app paths (#11677)
When serving Frigate at a subpath, the paths that show in the URL bar
and that wind up in your browser history are anchored at the web root.
I.e. you go to `https://example.com/frigate/`, it changes to
`https://example.com/`, and clicking around works as expected, but the
`frigate/` prefix is gone.

It's confusing if you don't know that the URL's are entirely virtual.
Also, your browser history is useless, since the URL's point to e.g.
`https://example.com/#kitchen`, but visiting that URL will not hit
`/frigate/` at all.

Most of the work is already done. Nginx injects javascript to set
`window.baseURL` based on the X-Ingress-Path header. This change passes
that to BrowserRouter, so that it'll be part of the URL's it shows.

Fixes #4526
2024-06-01 07:08:01 -06:00
Blake Blackshear
7b99bbfd28 Update deps (#11679)
* update web deps

* update actions

* automatic stable tag publishing

* python deps

* typo
2024-06-01 06:39:05 -06: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
758df09da3 Handle error when live view stalls (#11665)
* Handle error when live view stalls

* Manually calculate buffer timeout

* Formatting
2024-05-31 08:52:42 -05:00
Josh Hawkins
a3d116e70e stay in fullscreen when navigating to a camera (#11666) 2024-05-31 07:58:33 -05:00
Josh Hawkins
8c325801ef fix race where camera change effect sometimes was called after layout building (#11656) 2024-05-30 14:17:00 -06:00
Tom B
35946d332d Fix Statusbar rendering NaN% for unsupported GPUs (#11655) 2024-05-30 13:10:24 -06: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
Josh Hawkins
402c16e7df don't sleep mobile devices when fullscreen (#11652) 2024-05-30 09:37:08 -06:00
Nicolas Mowen
3e6b8c23bc Update dialog sizing for plus dialog (#11650) 2024-05-30 09:26:15 -05:00
Nicolas Mowen
1c5e7ebb48 UI Fixes (#11648)
* Add cursor pointer to preset dropdown

* Catch key index

* Fix iOS mime type
2024-05-30 07:41:37 -06:00
Josh Hawkins
9cb3e11df6 non-modal dropdown menus (#11649) 2024-05-30 07:39:14 -06:00
Nicolas Mowen
1c2e2a7b38 Handle case where user sets detections as empty list (#11646) 2024-05-30 07:45:34 -05:00
Josh Hawkins
a763ae303d static handlebar size to better match figma (#11638) 2024-05-29 21:34:19 -05:00
Nicolas Mowen
ec88752666 Don't show mark reviewed button when all items are in progress (#11636)
* Don't show mark reviewed button when all items are in progress

* Fix unknown preview file
2024-05-29 19:54:56 -05:00
Josh Hawkins
4135cabf58 assume 1 grid column by default on live dashboard (#11630) 2024-05-29 16:03:59 -06:00
Nicolas Mowen
9fc22efa2d Always save previews in UTC offset (#11629) 2024-05-29 14:55:56 -06:00
Josh Hawkins
37dd3fc25b fix birdseye fullscreen (#11625) 2024-05-29 14:18:51 -05:00
Nicolas Mowen
9e8202874e Remove live mode from config (#11618)
* Use preferred mode as default

* Remove live mode from config

* Add deer icon

* remove from config schema
2024-05-29 13:06:48 -05:00
Nicolas Mowen
9245c5cb56 Improve efficiency of log and metrics pages (#11622)
* Rework stats pages

* Handle limited data case

* Handle page and arrow keys

* Adjust sizing
2024-05-29 12:05:39 -06:00
Josh Hawkins
f1c0422d5e Various bugfixes and improvements (#11624)
* various bugfixes and improvements

* add separator

* no separator
2024-05-29 12:05:28 -06:00
Josh Hawkins
3dd401f57a string or list for camera groups (#11616) 2024-05-29 09:19:05 -05:00
Nicolas Mowen
6dd9660ecd Settings rework (#11613)
* refactor settings to be consistent with other page structure

* Implement non auto live

* Adjust missing view

* Quick fix

* Clarify settings options

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update naming and config restarts

* Rename

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-05-29 08:01:39 -06:00
Nicolas Mowen
d5f6decd30 Cache camera stream info to speed up future config generations (#11614)
* Cache camera stream info to speed up future config generations

* Formatting

* fix
2024-05-29 07:41:41 -06:00
Nicolas Mowen
cf4517cbdb cache current hour previews (#11606) 2024-05-28 17:35:55 -05:00
Nicolas Mowen
61f79afae9 Always use mse unless webrtc is requrested (#11605) 2024-05-28 17:35:36 -05:00
Nicolas Mowen
5513addab8 UI Fixes (#11602)
* Fix playback rate not showing

* Fix export image

* Formatting

* Formatting
2024-05-28 13:45:08 -06:00
Nicolas Mowen
d064e44571 Fix iOS fullscreen (#11600) 2024-05-28 13:10:42 -06:00
James Tanner-McLeod
c95758580f Draw motion mask first (#11598)
This draws the motion mask before the other overlay elements (such as bounding boxes), so that they are still visible. Fixes #11592
2024-05-28 12:44:20 -06:00
Josh Hawkins
ced5ab203f ensure the correct container is used for canvas calcs (#11599) 2024-05-28 12:41:51 -06:00
Nicolas Mowen
4236580672 UI fixes (#11596)
* Fix using undefined search params

* Fix calendar selection

* Simplify
2024-05-28 13:15:31 -05:00
Josh Hawkins
f7c3ddd380 check if motion dataframe is empty (#11593) 2024-05-28 11:33:28 -06:00
Nicolas Mowen
8546d3d315 Simplify timezone math (#11586)
* Use utc minutes

* Cleanup
2024-05-28 09:09:17 -05:00
Josh Hawkins
2fda383782 clean up unneeded code (#11587) 2024-05-28 08:05:04 -06:00
Josh Hawkins
4165639308 Live view tweaks and jsmpeg bugfix (#11584)
* live view tweaks and jsmpeg bugfix

* use container aspect in check
2024-05-28 08:11:35 -05:00
Nicolas Mowen
6913cc6abc Handle case where preview doesn't automatically changeover (#11583) 2024-05-28 08:11:23 -05:00
Nicolas Mowen
d64633889b Fixes (#11575)
* Fix settings icon

* Handle out of resources
2024-05-27 21:27:01 -05:00
Nicolas Mowen
7bed854ff7 remove libusb build (#11571) 2024-05-27 16:52:19 -06:00
Josh Hawkins
c1330704cf Make jsmpeg players fully responsive (#11567)
* make jsmpeg canvas responsive

* make birdseye responsive too
2024-05-27 16:18:04 -06:00
Nicolas Mowen
5900a2a4ba Add ability to interact with review items in events list (#11562)
* Add ability to interact with review items

* Ignore on iOS

* Don't load metadata

* Bug fixes
2024-05-27 17:12:57 -05:00
Blake Blackshear
bfeb7b8a96 upgrade to latest openvino version (#11563) 2024-05-27 14:49:35 -06:00
Nicolas Mowen
a86e22e0fc Fix live view updating when it shouldn't be (#11561)
* Simplify live image update logic

* Fix case where go2rtc is not setup
2024-05-27 09:50:02 -06:00
Josh Hawkins
c07f6999ca refresh editor value when config is updated (#11559) 2024-05-27 09:31:58 -06:00
Josh Hawkins
eca8c52f15 docs update: how to exclude camera from alerts/detections (#11560) 2024-05-27 09:31:49 -06:00
Nicolas Mowen
be147d218b Fix optimistic state (#11556) 2024-05-27 07:59:26 -05:00
Josh Hawkins
7a9ee63bd3 save video dimensions in onLoadedData instead of onLoadedMetadata (#11545) 2024-05-26 17:48:33 -06:00
Nicolas Mowen
c2eac10925 Tweaks and fixes (#11541)
* Update config version to be stored inside of the config

* Don't remove items from list when navigating back

* Use video api instead of webps for live current hour filmstrip

* Check that the config file is writable

* Show camera name when camera is offline

* Show camera name when offline

* Cleanup
2024-05-26 16:49:12 -05:00
Josh Hawkins
63d81bef45 redirect non existent paths to live view (#11536) 2024-05-26 10:17:52 -06:00
Josh Hawkins
3f171e7670 bugfixes (#11526) 2024-05-25 20:37:53 -06:00
Josh Hawkins
681c7367d7 ensure resizable handles are above jsmpeg canvas elements (#11519) 2024-05-25 15:15:30 -05:00
Marc Altmann
adb043e7ae Update docs for rockchip platform (#11503)
* improve docs for rockchip

* update version info

* fix typo

* fix typo

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

* fix typo

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-05-25 11:27:44 -06:00
Blake Blackshear
b97e274b6a master sync v2 2024-05-25 11:58:11 -05:00
Blake Blackshear
e6b735231d master sync 2024-05-25 11:52:24 -05:00
Josh Hawkins
058e9a3ba0 calculate aspect ratio of container to prevent overflow (#11495) 2024-05-23 07:30:16 -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
527d2ab27b Fix extra space in command (#11487) 2024-05-22 13:25:58 -05:00
Nicolas Mowen
01e387ee9a Adjust date math (#11485) 2024-05-22 10:06:40 -06:00
Nicolas Mowen
db496ec525 Fix current hour check for uneven timezones (#11484) 2024-05-22 09:27:00 -06:00
Josh Hawkins
9652ea9e96 Update beta docs (#11483)
* update beta docs

* fix relative coordinates

* fix relative coordinates

* changes
2024-05-22 08:51:59 -06:00
Nicolas Mowen
c935eb0c79 Update Deps (#11480)
* Update web deps

* Update python deps

* revert matplotlib
2024-05-22 08:41:43 -06:00
Nicolas Mowen
c49be0a47f UI tweaks / fixes (#11479)
* Update coloring of logs button

* Fix paging after submitting

* Fix sorting

* Add icon
2024-05-22 07:14:48 -06:00
Rémi Bédard-Couture
592b645231 Add support for TensorRT v10 (multiple api calls have changed) (#11166)
* Add support for TensorRT v10 (multiple api calls have changed)

* Remove unnecessary size check in TensorRT v10 block

* Refactor to reduce code duplication

* Fix wrong function name in new _get_binding_dtype function and only return input check (not assertion) in new _binding_is_input function

* Add space around TRT_VERSION variable assignment (=) to respect linting

* More linting fix

* Update frigate/detectors/plugins/tensorrt.py

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

* More linting

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-05-22 06:57:52 -06:00
Marc Altmann
e91f3d8d9b Reimplement support for rknn detector (#11365)
* initial support for rknn detector

* remove purge_model_cache option

* update rknn

* support rk3576

* fix post_process_yolonas call

* add yolonas models

* update config

* exclude yolonas from image

* remove code
2024-05-21 17:50:03 -05:00
Josh Hawkins
910c85b1c0 Clean up config editor (#11474)
* clean up config editor

* remove unneeded size
2024-05-21 13:06:17 -05:00
Nicolas Mowen
cc3bbcc303 Improve preview loading (#11469)
* Improve preview loading

* Ensure it works when selecting dates
2024-05-21 08:00:29 -05:00
Nicolas Mowen
2a86969f54 UI Tweaks (#11459)
* refresh dashboard activity on visibility change

* Make video controls more consistent

* Use const
2024-05-20 18:26:17 -05:00
Nicolas Mowen
dda65ba514 Update review APIs (#11457) 2024-05-20 16:04:18 -05:00
Nicolas Mowen
e268da9df7 Update motion detection tuning to reflect UI tuner (#11455) 2024-05-20 13:35:49 -05:00
Josh Hawkins
e543cc642c add clarifying message and docs link around motion masks (#11452) 2024-05-20 23:18:01 +05:30
Nicolas Mowen
8897b4b0e0 Remove parked car guide as it is no longer relevant (#11451)
* Remove parked cars guide

* Update sidebar

* Update stationary_objects.md
2024-05-20 22:56:03 +05:30
Nicolas Mowen
7413810fa4 Don't timeshift recordings (#11449) 2024-05-20 20:14:39 +05:30
Lachlan MacPhee
87d3ee09b0 Minimal config in installation guide (#11339)
* Minimal config in installation guide (#11339)

+ Adds a subsection to the installation guide that mentions the requirement for a minimal config to start Frigate successfully.

+ Adds a warning not to proceed any further into the guide without this valid config

* Add spacing between Markdown title and text

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

* Remove subsection in favour of exclusively adding a warning

* Adjust wording for the warning

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-05-20 07:55:25 -06:00
Meow
6e39d55dd3 cspell fixes (#11447) 2024-05-20 07:37:56 -06:00
Josh Hawkins
84e823c62f add padding to bottom of drawer for iOS PWA only (#11446) 2024-05-20 08:06:11 -05:00
Nicolas Mowen
2a16d5593a Fix timezone conversion logic (#11444)
* Fix timezone conversion logic

* Use function for consistency

* Cleanup
2024-05-20 07:02:19 -06:00
Josh Hawkins
82d4bf8ab5 Log warning for high detect fps (#11435)
* warn in log if detect fps > 10

* change message
2024-05-19 21:36:41 -06:00
Nicolas Mowen
4c87ef56c7 Support timezones (#11434)
* Handle offset timezones

* Fix previews loading

* Cleanup

* remove unused
2024-05-19 17:08:32 -06:00
Josh Hawkins
bca01cb43c guard clause for api error (#11436) 2024-05-19 17:08:05 -06:00
Nicolas Mowen
c1560308bf UI improvements (#11429)
* Respect classname when no preview is found

* Don't check for go2rtc info if camera is not restramed

* Show error banner when playback fails

* Add keyboard shortcut for fullscreen
2024-05-19 07:39:17 -05:00
Josh Hawkins
171a142adb optional env var for easier development (#11426) 2024-05-18 18:49:38 -06:00
Nicolas Mowen
0810873988 Fix broken links (#11425) 2024-05-18 18:09:55 -05:00
Nicolas Mowen
16f1c575d7 UI Fixes (#11423)
* Settings fixes

* Fix formatting
2024-05-18 14:19:32 -06:00
Blake Blackshear
402f5fa142 add setting for secure flag on cookie (#11422)
* add setting for secure flag on cookie

* docs fix
2024-05-18 13:53:49 -06:00
Nicolas Mowen
3ce8816b9a Update auth settings UI (#11421) 2024-05-18 14:05:28 -05:00
Josh Hawkins
5c609c7051 Bugfixes (#11420)
* mse and misc messages fixes

* clean up
2024-05-18 12:55:17 -06:00
Nicolas Mowen
8cddfc27fb UI fixes (#11417)
* Set max width on the problems area in status bar and use unique keys so they do not duplicate

* Fix possibly missing media info

* Show full row of items on tablet

* remove debugging logic
2024-05-18 11:54:46 -05: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
Marc Altmann
a70dd02788 Implement common post_processing (#11408)
* implement common post_processing

* fix formatting

* rename yolonas to post_process_yolonas
2024-05-17 10:50:45 -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
Nicolas Mowen
07eef9b139 Recording fixes (#11406)
* Fix infinite review items when record is disabled

* Fix showing loading icon while continuing to scrub

* Fix recording layout previews
2024-05-17 07:26:42 -06:00
Josh Hawkins
ba03d3b3e4 Mobile/PWA spacing fixes (#11403)
* spacing on mobile landscape

* better icon placement when running as pwa

* better icon placement when running as pwa

* portrait padding only
2024-05-16 16:00:14 -06:00
Nicolas Mowen
76f822630d Fix preview saving for ffmpeg builds < 5 (#11400)
* Fix ffmpeg for rpi

* Fix character
2024-05-16 16:55:55 -05:00
Josh Hawkins
dd0dee620a spacing on mobile landscape (#11397) 2024-05-16 10:51:57 -06:00
Josh Hawkins
525de1a467 Add autotracking enable/disable button to live view (#11396) 2024-05-16 08:32:39 -06:00
Josh Hawkins
16ead917ea Preview bugfixes (#11384)
* memoize initial time range and check for window visibility

* assume window is visible with previewthumbnailplayer
2024-05-15 09:51:58 -06:00
Johann
46f68ccd73 Update to frigate+ documentation (#11371)
* Update to frigate+ documentation

Added shortcuts + advices for objects partly out of frame and the 'difficult' tag.

* Update docs/docs/plus/improving_model.md

* Update docs/docs/plus/improving_model.md

---------

Co-authored-by: Blake Blackshear <blake.blackshear@gmail.com>
2024-05-15 06:08:14 -05:00
Josh Hawkins
1757f4cb04 Use prettier-plugin-tailwindcss (#11373)
* use prettier-plugin-tailwindcss to keep class names organized

* use prettierrc file to ensure formatting on save works with vscode

* classname reorder with prettier-plugin-tailwindcss
2024-05-14 09:06:44 -06:00
Nicolas Mowen
b10ae68c1f Tweaks and fixes (#11372)
* Ensure camera activity is up to date

* Persist playback rate between cameras

* Add setting for default playback rate

* Fix audio events saving image

* Formatting

* Use select component
2024-05-14 08:38:03 -05:00
Nicolas Mowen
b451d0a4f1 Improve mask error (#11361)
* Don't apply masks / zones that are outside of the detect resolution

* formatting
2024-05-13 10:00:34 -05:00
Marc Altmann
67bff1e79e update FFmpeg for Rockchip (#11351) 2024-05-13 06:52:11 -06:00
Josh Hawkins
fbec08354c bugfixes and small UI tweaks (#11360) 2024-05-13 06:42:11 -06:00
Nicolas Mowen
9680f2a574 Bug fixes (#11332)
* Fix external events saving

* Only show relevant labels

* Set on recordings view too

* Fix video control width on motion page

* use overlay so player state is maintained between camera switches

* use overlay so player state is maintained between camera switches

* mobile only

* Formatting

* Use higher amount

* Only wrap when needed
2024-05-10 11:42:56 -06:00
Josh Hawkins
82e443a5c3 Camera group layout fixes (#11334)
* camera group layout changes and tweaks

* lock aspect ratio

* no compacting

* prevent collisions

* revert

* readd limit aspect
2024-05-10 11:54:37 -05:00
Josh Hawkins
386ffbf5a6 Tweak camera group layout editor buttons (#11317)
* tweak layout editor buttons

* remove bubble

* spacing

* button backgrounds
2024-05-09 15:08:22 -06:00
Nicolas Mowen
8b344cea81 Implement recordings fullscreen and rework recordings layout size calculation (#11318)
* Implement fullscreen button

* wrap items on mobile

* control based on width

* refresh

* Implement basic fullscreen

* Fix scrolling

* Add observer to detect of row overflows

* Use cn to simplify classnames

* dynamically respond to layout sizing

* Simplify listener

* Simplify layout

* Handle tall browser
2024-05-09 15:06:29 -06:00
Josh Hawkins
021ffb2437 fix nan check in system graphs (#11312) 2024-05-09 07:55:19 -06:00
Josh Hawkins
f8523d9ddf Icon picker component (#11310)
* icon picker component

* keep box the same size when filtering icons
2024-05-09 07:22:48 -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
4216d08099 Backend and webui fixes (#11309)
* Ensure that items without end times are set to not have a snapshot

* Save full frame if no frame is currently saved

* Webui fixes

* Cleanup
2024-05-09 08:20:33 -05:00
Nicolas Mowen
4bcbf7435a Web Deps (#11304)
* Update easy web deps

* Update react

* Update final
2024-05-09 08:20:07 -05:00
Nicolas Mowen
e1cbefb692 Add link to system stats from status bar (#11303) 2024-05-09 08:19:41 -05:00
Josh Hawkins
2be15b6c01 Improve config validation error messages (#11292) 2024-05-08 08:46:31 -06:00
Nicolas Mowen
3ed89ec042 Simplify preview refreshing with custom hook (#11293) 2024-05-08 08:46:10 -06:00
Josh Hawkins
db8c820677 Draggable camera grid tweaks (#11291)
* better math and other tweaks

* change icon
2024-05-08 07:53:22 -05:00
Nicolas Mowen
e7ba556919 Fix setting manual event update time (#11290) 2024-05-08 07:34:22 -05:00
Josh Hawkins
ff2948a76b Drag to reorder/resize cameras in camera groups (#11279)
* draggable/resizable cameras in camera groups on desktop/tablets

* fix edit button location on tablets

* assume 1rem is 16px
2024-05-07 08:28:10 -06:00
Josh Hawkins
08e5c791c8 Use cn() for class names throughout (#11278)
* add scrollbar on ptz presets dropdown

* use cn function for class names throughout

* Revert "add scrollbar on ptz presets dropdown"

This reverts commit 2cee93dc3e.
2024-05-07 08:00:25 -06:00
Josh Hawkins
a0da5018bf add scrollbar on ptz presets dropdown (#11276) 2024-05-07 06:27:20 -06:00
Nicolas Mowen
fc0f6d6095 Implement infinite scrolling for frigate+ view (#11273)
* Implement infinite scrolling for frigate+ view

* Also fixes safari preview glitch

* Show sub label name in hover
2024-05-06 18:00:21 -05:00
Nicolas Mowen
e5e18a5026 UI Tweaks (#11263)
* Add icons for frigate+ items

* Fix bug where export didn't start

* Fix mobile overflow

* Capitalize first letter function
2024-05-06 15:18:13 -06:00
Josh Hawkins
c0073db859 fix touch events (#11265) 2024-05-06 12:35:18 -06:00
Josh Hawkins
306c11d730 use portal on all sidebar tooltips (#11267) 2024-05-06 11:18:28 -06:00
Josh Hawkins
ca8ef70096 Support desktop touchscreens for timelines (#11241)
* support desktop touchscreens

* remove placeholder select

* add max height to settings cameras dropdown
2024-05-04 21:00:33 -06:00
Josh Hawkins
ad87f5786e Misc UI fixes (#11237)
* add close button to all toasters

* check if persistent options are loaded

* add id to prevent message duplication in bottom bar
2024-05-04 14:54:50 -05:00
Nicolas Mowen
2dd5b893a0 Cleanup config validation (#11235)
* Fix reading model config dict

* Fix irrelevant warnings

* Fix tests
2024-05-04 10:15:03 -05:00
Josh Hawkins
51dcdd6f4b Zone/mask editor improvements (#11236)
* add points to completed polygons in zone/mask editor

* change line order so edges are more easily clickable
2024-05-04 08:37:35 -06:00
Nicolas Mowen
f0054ceba4 Adjust stationary reqs depending on state (#11226) 2024-05-03 17:28:06 -05:00
Nicolas Mowen
216e44bc34 Event cleanup (#11225)
* remove duplicate event purging

* Slightly increase stationary object sensitivity

* Add toast for export starting

* Increase stationary threshold as well

* Update message

* Make text consistent

* Update message
2024-05-03 08:03:41 -06:00
Nicolas Mowen
e7950abec3 Add ability to submit frames from recordings (#11212)
* add ability to parse and upload image from recording to frigate+

* Show dialog with current frame to be uploaded

* Implement uploading image in frontend

* Cleanup

* Update title
2024-05-03 09:00:19 -05:00
Josh Hawkins
b69c1828cb Fix overflowing portrait images in debug and motion tuner views (#11209)
* fix overflowing camera image and remove mse console debug

* move calc into onLoad

* check container aspect
2024-05-02 14:05:20 -06:00
Josh Hawkins
7a5df6045a make circle radius larger on mobile only (#11210) 2024-05-02 13:06:32 -06:00
Nicolas Mowen
a3267f7d44 Add more icons (#11204) 2024-05-02 07:52:44 -05:00
Nicolas Mowen
28dd871d44 Show motion playback on page initially (#11196)
* motion video controls handle current time better

* Make sure state is updated
2024-05-01 21:23:03 -05:00
Nicolas Mowen
2e63941598 Fix scroll back (#11192) 2024-05-01 09:24:19 -05:00
Nicolas Mowen
b5b819c866 Add severity filter (#11190)
* Allow viewing all types on single screen

* Implement for mobile as well

* fix import

* Show all is optional
2024-05-01 09:11:16 -05:00
Josh Hawkins
499f70cfd3 config validation fixes (#11191) 2024-05-01 08:08:10 -06:00
Josh Hawkins
6d2457ebad Revamp object debug view (#11186)
* revamp object debug view

* fix vite

* remove console log

* don't display empty fields

* clarify masks as motion masks

* add descriptions

* color and spacing

* add sub_label to camera activity

* add sub_label to type

* rename to debug
2024-05-01 08:07:56 -06:00
Josh Hawkins
bb335638a4 use alert/detection colors as background for motion segments (#11182) 2024-04-30 18:38:22 -06:00
Nicolas Mowen
297444375c UI Fixes (#11179)
* Better scaling for frigate+ dialog and thumbnails

* Always show live objects chip

* Handle sub labels

* Send sub label correctly

* Formatting

* Undo vite

* Update web/src/utils/iconUtil.tsx
2024-04-30 19:35:23 -05:00
Nicolas Mowen
90bdb07463 Simplify on connect (#11176) 2024-04-30 07:27:39 -06:00
Nicolas Mowen
461442b399 Save initial camera state to update when websocket connects (#11174)
* Send camera state to dispatcher

* Fix logic

* Cleanup

* Send camera activitiy in on connect

* Support reading initial camera state

* Fix key

* Formatting

* Sorting
2024-04-30 07:09:50 -06:00
Josh Hawkins
0080c28c4d fix crash for when group includes birdseye (#11175) 2024-04-30 06:59:45 -06:00
Josh Hawkins
11ff7cb2b7 Use full resolution aspect ratio when available (#11173)
* base recordings and live views off of actual video resolution

* don't set for jsmpeg

* reset when changing main cam

* rename

* Only use resolution for main camera

* fix lint

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-04-30 06:52:56 -06:00
Nicolas Mowen
1c9626ecff UI fixes (#11161)
* Don't save animated webp

* Fix bad export state

* Contain scroll for camera group

* Use dvh
2024-04-29 15:23:24 -06:00
Josh Hawkins
7745313cdc add chips for active objects on live dashboard (#11162) 2024-04-29 15:23:14 -06:00
Nicolas Mowen
f946cf55be Use pre buffer for other links (#11160) 2024-04-29 14:20:50 -05:00
Nicolas Mowen
c9246bd4ab Open to recordings with pre-buffer (#11143)
* Open to recordings with pre-buffer

* Reduce buffer

* Use variable for preview FPS
2024-04-29 11:12:57 -05:00
Nicolas Mowen
9117043adc UI tweaks for screen sizes (#11155)
* Make bottom bar items easier to tap

* Set max height on list of cameras and labels

* remove incorrect character

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-04-29 10:59:27 -05:00
Nicolas Mowen
0c8e155afa Fix handling mixed masks (#11157) 2024-04-29 10:58:53 -05:00
Sean Kelly
5bc9f9a388 [stats] Fix tooltip showing as undefined for first tick (#11150)
* Fix tooltip showing as undefined for first tick

* Rearrange to simplify diff

* Remove offset for mobile
2024-04-29 08:52:32 -06:00
Nicolas Mowen
5858eee1fe Explicitly set pandas dtype to reduce memory usage and fix warning (#11145)
* Explicitly set dtype to reduce memory usage and fix warning

* remove extra line
2024-04-29 06:23:08 -05:00
Sean Kelly
90468c8bf5 Force X axis labels to be rotated correctly (#11148)
* Adjust number of ticks to have consistent X axes

* Revert "Adjust number of ticks to have consistent X axes"

This reverts commit 941e296750.

* set rotate instead
2024-04-28 22:55:43 -06:00
Sean Kelly
1c90f62ea5 Fix rounding (#11147) 2024-04-28 22:00:57 -06:00
Nicolas Mowen
acf37f9920 Link to relevant page from status bar warnings / errors (#11140)
* Use hash state for system pages

* Add links to items

* Add stats to other types

* Link on mobile as well

* Use link

* Cleanup using util
2024-04-28 16:59:03 -06:00
leccelecce
c2c6113299 Live view not loading for MSE/JSMpeg if overriding live stream (#11141) 2024-04-28 16:28:19 -06:00
Nicolas Mowen
8c610bea49 Remove dev env var requirement and update docs for latest config (#10483)
* Update docs for alerts and event review

* Add docs for camera groups

* Update reference config with new config values

* Remove env variable requirement

* Add to sidebar

* Update snapshot docs

* add zones example to detection docs too

* Generalize the zone docs
2024-04-28 09:35:50 -05:00
Josh Hawkins
3348af1e6d add page titles for settings views (#11132) 2024-04-27 11:02:01 -06:00
Nicolas Mowen
cc851555e4 Security improvement: ensure user provided file names don't exceed max length (#11129)
* Security fixes

* formatting
2024-04-27 11:27:23 -05:00
Nicolas Mowen
f36e86feb6 Cleanup error gpu (#11130) 2024-04-27 11:26:51 -05:00
Josh Hawkins
ab032aa004 sane colors for themes (#11126) 2024-04-26 14:30:57 -06:00
Josh Hawkins
d0aefc2121 Camera group dialog changes and fixes (#11117)
* camera group dialog changes and fixes

* use drawer on mobile

* spacing
2024-04-25 17:19:31 -06:00
Nicolas Mowen
c035241b39 Clear ongoing reviews on startup (#11097)
* Add topic to clear ongoing review segments

* Clear ongoing review items on startup
2024-04-24 08:44:28 -05:00
Nicolas Mowen
313e7c016c fix motion updating (#11083) 2024-04-23 09:57:29 -05:00
Nicolas Mowen
647bcb2618 Add camera fps to graphs (#11080)
* Add camera fps to graphs

* Use more generic name
2024-04-23 09:32:46 -05:00
Nicolas Mowen
2d71cd7fe2 Improve review mqtt topic (#11072)
* Don't request preview for current hour and fix content type

* Send before / after on messages

* Send before / after for end

* Handle specific cases

* remove log

* Fix update type
2024-04-22 21:20:30 -05:00
Josh Hawkins
d6e93d039d Make all corners less rounded on mobile (#11068)
* make corners less rounded on mobile

* fix live dashboard classes
2024-04-22 09:12:45 -06:00
Josh Hawkins
ba3930ab02 Add status bar provider (#11066) 2024-04-22 08:20:23 -06:00
Josh Hawkins
acadfb6959 Fix array out of range error in reviews (#11059) 2024-04-21 19:03:43 -06:00
Nicolas Mowen
baf363fcb0 Make a backup DB before doing migrations (#11048) 2024-04-20 08:55:51 -05:00
Josh Hawkins
57800d3843 Use export name in export deletion dialog instead of file id (#11049)
* use export name in dialog instead of file id

* add type for deletion
2024-04-20 07:44:59 -06:00
dependabot[bot]
8092b28710 Bump docker/login-action from 3.0.0 to 3.1.0 (#10446)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](343f7c4344...e92390c5fb)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-20 06:20:55 -06:00
Aida Syoko
3d612e510c chore: fix some typos in comments (#11028)
Signed-off-by: alongdate <alongyear@outlook.com>
2024-04-20 06:16:43 -05:00
Josh Hawkins
3ca2d599d3 fix logs scrolling on mobile (#11045) 2024-04-19 17:01:45 -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
bfefed4d6e Dynamically scale the slider height when hovering + other UI tweaks (#11042)
* Make no thumb slider height dynamic

* Use existing switch component

* Use existing switch component for general filter content

* Show message when no reordings found for time

* Don't show while scrubbing

* Fix key error

* Fix background color for controls on motion page
2024-04-19 17:12:03 -05:00
Nicolas Mowen
fe4fb645d3 Save exports to database (#11040)
* Save review thumbs in dedicated folder

* Create exports table

* Save exports to DB and save thumbnail for export

* Save full frame always

* Fix rounded corners

* Save exports that are in progress

* No need to remove spaces

* Reorganize apis to use IDs

* Use new apis for frontend

* Get video playback working

* Fix deleting and renaming

* Import existing exports to DB

* Implement downloading

* Formatting
2024-04-19 17:11:41 -05:00
Josh Hawkins
3b0f9988df UI tweaks (#11036)
* spacing, mobile navbar, and minor color updates

* tab scrolling behavior
2024-04-19 12:17:23 -05:00
Josh Hawkins
d6dfa596de undo points based on order added to polygon (#11035) 2024-04-19 07:59:28 -06:00
Josh Hawkins
5f15641b1b New mask/zone editor and motion tuner (#11020)
* initial working konva

* working multi polygons

* multi zones

* clean up

* new zone dialog

* clean up

* relative coordinates and colors

* fix color order

* better motion tuner

* objects for zones

* progress

* merge dev

* edit pane

* motion and object masks

* filtering

* add objects and unsaved to type

* motion tuner, edit controls, tooltips

* object and motion edit panes

* polygon item component, switch color, object form, hover cards

* working zone edit pane

* working motion masks

* object masks and deletion of all types

* use FilterSwitch

* motion tuner fixes and tweaks

* clean up

* tweaks

* spaces in camera name

* tweaks

* allow dragging of points while drawing polygon

* turn off editing mode when switching camera

* limit interpolated coordinates and use crosshair cursor

* padding

* fix tooltip trigger for icons

* konva tweaks

* consolidate

* fix top menu items on mobile
2024-04-19 05:34:07 -06:00
Nicolas Mowen
a1905f5604 Remove gifs and use existing views (#11027)
* Use existing components for preview filmstrip instead of gif

* Allow setting format
2024-04-18 22:34:57 -05:00
Nicolas Mowen
0bad001ac9 Show coral temps on system page if available (#11026) 2024-04-18 22:34:16 -05:00
Nicolas Mowen
03e25b3f94 Improve config validation for zones and object masks (#11022)
* Add verification for required zone names

* Make global object masks use relative coordinates as well

* Ensure event image cleanup doesn't fail

* Return passed value
2024-04-18 11:35:16 -05:00
Nicolas Mowen
fb721ad031 UI fixes (#11012)
* Get pip working correctly

* Fix system graphs click and hover states
2024-04-18 11:34:18 -05:00
Nicolas Mowen
8230813b79 Migrate export filenames (#11005)
* Migrate export filenames

* formatting

* Remove test.yaml saving
2024-04-17 16:26:16 -05:00
Nicolas Mowen
392ff1319d Remove use_experimental config as part of config migration (#11003)
* Remove experimental config as part of config migration

* Remove from config

* remove config from docs
2024-04-17 07:02:59 -05:00
Nicolas Mowen
a87cca23ea Add ability to link to review items directly (#11002)
* Fix action group icon colors

* Add ability to query specific review item

* Pull id search key and open recordings to review item
2024-04-17 07:02:03 -05:00
Nicolas Mowen
ff823b87c8 Add support for arbitrary sub labels in reviews (#10990)
* store arbitrary sub labels

* Include sub labels in tooltip

* Update tooltips on filmstrip

* Fix item display

* Fix bug with creating review segment
2024-04-16 15:56:28 -05:00
Nicolas Mowen
9be5951076 UI tweaks (#10998)
* Make buttons consistent and have hover state

* Use switch for camera to be consistent

* Use everywhere and remove unused

* Use green for normal stats color

* Fix logs copy icon

* Remove warnings from pydantic serialization

* Ignore warnings

* Fix wsdl resolution

* Fix loading on switch
2024-04-16 15:55:24 -05:00
Nicolas Mowen
a823a18496 Fix camera switching and loading position (#10982)
* Fix alignment

* Set loading when switching cameras
2024-04-16 15:21:52 -05:00
Nicolas Mowen
d7ae0eedf8 More UI tweaks (#10974)
* Show loading indicator when switching between preview and recording if it takes a while

* Scroll down to avoid automatic upscroll
2024-04-14 14:43:43 -06:00
Nicolas Mowen
7f424bb3f8 UI Improvements (#10972)
* Update web deps

* Fix tooltip on storage page

* Always show video controls even when zooming

* Get video controls working when video is paused

* Fix control hovering

* Add loading indicator to logs tab

* Show metrics correctly when hovering graph

* Show loading indicators for previews on recordings page

* Remove vitest update

* remove unused

* Make volume props optional
2024-04-14 10:14:10 -06:00
Nicolas Mowen
a3e2171675 Implement score filtering on Frigate+ Page (#10968)
* Fix portrait layout disappearing

* Refactor sliders

* Reuse camera filter

* Reuse label filter content

* Implement score slider including keyboard input

* Implement ability to sort frigate plus submissions
2024-04-14 10:06:11 -06:00
Martin Weinelt
b65656fa87 Make wsdl_dir path resolving more robust (#10967)
Relying on importlib to resolve the path to the wsdl directory is more
robust, since it traverses all site-packages directories, that are part
of the PYTHONPATH.
2024-04-13 12:25:58 -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
Nicolas Mowen
11dc407b36 Further improve event loading (#10949)
* Further improve loading

* Add document titles to pages

* Cleanup
2024-04-12 07:31:30 -05:00
Nicolas Mowen
13cac082d5 UI tweaks (#10946)
* fix warning

* Improve event switching speed

* Fix icon colors

* Only show frigate+ page when frigate+ is enabled

* Add link from reecordings to live as well
2024-04-11 15:54:09 -05:00
Josh Hawkins
7a7ae81d50 always use full resolution time when dragging (#10939) 2024-04-11 07:29:34 -06:00
Nicolas Mowen
fb6f415b27 Fix build formatting (#10937) 2024-04-11 07:49:21 -05:00
Nicolas Mowen
049f27d710 Ongoing review segments (#10924)
* Update review maintainer to save events when ongoing

* Handle previews for in progress review items

* Reset DB items in app

* Handle in progress review items

* Scroll back down to selected event item

* Handle undefined end time

* Formatting

* remove unused

* Make export handles have full resolution

* reduce preview thumbnail props

* fix missing return

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-04-11 07:42:16 -05:00
Nicolas Mowen
cf7698e7e1 Fix vertical camera layout scaling (#10936) 2024-04-11 07:39:53 -05:00
Matt Brown
2d5a3c6963 Clarify Proxmox LXC instructions; reference #5773 instead of #1111 (#10759)
* Clarify Proxmox LXC instructions

There is a lot of confusing information online. This provides some
simple general guidelines to help people get started.

* Update docs/docs/frigate/installation.md

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

* Reference #5773 instead of #1111

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-04-11 06:42:45 -05:00
Austin Kirsch
0c5aef0907 small docs typo fix for zones (#10549)
* Update zones.md

* Update zones.md round 2
2024-04-11 06:41:48 -05: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
3d43c5e811 Ui Tweaks (#10920)
* Cleanup live activity indicators for cameras

* Rename to reviews and redirect events to reviews

* Use reviews

* Remove plural

* Simplify recordings view

* Adjust icon
2024-04-10 08:40:17 -05:00
Nicolas Mowen
503dfba719 Fix button colors (#10915)
* Simplify button colors

* fix colors

* Add back in colors

* Fix color vars
2024-04-09 18:19:31 -05:00
Nicolas Mowen
524732ec73 Improve stats (#10911)
* Add overview stats for overall detection and skipped fps

* Fix intel memory stats

* Fix iOS image long pressing

* Cleanup
2024-04-09 17:08:11 -06:00
Nicolas Mowen
15e4f5c771 use relative coordinates for masks & zones (#10912)
* Handle zones and masks as relative coords

* Ensure that zone coords are saved as relative

* Get motion mask working with relative coordinates

* Rewrite object mask to use relative coordinates as well

* Formatting

* Fix always trying to convert

* fix mask logic
2024-04-09 17:51:38 -05:00
Josh Hawkins
ef52a1d6f0 Fix colors for default light mode theme (#10909)
* fix colors for default light mode theme

* remove redundancy

* fix export dialog

* don't use primary-foreground

* change secondary button variant to be default button

* change filters button to bg-selected when filtering

* slightly lighten secondary-foreground in light mode

* fix mobile motion only button
2024-04-09 17:49:14 -05:00
Nicolas Mowen
c08a198354 Always handle random lines on frigate logs (#10904) 2024-04-09 08:53:21 -05:00
Josh Hawkins
9281093740 fix export button colors (#10903) 2024-04-09 07:49:14 -06: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
Nicolas Mowen
c577361923 Fix frigate startup stats (#10887) 2024-04-08 18:19:00 -05:00
Josh Hawkins
55018372d4 Fix button color dark mode logic (#10884)
* fix button color dark mode logic

* make calendar use active color when not default
2024-04-08 11:34:15 -05:00
Josh Hawkins
f210c4b6f4 UI tweaks and bugfixes (#10882)
* small tweaks and bugfixes

* spacing

* simplify
2024-04-08 07:35:35 -06:00
Nicolas Mowen
73c093be43 Use fast start for exports (#10879) 2024-04-08 07:36:50 -05:00
Nicolas Mowen
8148a4f9d6 Update web deps (#10875) 2024-04-07 15:37:54 -05:00
Nicolas Mowen
25d81b5c6d Improve Landscape mobile views (#10873)
* Fix landscape live view

* Improve recording landscape view

* Fix height
2024-04-07 15:37:33 -05:00
Nicolas Mowen
f6ff1c84b8 Truncate write ahead log if it gets too big (#10866)
* Truncate write ahead log if it gets too big

* formatting

* Reduce size
2024-04-07 15:37:12 -05:00
Nicolas Mowen
12e6e43d6c Add y axis to camera stats graphs (#10854)
* Add y axis to camera stats graphs

* Add y axis to gneral graph too

* Improve data label distribution

* Cleanup
2024-04-07 15:36:28 -05:00
Nicolas Mowen
cf2dfd9a54 Redesign logs page (#10853)
* Adjust outline and structure to match designs

* More color changes to fit design

* Properly parse go2rtc severity

* Add ability to filter by clicking item

* Implement sheet / drawer for viewing full log

* Add toast and filtering

* Add links to docs when specific log items are selected

* Cleanup log seeking

* Use header in layout

* Fix mobile menus

* Fix safari theme

* Hide rings

* Theme adjustment
2024-04-07 15:36:08 -05:00
Nicolas Mowen
b26ceff44d Add ability to search exports (#10850)
* Add ability to search exports

* Fix export saving
2024-04-07 15:35:45 -05:00
dependabot[bot]
af320c8c09 Bump actions/setup-python from 5.0.0 to 5.1.0 (#10703)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-07 06:13:26 -06:00
Josh Hawkins
5085fa7135 UI bugfixes and tweaks (#10848)
* fix ios z-index scrolling bug

* skeleton size
2024-04-05 08:44:00 -05:00
Nicolas Mowen
07ee39b9b8 Write default config if no config is saved (#10847) 2024-04-05 08:39:43 -05:00
Nicolas Mowen
2318e79502 Cleanup (#10846)
* Hide motion playback controls during scrubbing

* Fix portrait recordings on mobile

* Don't apply to desktop
2024-04-05 08:38:05 -05:00
Nicolas Mowen
fb7cfe5471 Implement camera stats graphs (#10831)
* Implement camera graphs

* Cleanup naming

* Cleanup rendering

* Cleanup spacing

* Fix audio name

* theme updates to match design corretly

* Mobile color fixes

* Mobile color fixes
2024-04-04 15:55:04 -05:00
Josh Hawkins
466a9104e5 Motion review improvements (#10833)
* render skeleton for preview player until motion data is loaded

* skeleton for timeline
2024-04-04 14:54:58 -06:00
Nicolas Mowen
42559fa55d Storage Graphs (#10826)
* Rename graph

* Use separate view for general metrics

* Get storage graph formatted

* Show camera storage usage

* Cleanup ticks

* Remove storage link

* Add icons and frigate logo

* Undo

* Use optimistic state for metrics toggle

* Use optimistic state and skeletons for loading
2024-04-04 10:24:23 -06:00
Josh Hawkins
46e3157c7f optimistic ui for mobile buttons too (#10827) 2024-04-04 09:46:19 -06:00
Nicolas Mowen
80e330594b Fix exports (#10824)
* Avoid crash from opening motion time right now

* Cleanup export margins

* Fix mobile filter

* Fix export

* Improve spacing
2024-04-04 10:43:54 -05:00
Josh Hawkins
fbc0da6016 Optimistic UI (#10825)
* debounce motion only button

* implement custom hook

* optimistic severity toggle

* optimistic reviewed switch
2024-04-04 09:09:19 -06:00
Nicolas Mowen
0096a6d778 Implement general page of system graphs (#10815)
* Reorganize stats and show graphs in system metrics

* Break apart all cpu / mem graphs

* Auto update stats

* Show camera graphs

* Get system graphs working for inference time

* Update stats every 10 seconds, keeping the last 10 minutes

* Use types for thresholds

* Use keys api

* Break system metrics into different pages

* Add dialog for viewing and copying vainfo

* remove unused for now

* Formatting

* Make tooltip match theme

* Make betters color in light mode

* Include gpu

* Make scaling consistent

* Fix name

* address feedback
2024-04-03 21:22:11 -06:00
Josh Hawkins
427c6a6afb Timeline tweaks (#10816)
* limit handles from overdragging when segments don't fill up timeline

* use separate state for switch

* add key
2024-04-03 19:20:47 -06:00
Nicolas Mowen
483d64e419 Don't show warning for disabled cameras (#10811) 2024-04-03 11:56:04 -05:00
Nicolas Mowen
59335c0628 Redesign log page and pull logs in chunks (#10809)
* Redesign log page to have formatting

* Support other log types as well

* fix border

* Support log data format

* Only load necessary logs

* Load incrementally

* Cleanup

* Cleanup

* Render all items

* avoid flashing scroll to bottom

* Fix not listening at first

* Always ensure logLine is defined

* Group logs based on timestamp

* Formatting

* remove scrollbar

* Don't repull when there are no items to pull

* Add newline to end

* Fix log lines missing

* typo
2024-04-03 11:55:13 -05:00
Nicolas Mowen
476a900708 Add ability to rename exports (#10791)
* Add ability to rename exports

* Address feedback
2024-04-03 09:02:07 -05:00
Nicolas Mowen
15dcf1fcc8 Don't stop mse in background when using pip (#10794)
* Don't stop mse when pip is enabled and not visible

* Cleanup visibility listener
2024-04-02 14:39:11 -05:00
Nicolas Mowen
759ad427d5 Link live recordings (#10799)
* Add button to link to recordings from camera live view

* Change name and show text on both

* Use history button next to back button

* Match designs better
2024-04-02 14:25:02 -05:00
Nicolas Mowen
d1082ec305 Support manual detections in review items (#10784)
* Only update frame time if it is older

* Support manual detections as review items

* Don't handle api detections in recordings

* Store recordings for manual events
2024-04-02 07:07:50 -06:00
Josh Hawkins
d7a87fff60 move span inside of content to fix crash (#10790) 2024-04-02 07:07:38 -06:00
Nicolas Mowen
4d8d3cd22e Live view improvements (#10781)
* Show frigate features in bottom sheet on mobile

* Use flex wrap on mobile so the ptz icons are not cutoff

* Support opening pip from live view

* Remove unused
2024-04-02 07:45:16 -05:00
faurel
a886b6a3e5 Support ONVIF exceptions when sending pan-tilt commands (#10777)
Co-authored-by: Aurel <me@home.com>
2024-04-01 13:19:24 -06:00
Josh Hawkins
bd70bf1c31 fix outlines (#10779) 2024-04-01 10:03:10 -06:00
Josh Hawkins
99878d9eee use single lookup for motion data (#10778) 2024-04-01 09:57:35 -06:00
Nicolas Mowen
52f65a4dc4 Use drawer instead of dropdown menu for mobile settings (#10761)
* Separate settings items so layout is more consistent

* Convert settings on mobile to drawer

* Fix sizing on mobile and make scrollable

* remove padding

* Use dialog instead of popover

* Don't focus on first item

* Simpler tab fix
2024-04-01 10:31:31 -05:00
Josh Hawkins
7fac91dce4 UI tweaks and bugfixes (#10775)
* fix wrong segments when changing filters in motion only mode

* pixel alignment, better outlines, and more figma matching

* fix stats from crashing the ui

* separate layout from aspect classes

* check for invalid value

* avoid undefined classnames
2024-04-01 08:23:57 -06:00
Nicolas Mowen
5853393396 Fix mobile playback (#10774) 2024-04-01 09:20:27 -05:00
Daniel
7e5eb82882 Delete download-models (#10755) 2024-03-30 13:23:32 -06:00
Nicolas Mowen
5b5606cb8a Make export date/time respect configured timezone in config (#10750)
* Make export page timezone aware

* Fix changeover
2024-03-30 14:07:30 -05:00
Nicolas Mowen
4d522be7fb Improve review book keeping (#10735)
* Improve review book keeping

* Cleanup

* Cleanup for new labels

* Final cleanup

* Fix sub label checking
2024-03-30 13:45:42 -05:00
Nicolas Mowen
89f843cf95 Implement alerts when a potential problem is detected (#10734)
* Implement alerts on statusbar when a potential problem is detected

* Add alert to mobile
2024-03-30 13:45:13 -05:00
Nicolas Mowen
190cdc471a Recording fixes (#10728)
* Use timerange everywhere and ensure recordings has last 24 hours

* Pause recording when selecting timeline

* Fix loading layout

* Fix updating current time not always working

* Simplify dynamic video player

* Clean up desktop sizing

* Fix current hour

* Make padding consistent

* Improve spacing for extra cameras

* Make back button consistent

* Fix preview player not jumping to correct time

* Dont use useEffect due to preview changing

* Simplify

* Fix transition
2024-03-30 13:44:12 -05:00
Josh Hawkins
7d3b481181 fix missing collapsed prop after refactor (#10751) 2024-03-30 09:51:03 -06:00
JohnEndson
37394fbe19 chore: fix some comments (#10729)
Signed-off-by: JohnEndson <jiayuzhen@outlook.com>
2024-03-30 05:51:41 -05: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
Blake Blackshear
b65aa640c9 Remove all AGPL licensed YOLO references from Frigate (#10716)
* Remove yolov8 support from Frigate

* Remove automatic build

* Formatting and remove yolov5

* Formatting

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-03-30 05:44:44 -05:00
Nicolas Mowen
0223d6df60 UI Tweaks (#10727)
* Fix drawer not being scrollable

* Fix margin

* Use 2 columns for large mobile devices

* Move padding

* Add review summary to mobile calendar

* Make header spacing consistent between pages

* remove red
2024-03-28 11:53:36 -06:00
Josh Hawkins
36d5e5b45f Timeline tweaks for mobile (#10726)
* add dense prop, combine duplicate code, fix mobile bug

* put segment height in hook

* playground
2024-03-28 10:03:06 -05:00
Nicolas Mowen
985b2d7b27 Cleanup event filters (#10724)
* Add specific button / switch for showing reviewed items and use intermediate drawer for mobile

* Match design for filters
2024-03-28 09:43:05 -05:00
Nicolas Mowen
35ecb342bb Fix inconsistent spacing (#10714)
* Fix inconsistent spacing

* Fix motion button alignment
2024-03-28 07:49:38 -05:00
Nicolas Mowen
f3abc590e7 Fix camera list not scrolling (#10713) 2024-03-27 18:24:41 -05:00
Nicolas Mowen
4e800e19ff Mobile recordings redesign (#10711)
* Only show back button text on desktop

* Add mobile camera drawer to separate component

* Use bottom sheet for export on mobile

* Add intermediary mobile bottom sheet

* fix filter

* Fix mobile layout jumping

* Fix desktop vertical camera view

* Fix horizontal camera list

* Add overlay instead of using same button for timeline exports

* Don't use native hls for now

* Fix export bottom sheet

* Fix scrolling

* Simplify checks

* Adjust hls compat approach

* Fix events shadow

* Make corners consistent

* Make corners consistent

* fix max drawer height

* Use separate buttons for export control

* Add icons

* Fix list views

* Fix new items to review

* bottom padding on bottom sheets

* bottom padding on bottom sheets
2024-03-27 18:03:05 -05:00
Nicolas Mowen
559e6910c4 Improve restart timing (#10709) 2024-03-27 10:03:13 -05:00
Nicolas Mowen
d5989c91a8 Make deleting review items delete recordings as well (#10707)
* Make deleting review items delete recordings as well

* Fix wrong camera bug
2024-03-27 08:22:28 -05:00
Josh Hawkins
98a1e6ee22 fix draggable element pixel alignment (#10708) 2024-03-27 07:21:38 -06:00
Nicolas Mowen
d945e77443 Quick UI fixes (#10695)
* Quick fixes

* remove log
2024-03-26 18:54:00 -06:00
Nicolas Mowen
8f69edeb33 Add ability to export from recordings page (#10692)
* Add dialog to export recordings

* Add export dialog functionality

* Add ability to name exports

* Add ability to choose custom time range on timeline

* Add ability to choose custom time range on timeline

* Add custom time selection

* Make hot keys optional for typing name of export

* Tweaks to dialog

* Tweaks to dialog

* round corners more

* Final tweaks
2024-03-26 15:37:45 -06:00
Josh Hawkins
c82ed43c13 Timeline tweaks (#10693)
* make segment height static

* fix timeline overscrolling

* better alignment of motion timeline segments
2024-03-26 15:36:28 -06:00
Nicolas Mowen
1377d33e25 Redesign Recordings View (#10690)
* Use full width top bar

* Make each item in review filter group optional

* Remove export creation from export page

* Consolidate packages and fix opening recording from event

* Use common type for time range

* Move timeline to separate component

* Add events list view to recordings view

* Fix loading of images

* Fix incorrect labels

* use overlay state for selected timeline type

* Fix up for mobile view for now

* replace overlay state

* fix comparison

* remove unused
2024-03-26 15:03:58 -06:00
Josh Hawkins
1cd374d3ad add option to only scrollintoview initially (#10689) 2024-03-26 10:29:07 -06:00
Josh Hawkins
6fbd272acf Add tooltips for review item chips (#10685)
* tooltips for review item chips

* use flexbox instead of margins
2024-03-26 07:07:49 -06:00
Josh Hawkins
bc6b4c38b8 improve timeline scrolling with dynamic speed (#10677) 2024-03-25 20:29:42 -06:00
Nicolas Mowen
30d93e1d90 Improve refreshing of review items (#10675) 2024-03-25 21:25:06 -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
Josh Hawkins
71c7504de5 fix timeline upward scrolling limit (#10673) 2024-03-25 14:56:20 -06:00
Nicolas Mowen
6dd6ca5de5 Only allow visible cameras to go live on dashboard (#10671)
* Only show live cameras that are currently visible

* Add back black background

* fix
2024-03-25 15:56:13 -05:00
Josh Hawkins
51db63e42b Motion review changes (#10667)
* Add outlines in motion only mode

* fix playground
2024-03-25 10:19:55 -06:00
Nicolas Mowen
258cd5b6d7 Include which cameras detected motion during aggregated data (#10663) 2024-03-25 11:00:28 -05:00
Josh Hawkins
7b64091128 Motion review playback optimizations (#10659)
* handle motion timestamps with ranges

* check for overlaps when checking segment for events

* rename motion color vars to significant_motion for consistency

* safelist significant_motion

* rename vars for clarity and use timeout instead of interval
2024-03-24 20:37:44 -06:00
dependabot[bot]
24d29dd32c Bump dependabot/fetch-metadata from 1 to 2 (#10607)
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1 to 2.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](https://github.com/dependabot/fetch-metadata/compare/v1...v2)

---
updated-dependencies:
- dependency-name: dependabot/fetch-metadata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-24 19:55:15 -06:00
Josh Hawkins
37f60f7140 UI changes (#10651)
* Check if event time is in segment

* conditionally render minimap bounds for event segments
2024-03-24 11:39:28 -06:00
Nicolas Mowen
0fda7147be UI tweaks (#10645)
* Use green chip instead of dimming to show that item has been reviewed

* Redesign log page to use similar style to events

* Use icon only in mobile

* Remove unused
2024-03-24 12:23:39 -05:00
Josh Hawkins
f91dc37399 Add outline for alerts/detections in motion review (#10642) 2024-03-24 06:54:34 -06:00
Nicolas Mowen
d260c6926a Fix safari preview transition (#10638) 2024-03-23 18:47:25 -05:00
Nicolas Mowen
e3a7aa6b6c Smooth transitions between preview scrubbing (#10636)
* Use canvas to save video state before switching to smooth transitions between previews

* Smooth current hour as well
2024-03-23 17:11:35 -06:00
Nicolas Mowen
bb50b2b6f4 Respect motion only when playing back (#10632)
* Respect motion only when playing back motion

* Increase efficiency

* Fix import
2024-03-23 14:49:31 -05:00
Nicolas Mowen
c2a32bd6c1 Make saving preview frames on restart more reliable (#10630)
* increase priority of saving preview frames

* Improve checking for ended recording
2024-03-23 14:45:15 -05:00
Josh Hawkins
3a9607e59b Add relative movement by clicking on camera image for supported ptzs (#10629) 2024-03-23 10:53:33 -06:00
Nicolas Mowen
63bf986e08 Add ability to set playback speed on motion playback (#10628)
* Allow control of playback rate on motion page

* Apply playback rate
2024-03-23 11:24:57 -05:00
Nicolas Mowen
76a114a3cd Rewrite events communication to use zmq instead of mp.Queue (#10627)
* Move to using zmq for events updating

* Use event updater in manual events handler

* Formatting
2024-03-23 11:11:32 -05:00
Josh Hawkins
4159334520 option to show motion only on motion timeline (#10626) 2024-03-23 07:33:50 -06:00
Nicolas Mowen
8e1d18d06b Move keyboard controls to video controls (#10617) 2024-03-22 22:11:50 -05:00
Nicolas Mowen
4cf19458fe Only create docs dependabot PRs for docusaurus deps (#10593)
* Only create docs dependabot PRs for docusaurus deps

* Fix

* Update dependabot.yml
2024-03-22 20:39:30 -06:00
Nicolas Mowen
622dddd2c4 Motion playback (#10609)
* Move controls to separate component and make features configurable

* Allow playback on motion screen

* Simplify layout

* Fix seeking

* Fix playback

* fix preview scrubbing

* Fix player controls visibility

* Use opacity for both dark and light mode
2024-03-22 11:56:53 -05:00
Nicolas Mowen
83517f59b4 WebUI Fixes (#10608)
* Fix camera with -

* Fix not playing player after making slight adjustment

* Fix hovering getting stuck
2024-03-22 09:31:20 -05:00
Nicolas Mowen
df6c3b14dd Make stationary detection more resilient to inaccurate boxes (#10597) 2024-03-21 17:44:26 -05:00
Nicolas Mowen
e5595ebb2f Update docs deps (#10591)
* remove deprecated caution in facor of warning

* Update last dep
2024-03-21 12:52:45 -05:00
Josh Hawkins
0ac7aaabe3 Timeline minimap and scrolling changes (#10589)
* add function to get visible timeline duration

* Don't show minimap when minimap bounds exceed timeline area

* when minimap is hidden, only scroll timeline when needed

* observe only when not showing minimap

* no need to duplicate observer

* fix out of order param

* timeline utils hook props

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-03-21 11:49:04 -06:00
Nicolas Mowen
973275e163 Update rest of web deps (#10588)
* Update easy deps

* Update shadcn deps

* Update date functions and fix breaking change

* Remove unused
2024-03-21 09:26:13 -05:00
Josh Hawkins
4040191101 fixes and changes (#10587) 2024-03-21 08:00:04 -06:00
Nicolas Mowen
865c26ff18 Update recordings view (#10585)
* Update recordings view

* Fix opening recordings view from gif
2024-03-21 08:43:37 -05:00
Josh Hawkins
f113acee33 Summary timeline (#10569)
* implement summary timeline

* implement summary timeline

* merge dev

* conditionally attach listeners only when dragging

* set up listeners with a ref
2024-03-20 20:56:15 -06:00
Nicolas Mowen
c8fd23caa1 Update web deps (#10564) 2024-03-20 20:56:56 -05:00
Nicolas Mowen
8babe57d63 UI cleanup (#10567)
* Fix selected items text

* Use action icons from design and fix spacing

* Fix icons for live grid

* Fix viewed select api

* Setup default theme as system

* Make conig editor respect system theme
2024-03-20 20:46:45 -05:00
Nicolas Mowen
5af083cd8a Web deps again (#10562)
* Bump react-icons from 4.12.0 to 5.0.1 in /web

Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.12.0 to 5.0.1.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.12.0...v5.0.1)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update jsdom

* Update drawer component

* Bump eslint

* Update more deps

* Fix lint

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 07:36:58 -06:00
Nicolas Mowen
f474bc4037 Always check previews when refocusing the page (#10546) 2024-03-19 22:16:22 -05:00
Nicolas Mowen
741f0a5115 Update Web deps (#10544)
* Bump react-icons from 4.12.0 to 5.0.1 in /web

Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.12.0 to 5.0.1.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.12.0...v5.0.1)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update jsdom

* Update drawer component

* Bump eslint

* Update more deps

* Fix lint

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 22:06:00 -05:00
Nicolas Mowen
8589ef50a6 Ability to configure loitering time in a zone (#10543)
* Add loitering config

* Configure loitering

* simplify

* Add docs

* grammar

* Formatting
2024-03-19 15:58:04 -05:00
Nicolas Mowen
ab6bac1d2c Clean up selected data for recording (#10537) 2024-03-19 15:56:38 -05:00
Nicolas Mowen
f835e86df1 Don't use apple icon for android pwa (#10535)
* Don't use apple icon for android

* Fix dimensions

* fix icon name
2024-03-19 08:41:24 -05:00
Nicolas Mowen
ccdf9a2f0a Fix preview getting wrong update time (#10534)
* Fix preview getting wrong update time

* remove dead logic

* Cleanup

* Fix case where multiple previews play at the same time

* Fix typing
2024-03-19 08:34:49 -05:00
itsmesid
13b4e5ff41 Add C520WS to ONVIF PTZ camera recommendations. (#10466)
* Add C520WS to onvif supported camera list

* Spelling corrections

* Tapo C210 PTZ is working in version 1.3.11
2024-03-19 06:55:04 -05:00
Alex Yao
5c3925ab50 Add snapshot-clean.png API endpoint (#10510)
* Add snapshot-clean.png API endpoint

* fix lint

* enable on inprogress event
2024-03-19 06:54:25 -05:00
Josh Hawkins
3bd0ad63b4 ensure div by zero is replaced with 0 after normalization (#10528) 2024-03-18 21:21:09 -06:00
Josh Hawkins
d249e5b27f Timeline fixes and export handles (#10522)
* select an export range from timeline

* height tweak
2024-03-18 14:58:54 -06:00
Nicolas Mowen
880bae1eb2 Fix android/chrome seeking on previews (#10512) 2024-03-17 18:53:47 -06:00
Nicolas Mowen
bb6f153e2e Use preview quality setting to set image height and webp quality (#10502)
* Use preview quality setting to set image height and webp quality

* Increase keyframe interval as well with higher quality

* Don't use dynamic height
2024-03-17 18:30:14 -05:00
Josh Hawkins
e4d0e222e3 move handlebar timestamp outside of timeline on mobile (#10501) 2024-03-17 07:28:50 -06:00
Nicolas Mowen
4a360d8142 Fix thumbnails for panoramic cameras (#10499) 2024-03-17 07:31:02 -05:00
Nicolas Mowen
4e7808ac0c Normalize motion data in chunks (#10497) 2024-03-17 07:30:39 -05:00
Nicolas Mowen
1983de6528 Consolidate recordings view into one (#10496) 2024-03-17 07:30:19 -05:00
Nicolas Mowen
4e8600a0ef Maintain existing overlay state when setting hash (#10495) 2024-03-17 07:29:59 -05:00
Nicolas Mowen
cf6ef84271 Mark items as reviewed when manually seeking (#10494) 2024-03-17 07:29:41 -05:00
Josh Hawkins
89bd3867a9 Make all motion segments clickable (#10488) 2024-03-15 19:26:13 -06:00
Nicolas Mowen
c14f3c3902 Fix frigate+ submit and recordings layouts for portrait cameras (#10486)
* Fix plus submission dialog

* Different layout for portrait recordings

* Fix now preview found pulsing

* Fix bug with uneven milliseconds

* Improve consistency of video scaling
2024-03-15 18:28:57 -05:00
Nicolas Mowen
64763293a2 Add birdseye live view (#10485)
* Add birdseye viewer and make it linkable

* Add on click from main dashboard
2024-03-15 18:28:32 -05:00
Nicolas Mowen
657fab2787 Save motion as motion box count (#10484) 2024-03-15 13:13:40 -06:00
Nicolas Mowen
380b15b286 WebUI Fixes (#10481)
* Update previews on the hour

* Allow tap to toggle controls so zooming still works

* Use hash location insteaad of state for live camera view

* Add typing
2024-03-15 13:46:17 -05:00
Nicolas Mowen
93260f6cfd Add region count to database and use for motion activity (#10480)
* Add region count to database and use for motion activity

* Fix test
2024-03-15 09:29:22 -06:00
Josh Hawkins
c93b186eda Fix switching camera group bug (#10478)
* give default group a name

* use "default" as default value

* optional param

* fix string

* clean up
2024-03-15 08:59:41 -06:00
Nicolas Mowen
df0291db5c Fix zoom scaling for live view (#10479) 2024-03-15 09:57:58 -05:00
Nicolas Mowen
f5a26c5962 Add ability to zoom in to live and recordings views (#10475)
* Make live view zoomable

* Add zooming to full recordings
2024-03-15 07:03:14 -06:00
Nicolas Mowen
c66f552280 Improve Recordings loading (#10462)
* Show skeleton until video players finishes loading

* Clean up android logic

* Ensure mobile view video is consistent

* Cleanup

* Only show when not scrubbing

* Don't use loading

* Start preview at correct time too

* Fix react race condition

* Be wait for seek to show video player
2024-03-15 07:52:38 -05:00
Nicolas Mowen
d882cb0f63 Add skeleton for loading exports and improve spacing on bottom sheet (#10463)
* Add skeleton for loading exports and improve spacing on bottom sheet

* Hide non object frigate plus items
2024-03-15 05:59:03 -06:00
Nicolas Mowen
8d85a69203 Update UI and then run api call (#10460) 2024-03-14 15:49:03 -05:00
Nicolas Mowen
61c4ed9f12 Rework motion data calculation (#10459)
* Store motion data as a percent of total area

* Exclude historical data

* Use max so cameras without motion don't invlidate good data:
2024-03-14 13:57:14 -06:00
Josh Hawkins
6a02e65fc2 Use Inter webfont instead of ttf (#10456) 2024-03-14 09:50:06 -06:00
Josh Hawkins
98977f1ded dim motion segments for motion during alerts and detections (#10454) 2024-03-14 09:35:13 -06:00
Nicolas Mowen
45a318dfed Reduce outliers in motion data to ensure consistent scaling (#10452) 2024-03-14 09:31:33 -05:00
Josh Hawkins
39a29d148e Recording scrubbing fixes (#10439)
* use a single source of truth for scrubbing

* simplify controller state

* Cleanup scrubbing logic

* Apply same logic to mobile

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-03-14 08:28:06 -06:00
Nicolas Mowen
2decdeadb4 Persist selected camera group for live (#10448)
* Persist camera group selected

* Cleanup
2024-03-14 08:27:27 -06:00
Blake Blackshear
a660e3ae27 use credentials for webmanifest (#10447) 2024-03-14 06:36:56 -06:00
Nicolas Mowen
8937e3fd59 Mute video by default and allow control of volume (#10435)
* Mute video by default and allow control of volume

* Adjust volume behavior

* Adjust volume behavior

* Simplify more
2024-03-13 18:13:52 -05:00
Nicolas Mowen
c88a263a23 Cleanup gifs (#10434) 2024-03-13 17:37:15 -05:00
Nicolas Mowen
f9ed082e35 Use react lazy to break js files into smaller chunks & remove videojs in favor of hls.js (#10431)
* Use dynamic imports to reduce initial load times

Remove videojs

* Convert to using hls.js instead of videojs

* Improve mobile controls experience

* Cleanup

* Ensure playback rate stays teh same when source changes

* Use webp for latest camera image

* Switch to hls.js on error

* Don't rerun error if hls already tried

* Fix error checking

* also check for media decode error to fallback to HLS

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-03-13 15:24:24 -05:00
Nicolas Mowen
0e8350ea7f Fix jumping to segment in recordings view (#10424)
* Fix skeletons showing incorrectly

* Handle clicking segment from different time range
2024-03-13 09:05:01 -05:00
Nicolas Mowen
52ce6190ae Fix two way talk starting webrtc session (#10422)
* Fix two way talk starting webrtc session

* Remove logs
2024-03-13 09:04:11 -05:00
Josh Hawkins
79ca599ace Fix jsmpeg player component (#10425)
* fix jsmpeg component

* preserve aspect ratio

* remove forcing of jsmpeg

* full height only
2024-03-13 08:00:37 -06:00
Nicolas Mowen
9d01a7dc74 Fix gif layout (#10421) 2024-03-13 08:58:46 -05:00
Nicolas Mowen
b8e472643d Optimize web config to be installed as PWA (#10405)
* Update values and add site manifest

* Use appropriate icon types

* Add purpose to all

* Adjust dark theme color

* Remove unused
2024-03-12 19:58:29 -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
92255f771b Add micropohone button for two way talk (#10408) 2024-03-12 18:19:02 -05:00
Josh Hawkins
9e10b914c9 Add ability to add legacy birdseye to camera groups (#10404)
* initial try

* add birdseye

* remove vite

* cleanup

* memoize

* remove console

* ensure birdseye is actually enabled in config

* birdseye first in select list and fix jsmpeg player size
2024-03-12 13:53:01 -06:00
Josh Hawkins
dce2e9b366 filter review items and motion to be main camera in recordings view only (#10403) 2024-03-12 11:08:31 -06:00
Nicolas Mowen
8c0275fe2f Add special casing for android preview scrubbing (#10398)
* Add special casing for android scrubbing

* Fix motion data
2024-03-12 09:24:18 -06:00
Nicolas Mowen
483a95b06b Override default player controls (#10401)
* Override default player controls

* Improve mouse behavior
2024-03-12 09:24:07 -06:00
Josh Hawkins
a2b0ca07cc UI tweaks (#10402)
* add minor ticks to timeline

* don't display motion events on veritcal bars on motion timeline

* color tweaks and spacing on config editor

* pad start and end of timeline to ensure handlebar is always visible
2024-03-12 09:23:54 -06:00
Nicolas Mowen
579a7c8900 Fix preview update (#10388) 2024-03-11 21:42:13 -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
Josh Hawkins
fa22f01f39 use flexbox for recordings view (#10385) 2024-03-11 17:07:56 -05:00
Nicolas Mowen
8d4b9bc7ed Indicate on calendar which days have unreviewed activity (#10381) 2024-03-11 10:14:41 -05:00
Nicolas Mowen
3515361320 refactor motion calculation (#10380)
* refactor motion calculation

* Use float
2024-03-11 08:53:13 -05:00
Nicolas Mowen
838ef636f8 Layout tweaks (#10365)
* Cleanup review items

* Fix spacing

* Fix -1 text

* Cleanup scroll

* Show activity indicator when review items are null

* Show no preview text when not found

* Add padding to buttons

* Simplify comparisons
2024-03-11 08:05:44 -05:00
Josh Hawkins
cac5bccbe7 Fix segments on motion review (#10370)
* fix segments on motion review

* remove unneeded data attribute
2024-03-11 06:56:36 -06:00
Daniel Harrelson
359e45a748 Update live.md (#10366)
Incorrectly stated tailscale used 100.0.0.0/8 CIDR block.

Correct CIDR block for tailscale in 100.64.0.0/10

RFC6598
2024-03-11 07:13:07 -05:00
Nicolas Mowen
020b09216b Fix image cleanup (#10364) 2024-03-10 14:18:44 -04:00
Nicolas Mowen
ee239744d8 Redesign exports page (#10359)
* Redesign exports page

* Cleanup

* fix overhange
2024-03-10 07:25:16 -06:00
Josh Hawkins
70825bc938 rename vars and change which div is absolutely positioned (#10358) 2024-03-10 07:23:36 -06:00
Nicolas Mowen
efaa95b742 Fix dst offset calculation (#10357) 2024-03-10 08:17:48 -05:00
Nicolas Mowen
b910db4f05 Fix handling of recordings and switching cameras (#10351)
* Fix handling of recordings and switching cameras

* mobile switch

* Cleanup

* Cleanup autoplay

* Remove vite
2024-03-10 08:17:09 -05:00
Kyler
e46b020395 Fix: rename docker images and tags in Jetson configuration docs (#10263)
* rename docker image tags in configuration docs for jetson, add correct image in sample codeblocks, fix typo in 'come'

The image names/tags for Jetson instructions were incorrect. I have updated the docs to point to the correct images.

* revert jetson docs phrasing to properly refer to Jetpack docker images
2024-03-09 15:01:09 +00:00
Josh Hawkins
9fc1286568 Don't check autotracking onvif requirements for users with autotracking disabled (#10350)
* separate autotracking onvif needs from standard ptz control setup

* try/except around GetServiceCapabilities call
2024-03-09 08:48:31 -06:00
Nicolas Mowen
62d13024f6 Adjustments and fixes (#10346)
* Increase duration of alerts and detections

* Add key

* Fix cancel button

* Fix motion review when switching days

* Add reset buttons and make calendar apply immediately

* Adjust apis for motion and audio activity

* Write review thumbs as webp and reduce size
2024-03-09 07:08:06 -07:00
Nicolas Mowen
eeb2187b97 Separate extra amd64 builds (#10319) 2024-03-09 06:04:57 -06:00
Nicolas Mowen
a50e955b3e Add job to delete old images (#10332) 2024-03-09 06:04:17 -06:00
Tacheev Alexey
034aaa7ef7 Fixed incorrect label link (#10342) 2024-03-09 06:03:40 -06:00
Nicolas Mowen
c721e7cfa9 fix preview comparison (#10338) 2024-03-08 17:45:42 -06:00
Nicolas Mowen
f7122a766e Ensure at least 2 frames are saved per minute in preview video (#10337)
* simplify

* Formatting
2024-03-08 17:24:47 -06:00
Nicolas Mowen
086eb37ece Cleanup to use new preview video player in dynamic player (#10335)
* Cleanup to use new preview video player

* Make it so motion persists the selected time

* Don't jump when player first starts

* Get autoplay working right
2024-03-08 17:24:12 -06:00
Josh Hawkins
05a66ce90d Timeline handlebar tweaks (#10336)
* initial offset click for desktop only

* align start timeline and update pixel math
2024-03-08 15:49:10 -07:00
Nicolas Mowen
3d539c93eb Fix motion review (#10329)
* Break preview only video player out

* Simplify

* Load after current preview changes

* Clear out waiting for seek state

* Start at correct time of hour

* Fix layout for tall video
2024-03-08 11:56:00 -06:00
Nicolas Mowen
ea5cb4fd8b Rework mobile drawers to have a max height (#10330) 2024-03-08 11:14:58 -06:00
Josh Hawkins
cb3045b424 Handlebar dragging fix (#10333)
* account for initial click position on handlebar when dragging

* fix wrong start time in playground
2024-03-08 09:13:42 -07:00
Josh Hawkins
dfab850b61 Better segment clicking (#10321)
* better segment clicking on motion segments

* move handlebar on click when handlebar is showing

* only scroll handlebar if needed
2024-03-07 21:02:29 -07:00
Nicolas Mowen
507c6afa2c Add filters to plus page and fix layout (#10320) 2024-03-07 18:32:26 -06:00
Nicolas Mowen
90a40d2509 Fix motion and recording views (#10318)
* Fix switching between different hours

* Simplify book keeping of different time ranges

* Rewrite player to handle changing of previews outside of video player

* Simplify switching between cameras

* Fix previews causing cameras to not load

* Simplify listeners

* Always clear existing listener
2024-03-07 18:31:43 -06:00
Nicolas Mowen
fc6d6a4e9a Fix layout shifting (#10313)
* Fix layout shifting

* Change value for current data

* Fix motion scrubbing lockout
2024-03-07 10:11:24 -06:00
Nicolas Mowen
8776cdfd5b Tweaks fixes (#10311)
* Save numbers as int instead of string

* Fix hover logic

* Fix delay for new alerts

* Fixup dialog and marking item as uploaded

* Make preview progress larger and easier to grab

* Allow hovering to control preview on desktop
2024-03-07 08:34:11 -06:00
Nicolas Mowen
b2931bcaa9 Remove paging (#10310)
* Remove paging and use reviewed as an internal filter

* Fix new reviews not going away
2024-03-07 08:33:36 -06:00
Nate Meyer
8bfc0c98dc Set Compute Level for CI build (#10276) 2024-03-07 05:59:33 -06:00
Nicolas Mowen
ccb5e05e3e Cleanup overlay state with types and use overlay for severity (#10299) 2024-03-06 19:17:35 -06:00
Nicolas Mowen
3d90f50d84 Ability to add, edit, and delete camera groups in the UI (#10296)
* Add dialog for creating new camera group

* Support adding of camera groups and dynamically updating the config

* Support deleting and edit existing camera groups

* Don't show separator if user has no groups

* Formatting

* fix background
2024-03-06 19:15:50 -06:00
Josh Hawkins
90db27e3c8 Scrolling fixes and motion timeline changes (#10295)
* scrolling updates

* only scroll by 1 segment on desktop
2024-03-06 14:35:10 -07:00
Nicolas Mowen
fb81e44283 UI Tweaks (#10289)
* Use different cursor for dragging preview

* Improve filters UI and add audio labels

* Use switch and adjust colors

* Disable chromecast button and remove dimming

* Change marked reviewed text
2024-03-06 14:49:51 -06:00
Nicolas Mowen
55077a0bc9 Add page for submitting to frigate+ (#10273)
* Add screen for submitting to frigate+

* Fix sizing
2024-03-06 06:24:21 -06:00
Nicolas Mowen
68ed18d3f4 Reviewed buttons (#10271)
* mark items as reviewed when they are opened

* Update api to use json and add button to mark all as reviewed

* fix api so last24 hours has its own review summary

* fix sidebar spacing

* formatting

* Bug fixes

* Make motion activity respect filters
2024-03-05 18:39:37 -06:00
Josh Hawkins
b5edcd2fae better timeline scrolling behavior when dragging (#10269) 2024-03-05 14:53:49 -07:00
Nicolas Mowen
ac9cd72f28 Organize api docs and add new review and preview apis (#10268)
* reorganize api docs into sections

* Add current apis to docs
2024-03-05 15:33:39 -06:00
Josh Hawkins
ed99be0856 Live camera aspect ratio fixes (#10266)
* dynamically manage aspect ratio

* full size

* always use camera aspect ratio for mobile

* no need for different handling for pano cams

* don't set aspect ratio on fullscreen
2024-03-05 13:19:56 -07:00
Nicolas Mowen
7be2923d2d Save previews when restarting (#10261) 2024-03-05 13:56:38 -06:00
Nicolas Mowen
a174d0000f Fix combined build (#10264) 2024-03-05 13:56:12 -06:00
Nicolas Mowen
9e8a42ca0e Motion timeline data (#10245)
* Refactor activity api to send motion and audio data

* Prepare for using motion data timeline

* Get working

* reduce to 0

* fix

* Formatting

* fix typing

* add motion data to timelines and allow motion cameas to be selectable

* Fix tests

* cleanup

* Fix not loading preview when changing hours
2024-03-05 13:55:44 -06:00
Nicolas Mowen
a174d82eb9 Disable hvc check (#10260) 2024-03-05 14:11:08 +00:00
Blake Blackshear
43c623be25 upgrade deps (#10257)
* upgrade web deps

* docs deps

* actions deps
2024-03-05 07:00:27 -06:00
Nate Meyer
390403d957 Pass computes value to libyolo_layer build (#10210) 2024-03-05 06:04:13 -06:00
Nicolas Mowen
30b68e59f2 Multi cam recording view (#10244)
* Split recording view for mobile and desktop and get desktop working

* Get stuff working well

* Handle onclick for video

* Fix camera grid

* set onclick
2024-03-05 06:03:10 -06:00
Nicolas Mowen
bbdb8d36ca Improve review data (#10246)
* Adjust remaining summary items when items are marked as reviewed

* Add api for filtering and show correct number when filtering

* Fix default group config

* Update review summary when data is reloaded

* Fix quick items not getting reviewed
2024-03-05 06:02:34 -06:00
Nicolas Mowen
b4b2162ada Camera groups (#10223)
* Add camera group config

* Add saving of camera group selection

* Implement camera groups in config and live view

* Fix warnings

* Add tooltips to camera group items on desktop

* Add camera groups to the filters for events

* Fix tooltips and group selection

* Cleanup
2024-03-04 16:18:30 -07:00
Josh Hawkins
38e76666e7 Motion timeline updates (#10242)
* adjust segment math

* simplify interp and fix math

* fix math and update dependency

* push debug

* Revert "push debug"

This reverts commit 07c171b341.
2024-03-04 15:18:27 -07:00
Josh Hawkins
282c92c9c8 Motion review timeline (#10235)
* initial motion and audio timeline with dummy data

* initial motion and audio timeline with dummy data
2024-03-04 09:42:51 -07:00
Josh Hawkins
0f168dfc1a fix overflowing review timeline on mobile (#10231) 2024-03-04 06:35:10 -07:00
Josh Hawkins
85ce672b53 add tooltip portal (#10233) 2024-03-04 06:34:23 -07:00
Nicolas Mowen
c2a537ce22 Motion review (#10221)
* Break detection grid into separate function

* Implement backward preview jump and jump lockout

* ensure lockout is engaged when starting

* Add preview only mode to make loading more efficeint

* remove scrollbar and match gaps/margins with live view

* Rewrite dynamic player to use html video for preview and fix grid gaps

* consistent check for aspect ratio for tall cameras

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-03-03 22:21:30 -06:00
Nicolas Mowen
d3f9fd1a60 Review summary (#10196)
* Create review summary api to get information about reviewed and unreviewed events on each day

* remove unused

* Fix tests

* Format tests

* Fix
2024-03-03 18:19:02 -06:00
Nicolas Mowen
fa0f509e18 Fix case where model path is set but not labelmap path (#10215) 2024-03-03 18:17:56 -06:00
Nicolas Mowen
1441a83151 Fix resolution of timeline dragging (#10219) 2024-03-03 18:17:24 -06:00
Josh Hawkins
a515697e08 Use touch events for mobile review timeline (#10212)
* mobile touch events

* rebase

* fix scroll mode

* clean up deps and remove unneeded useeffect

* remove vite
2024-03-03 12:50:38 -07:00
Josh Hawkins
c74eb75554 Update camera activity indicator (#10208)
* new indicator

* create indicators directory and update imports

* create indicators directory and update imports

* remove vite
2024-03-03 09:32:47 -07:00
Josh Hawkins
312dc95156 More intelligent timeline scrolling (#10209)
* more intelligent timeline scrolling

* keep as div
2024-03-03 09:32:35 -07:00
Nicolas Mowen
8645545ef4 Add support for live fullscreen mode (#10191)
* Fix timeline colors

* Add support for full screen mode

* Add support for live view full screen

* Cleanup

* Add border to sidebar and statusbar
2024-03-02 21:59:50 -06: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
dependabot[bot]
0022c1aad0 Bump @types/node from 20.11.19 to 20.11.24 in /web (#10168)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.11.19 to 20.11.24.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-02 13:37:12 -07:00
dependabot[bot]
d008dd0e27 Bump autoprefixer from 10.4.16 to 10.4.17 in /web (#10129)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.16 to 10.4.17.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.16...10.4.17)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-02 13:36:17 -07:00
dependabot[bot]
41da8e8b25 Bump react-router-dom from 6.20.1 to 6.22.2 in /web (#10148)
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.20.1 to 6.22.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-02 13:35:34 -07:00
Nicolas Mowen
837f30cbf0 Update frontend colors to match style guide (#10188)
* Get main background colors going

* Finish sidebar

* Get light mode colors working

* Adjust icons

* Adjust icons

* remove unused

* Fix mobile colors
2024-03-02 09:00:50 -06:00
vanseforge
64f142a5dd Endpoint for last clip (#9710)
* Added endpoint for last clip

* Update frigate/http.py

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

* Update docs/docs/integrations/api.md

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

* Update frigate/http.py

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

* Update frigate/http.py

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

* Formatted with ruff

---------

Co-authored-by: Vader <info@vanse.de>
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-03-02 08:36:12 -06:00
Nicolas Mowen
5028a9632e Individual live view (#10178)
* Get live camera view working

* Get ptz working

* Add button for ptz presets

* Add camera feature buttons

* Add button for camera audio

* Cleanup

* Cleanup mobile live

* Only use landscape check on mobile
2024-03-01 18:43:02 -06:00
Nicolas Mowen
a67e970fca Implement scroll lock for previews (#10180)
* Implement scroll lock

* Fix seekbar not working
2024-03-01 17:34:41 -07:00
Nicolas Mowen
ebf34ce378 Revamp multiselect (#10172)
* Just use multiselect for mobile

* Update revamped design and add export to values

* Get actions looking good on mobile and desktop
2024-03-01 11:56:45 -06:00
Josh Hawkins
a49e1bbc64 Timeline handlebar changes (#10170)
* auto scrolling handlebar with preview time

* tablets can show 2 columns on the event view grid

* font sizes

* hide minimap when previewing
2024-03-01 08:36:13 -07:00
Nicolas Mowen
49530dc2e4 Handle case where review spans across two hours (#10169) 2024-03-01 07:19:26 -07:00
Nicolas Mowen
96bf06a7d8 update paho requirement (#10166) 2024-03-01 05:50:57 -07:00
Nicolas Mowen
63d8c3662a Add multiselect and batch actions to review items (#10161)
* Implement context menu for batch operations and implement apis

* reduce preview calculations on rerenders

* Add button to mark above items as reviewed

* Use context menu for mark as reviewed

* Cleanup
2024-02-29 19:53:29 -07:00
Nicolas Mowen
ea9316e770 Update and migrate mqtt to v2 (#10160) 2024-03-01 00:59:47 +00:00
Nicolas Mowen
dcc0886305 Fix tooltips (#10154)
* use portal for tooltips

* Fix tooltips for desktop and mobile nav bars

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-03-01 00:59:26 +00:00
Nicolas Mowen
e7f8bca2c3 Preview player upgrades (#10152)
* Implement manual slider control for previews

* Automatically end preview video on mobile

* Show current time on timeline

* remove z height
2024-03-01 00:58:50 +00: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
Andrew Jackson
a1424bad6c Fix permission error accessing /run/secrets (#10097)
Checks that the service has read access to the directory before trying
to read it
2024-02-28 17:18:34 -06:00
Nicolas Mowen
3bf2a496e1 Fix linter and fix lint issues (#10141) 2024-02-28 16:23:56 -06:00
Nicolas Mowen
b6ef1e4330 Fix reload spamming (#10139) 2024-02-28 14:25:02 -06:00
Nicolas Mowen
d416ae86d7 Fix tall cameras not fitting in current hour frame (#10136) 2024-02-28 14:24:49 -06:00
Nicolas Mowen
b5becad63f Use alerts for live page gifs and allow opening recordings directly from them (#10135)
* Use alerts for gifs at top instead of events

* Add ability to open to recordings from event gif

* cleanup

* Formatting

* Add padding
2024-02-28 14:24:34 -06:00
Josh Hawkins
dce4e3fb0b Make full recordings view usable on mobile (#10134)
* adapt timeline to mobile

* remove unused

* tweaks

* pointer cursor on segments

* make full recordings view look better on mobile

* explicitly set timeline width for md

* button positioning
2024-02-28 08:57:56 -07:00
Nicolas Mowen
a978adc5a9 Fix reload (#10109)
* Fix reloading data

* Don't show new review data when not looking at last 24 hours

* Fix refresh button and no items text

* Cleanup
2024-02-28 08:16:32 -06:00
Nicolas Mowen
8072ce25c6 Use persistence for live layout (#10114)
* Use persistence for live layout

* Fix typing

* Fix persistence typing

* remove type

* More type fixing
2024-02-28 08:16:16 -06:00
Josh Hawkins
485057abc1 Adapt review timeline for mobile devices (#10120)
* adapt timeline to mobile

* remove unused

* tweaks

* pointer cursor on segments
2024-02-28 06:18:08 -07:00
Sjoerd Oostdijck
8034613beb Update cameras.md add tapo C225 camera (#10101) 2024-02-28 03:41:56 +00:00
Andrew Reiter
5edaaceaf2 Fix iOS playback of H.265 clips (#10105)
* Fix iOS playback of H.265 clips

* CI
2024-02-28 03:41:36 +00:00
Nicolas Mowen
9893741990 Update tailwind css and cleanup classNames (#10107)
* Bump tailwindcss from 3.3.5 to 3.4.1 in /web

Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.5 to 3.4.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.5...v3.4.1)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tailwind css and cleanup

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 03:40:57 +00:00
Nicolas Mowen
7fa9a3df42 Update web deps (#10108)
* Bump vitest from 1.0.0 to 1.3.1 in /web

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.0.0 to 1.3.1.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.3.1/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump clsx from 2.0.0 to 2.1.0 in /web

Bumps [clsx](https://github.com/lukeed/clsx) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/lukeed/clsx/releases)
- [Commits](https://github.com/lukeed/clsx/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: clsx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @vitejs/plugin-react-swc from 3.5.0 to 3.6.0 in /web

Bumps [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react-swc/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react-swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react-swc/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react-swc"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump react-use-websocket from 4.5.0 to 4.7.0 in /web

Bumps [react-use-websocket](https://github.com/robtaussig/react-use-websocket) from 4.5.0 to 4.7.0.
- [Release notes](https://github.com/robtaussig/react-use-websocket/releases)
- [Commits](https://github.com/robtaussig/react-use-websocket/commits)

---
updated-dependencies:
- dependency-name: react-use-websocket
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 03:40:08 +00:00
Nicolas Mowen
3fed6a0ab3 Implement swipe gesture instead of autoplay for mobile (#10110)
* Implement swipe gesture instead of autoplay

* Cleanup
2024-02-28 03:39:06 +00:00
Nicolas Mowen
fd24007618 Revamp mobile UI (#10103)
* Simplify nav components

* Allow ability to choose live layout on mobile

* Combine event views

* Undo vite

* Fix autoplay

* Remove import

* Show filters on mobile view

* Spacing

* Don't separate properties
2024-02-27 15:39:05 -06:00
Josh Hawkins
622e9741c0 Review timeline improvements (#10102)
* make event bars clickable

* outline and scroll when segment is clicked

* match outline colors to event type

* hover thumbnails

* make event bars clickable

* outline and scroll when segment is clicked

* match outline colors to event type

* hover thumbnails

* fix merge from rebase

* remove minimap opacity classes

* live player outline colors

* safelist shadow classes
2024-02-27 12:41:26 -07:00
Nicolas Mowen
8663fbba01 Fix autoplay (#10099) 2024-02-27 12:24:15 -06:00
Nicolas Mowen
d94710171d Don't lazy load on iOS and don't use skeleton (#10096)
* Don't lazy load on iOS and don't use skeleton

* Cleanup banner

* All safari
2024-02-27 10:55:14 -06:00
Nicolas Mowen
21defbea9d Rewrite websocket to use tracked state instead of context (#10091)
* Rewrite websocket to use tracked state instead of context

* Cleanup

* Use component for updating items

* Fix scroll update

* Don't save vite
2024-02-27 09:05:28 -07:00
Nicolas Mowen
f95ce913b1 Publish finished reviews to mqtt / ws and use that for source of update banner (#10072)
* Add reviews to frontend

* Update ready when new review is saved

* fix

* Formatting
2024-02-27 06:37:39 -07:00
Florisz
57cddc5372 Update installation.md (#10020)
* Update installation.md

According to the v13 release the config.yml mapping needs to be the entire directory and not only the config.yml file

* Update docs/docs/frigate/installation.md

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2024-02-27 06:08:30 -07:00
Andrew Reiter
00c2caa1b7 Fix erroneous warning (#10070)
Customizing only the detector model path results in the warning
"Customizing more than a detector model path is unsupported." because
`{} is not {}` evaluates to True
2024-02-27 06:48:56 -06:00
JC
7eb89ca67c Add missing frame_time argument to ObjectTracker.match_and_update() (#10079)
And some little type hints
2024-02-27 06:48:01 -06:00
Nicolas Mowen
849f343b25 Reduce rerenders on some components (#10068)
* Remove direct callback

* don't rerender for callback

* Move websocket to top level events

* Be smarter about updating timeago

* Cleanup
2024-02-26 16:08:55 -06:00
Nicolas Mowen
e9076c0213 Show correct time range when time filter is active (#10066)
* Show correct time range when time filter is active

* remove console
2024-02-26 14:47:44 -06:00
Nicolas Mowen
20578de9d0 Conditionally show no items (#10065)
* Conditionally show no items

* Clean up view
2024-02-26 14:47:20 -06:00
Nicolas Mowen
3c5ed474af Add message when there are no items to review (#10064) 2024-02-26 12:00:49 -07:00
Josh Hawkins
93bd9ded88 Faster skeleton with refs (#10063)
* don't load metadata until image has loaded

* correct class name and remove lazy loading pkg

* try refs

* hook

* don't load metadata until image has loaded

* correct class name and remove lazy loading pkg

* try refs

* hook
2024-02-26 11:34:52 -07:00
Nicolas Mowen
1dd904d89a Don't show minimap when view is not scrollable (#10062) 2024-02-26 12:31:21 -06:00
Nicolas Mowen
76ad91f9b5 remove vis timeline (#10059)
* remove vis timeline

* Cleanup playground

* Cleanup

* fix
2024-02-26 12:00:53 -06:00
Josh Hawkins
da04dc0918 Skeleton fixes (#10060)
* don't load metadata until image has loaded

* correct class name and remove lazy loading pkg
2024-02-26 10:55:44 -07:00
Nicolas Mowen
2fd7fe7928 Update web deps (#10058)
* Bump follow-redirects from 1.15.3 to 1.15.5 in /web

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.5.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.5)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump prettier from 3.1.0 to 3.2.5 in /web

Bumps [prettier](https://github.com/prettier/prettier) from 3.1.0 to 3.2.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.1.0...3.2.5)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump monaco-yaml from 4.0.4 to 5.1.1 in /web

Bumps [monaco-yaml](https://github.com/remcohaszing/monaco-yaml) from 4.0.4 to 5.1.1.
- [Release notes](https://github.com/remcohaszing/monaco-yaml/releases)
- [Commits](https://github.com/remcohaszing/monaco-yaml/compare/v4.0.4...v5.1.1)

---
updated-dependencies:
- dependency-name: monaco-yaml
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump swr from 2.2.4 to 2.2.5 in /web

Bumps [swr](https://github.com/vercel/swr) from 2.2.4 to 2.2.5.
- [Release notes](https://github.com/vercel/swr/releases)
- [Commits](https://github.com/vercel/swr/compare/v2.2.4...v2.2.5)

---
updated-dependencies:
- dependency-name: swr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump msw from 2.0.10 to 2.2.1 in /web

Bumps [msw](https://github.com/mswjs/msw) from 2.0.10 to 2.2.1.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.0.10...v2.2.1)

---
updated-dependencies:
- dependency-name: msw
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump vite from 5.0.5 to 5.1.4 in /web

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.5 to 5.1.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-26 10:21:21 -06:00
Josh Hawkins
8d96111184 Use skeleton for review image loading (#10040)
* don't show chips and date when image is loading

* add skeleton and change observer threshold

* remove debug

* use skeleton for live view too

* old activity indicator looks better on live

* fix gradients and lazy load with skeleton

* fading effects
2024-02-26 09:07:54 -07:00
Nicolas Mowen
4061be602d Automatically skip to next preview / clip when watching full recordings (#10055)
* Fix useEffect and try to load next clip for preview

* Get scrubbing to next preview working

* Handle skipping to next preview
2024-02-26 10:04:56 -06:00
Nicolas Mowen
41194966c7 Delete web-old directory (#10053) 2024-02-26 08:48:04 -07:00
Nicolas Mowen
3f1bd891e4 Use a rolling average of iou to determine if an object is no longer stationary (#9381)
* Use a rolling average of iou to determine if an object is no longer stationary

* Use different box variation to designate when an object is stationary on debug

* In progress

* Use average of boxes instead of average of iou

* Update frigate/track/norfair_tracker.py

Co-authored-by: Blake Blackshear <blake@frigate.video>

---------

Co-authored-by: Blake Blackshear <blake@frigate.video>
2024-02-26 07:37:56 -06:00
Chamila
0a15ef022b Add a section to dev guide on non-local development (#10049)
This adds a section with instructions on editing the source to run the
Web UI against a non-local backend server.

This resolves #10048
2024-02-26 12:15:32 +00:00
f1d094
e9d4e81f77 Updated troubleshooting per request: blakeblackshear#5392 (comment) (#10021)
* Update recordings.md

Updated troubleshooting per request: https://github.com/blakeblackshear/frigate/discussions/5392#discussioncomment-8571128

* Update recordings.md

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2024-02-26 12:15:14 +00:00
Andreas Ehn
b9c0e345e9 Update cameras.md (#10030)
Document Hanwha XNP-6550RH capabilities
2024-02-26 12:14:19 +00:00
Marc Altmann
2aee974e11 Update FFmpeg presets for Rockchip (#10034)
* update Rockchip FFmpeg presets

* disable afbc for rockchip ffmpeg presets

* allow changing aspect ratio
2024-02-26 12:13:42 +00:00
Nicolas Mowen
7b11ff1af6 Fix reviewed filter (#10039) 2024-02-25 15:36:18 -07:00
Nicolas Mowen
4e5546cc78 Fix reviewed filter (#10038) 2024-02-25 15:49:08 -06:00
Nicolas Mowen
9801534f11 Implement Review Filters (#10031)
* Get cameras filter working

* Implement label and review filters

* Fix

* Add time selection

* Cleanup

* Cleanup

* cleanup

* remove commented code

* Fix
2024-02-25 13:04:44 -06:00
Nicolas Mowen
4a7c159a44 Convert preview player to use html5 video (#10016)
* Convert preview player to use html5

* Cleanup

* Increase padding and use constant

* Firefox doesn't support high fps either

* Cleanup

* no need to special case firefox
2024-02-25 12:37:53 -06:00
Jeppe Stærk
47fba0d553 Update onvif table with tapo c220 (#9905)
* Update cameras.md

Tapo C220 added to ONVIF PTZ camera recommendations

* Update docs/docs/configuration/cameras.md

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-02-25 06:35:32 -06:00
Nicolas Mowen
7ccc7fb393 Allow 2 fps for previews where active fast objects are detected (#10025)
* Allow 2 fps for previews where active fast objects are detected

* Cleanup
2024-02-25 06:35:11 -06:00
Nicolas Mowen
c7e9fe7234 Live preview gifs should be updated on refocus (#10007) 2024-02-24 07:50:33 -06:00
Josh Hawkins
824e5ec3a3 Use first onvif profile with ptz config (#10012)
* Use zoom space id in Onvif RelativeMove setup (#9859)

* use zoom space id in onvif relativemove setup

* better handle cases when zooming is disabled

* Fix birdseye camera comparison (#9887)

* Format (#9889)

* use first onvif profile with ptz config

* Use zoom space id in Onvif RelativeMove setup (#9859)

* use zoom space id in onvif relativemove setup

* better handle cases when zooming is disabled

* use first onvif profile with ptz config

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-02-24 06:49:34 -07:00
Nicolas Mowen
d73c8bb90c Fix overlay in safari and firefox (#10015) 2024-02-24 07:48:18 -06:00
Nicolas Mowen
02dfa1222e Fix cross contaimation of labels (#10009) 2024-02-23 19:15:08 -06:00
Nicolas Mowen
318cdeb005 Fade (#10010) 2024-02-23 18:38:57 -06:00
Nicolas Mowen
3621f93d40 Review items right click menu (#10002)
* Add custom context menu for review items

* Only show mark as reviewed when it has not been reviewed

* Fix float comparison
2024-02-23 17:26:26 -07:00
Nicolas Mowen
50ab988d81 Add button to scroll to bottom of logs (#10006)
* Add button to scroll to bottom of logs

* Cleanup
2024-02-23 18:25:00 -06:00
Nicolas Mowen
74a8fee69c Use manual jpg when preview is not finished yet (#9997)
* Use manual jpg when preview is not finished yet

* Ensure safe filename and improve sorting

* Ensure name is correct

* Formatting
2024-02-23 14:38:11 -06:00
Josh Hawkins
64eaf60b24 remove overflow and scrollbar classes from grid (#10000) 2024-02-23 09:39:19 -07:00
Josh Hawkins
de3a6a8738 fix pointer events on review grid (#9998) 2024-02-23 08:30:18 -07:00
Josh Hawkins
7d18c2c03d UI tweaks (#9996)
* various tweaks

* update debounce time

* scroll to top with new events
2024-02-23 06:52:54 -07:00
JC
fc94fcb2ac Setting motion masks to zero, rather than 255, will speed up calibration, as the average frame starts out at zero (#9992) 2024-02-23 06:08:05 -06:00
Josh Hawkins
a6aa5328aa UI fixes (#9986)
* scroll minimap to keep it in view

* remove console log

* change ref

* rebase to dev

* rebase to dev

* rebase to dev

* fix history flexbox and live extra scrollbar

* remove extra class
2024-02-22 20:15:50 -07:00
Nicolas Mowen
f84d2db406 Recordings viewer (#9985)
* Reduce redundant code and don't pull new items when marking as reviewed

* Chunk recording times and run playback

* fix overwriting existing data

* Implement scrubbing

* Show refresh button

* Remove old history

* Fix race condition

* Cleanup handling

* Remove console
2024-02-22 18:03:34 -06:00
Nicolas Mowen
fa57a3db28 No reviews for objects without position changes, create frame initially for detection / alert (#9984) 2024-02-22 18:03:13 -06:00
Josh Hawkins
9d8b568438 timeline zooming demo (#9980) 2024-02-22 09:28:05 -06:00
Josh Hawkins
a5a1a54c55 Expose setter for review timeline handlebar (#9978)
* expose setter for handlebar

* use as much resolution as possible
2024-02-22 08:16:37 -06:00
Nicolas Mowen
746939ed4f Fix safari preview speed and other cleanup (#9976)
* Cleanups and fix safari preview speed on iOS

* Clarifying comment

* Update paging when loading page with no items

* Use chip for detections and show all the time

* make time ago dense

* Be smarter about paging empty

* Fix elevation
2024-02-22 07:08:55 -07:00
Nicolas Mowen
6626b8d758 Show statusbar with cpu and gpu stats (#9968)
* Show statusbar with cpu and gpu stats

* fix gif logic
2024-02-21 20:27:02 -06:00
Nicolas Mowen
33c77d03c7 Reorganize stats (#9960)
* Reorganize stats

* Fix tests
2024-02-21 14:10:28 -06:00
Nicolas Mowen
509e46adc8 Review segment UI (#9945)
* Add ui for events

* Display data for review items

* Use preview thumbnails

* Implement paging

* Show icons for what was detected

* Show progress bar on preview thumbnail

* Hide the overlays on hover and update reviewed status

* Dim previews that have been reviewed

* Show audio icons

* Cleanup preview thumb player

* initial implementation of review timeline

* Use timeout for hover playback

* Break apart mobile and desktop views

* Show icons for sub labels

* autoplay first video on mobile

* Only show the last 24 hours by default

* Rework scrolling to fix nested scrolling

* Final scroll cleanups

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2024-02-21 13:07:32 -07:00
Josh Hawkins
be4b570346 Review timeline bugfixes (#9962)
* fix severity logic

* timestamp line height

* use timestamp for end of timeline instead of duration
2024-02-21 10:58:41 -07:00
Nicolas Mowen
e608297c31 quick db fix (#9946) 2024-02-20 18:53:56 -07:00
Nicolas Mowen
940be5dc6f Create ReviewSegment table in DB for organizing detections to be reviewed (#9918)
* Add review to database

* Create main manager for review segments

* Upsert and maintain review segments

* Update logic for adding new segments

* Add api

* Support deleting review segments on recording cleanup

* Add field for alert labels

* Formatting

* Logic fixes

* Save 16:9 thumbnail for review segment

* Ensure that crop is 16:9

* Fix non detected objects being added

* Only include true positives

* Add sub labels to data
2024-02-20 16:26:09 -07:00
Josh Hawkins
cdd6ac9071 Implement event review timeline (#9941)
* initial implementation of review timeline

* hooks

* clean up and comments

* reorganize components

* colors and tweaks

* remove touch events for now

* remove touch events for now

* fix vite config

* use unix timestamps everywhere

* fix corner rounding

* comparison

* use ReviewSegment type

* update mock review event generator

* severity type enum

* remove testing code
2024-02-20 23:22:59 +00:00
Rob Arnold
aa99e11e1a Autodetect AMD GPUs for VAAPI GPU stats (#9898)
* Add autodetection logic

* Fix formatting

* Add some explanatory comments

* Actually fix lint
2024-02-20 23:21:54 +00:00
Marc Altmann
299511cd9d Update FFmpeg for Rockchip image (#9912)
* update build files

* update ffmpeg presets

* remove fix for HA add-on
2024-02-20 23:21:24 +00:00
Nicolas Mowen
f64ffa3a56 Fix black bar at bottom of previews (#9923) 2024-02-20 23:20:56 +00:00
Nicolas Mowen
dba21b606d Convert config updating and video/audio queues to use zmq (#9893)
* Add config pub / sub pattern

* remove recording from feature metrics

* remove audio and feature metrics

* Check for updates from all cameras

* remove birdseye from camera metrics

* remove motion and detection camera metrics

* Ensure that all processes are stopped

* Stop communicators

* Detections

* Cleanup video output queue

* Use select for time sensitive polls

* Use ipc instead of tcp
2024-02-19 07:26:59 -06:00
John Vandenberg
3cff3a086b fix typos (#9895) 2024-02-17 16:01:50 -06:00
Nicolas Mowen
6476f8ade7 Format (#9889) 2024-02-16 09:35:21 -06:00
Nicolas Mowen
42bf614131 Fix birdseye camera comparison (#9887) 2024-02-16 08:43:46 -06:00
Blake Blackshear
617c728a88 another name fix (#9886) 2024-02-16 06:51:19 -06:00
Blake Blackshear
d1bc90b225 Rename Camera Support.yml to camera-support.yml 2024-02-16 06:48:23 -06:00
Blake Blackshear
170f2ac27f Rename camera support.yml to Camera Support.yml 2024-02-16 06:45:20 -06:00
Blake Blackshear
68e1f4670b Update question.yml 2024-02-16 06:43:32 -06:00
Blake Blackshear
57eed11f39 fix names (#9885) 2024-02-16 06:31:37 -06:00
Blake Blackshear
d38a9f7c6d remove invalid keys (#9884) 2024-02-16 06:18:20 -06:00
Nicolas Mowen
a1b5fb81fd Issue -> discussion (#9830)
* Link to discussions for support

* Move camera support

* Delete .github/ISSUE_TEMPLATE/camera_support_request.yml

* Create config_support.yml

* Delete .github/ISSUE_TEMPLATE/config_support_request.yml

* Delete .github/ISSUE_TEMPLATE/detector_support_request.yml

* Create detector_support.yml

* Move remaining items

* Create question.yml
2024-02-16 06:12:40 -06:00
Josh Hawkins
616eb5f96a Use zoom space id in Onvif RelativeMove setup (#9859)
* use zoom space id in onvif relativemove setup

* better handle cases when zooming is disabled
2024-02-16 06:09:30 -06: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
Nicolas Mowen
8c4811ed69 Use webrtc for safari live view (#9839)
* Move safari function

* Use webrtc for safari

* Use taller aspect ratio for tall thumbnails

* Simplify thumbnail sizing

* Use correct aspect ratio on all devices
2024-02-14 18:19:55 -06:00
Blake Blackshear
bad80a64ef Fix builds (#9852)
* show images for troubleshooting

* more debug and try max space action

* fixes

* oops

* maximize first

* mount build volume for docker use

* moved to shared setup and cleanup

* remove temp branch

* remove rocm for master
2024-02-14 18:16:53 -06:00
Josh Hawkins
764736b223 update dev builds message (#9853) 2024-02-14 18:12:33 -06:00
Josh Hawkins
fa384a7f9d ensure jsmpeg canvas is rounded and clipped (#9842) 2024-02-13 23:25:28 +00:00
Nicolas Mowen
ac0059cc1a Make default region multiplier consistent (#9685)
* Make default region multiplier consistent

* Adjust tests
2024-02-13 23:25:00 +00:00
Nicolas Mowen
63bc1b1582 Improve thumbnails and live player (#9828)
* Don't show gif until event is over and fix aspect

* Be more efficient about updating events

* ensure previews are sorted

* Don't show live view when window is not visible

* Move debug camera to separate view

* Improve jpg loading

* Ensure still is updated on player live finish

* Don't reload when window not visible

* Only disconnect instead of full remove

* Use start time instead of event over to determine gif
2024-02-13 01:28:36 +00:00
lawm
e93e5ed931 docs: fix links to full configuration reference (#9808) 2024-02-12 17:38:55 -06:00
Josh Hawkins
f54cb21bd0 UI changes (#9823)
* fix button within button

* add subtle overlay gradient

* try disconnecting to improve memory usage

* rounded corners on gradients
2024-02-12 17:34:45 -06:00
harakas
09153a154a ci: rocm builds (#9796) 2024-02-12 06:24:02 -06:00
Michael Scheiffler
77e77775b2 Added documentation for time-lapse export (master) (#9804)
* Added documentation for time-lapse export (master)

* Changed accoring to review comments

* Update docs/docs/configuration/record.md

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

* Update docs/docs/configuration/record.md

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-02-12 06:23:48 -06:00
Blake Blackshear
f4a44fd93c remove reference to the term credit (#9799) 2024-02-11 16:40:35 +00:00
Nicolas Mowen
b9e20fc833 Fix gif creation and add better error handling (#9797)
* Add better error handling

* Fix end_ts logic

* Formatting
2024-02-11 08:06:16 -06:00
Nicolas Mowen
bcbea8da7d Create API to create gif from previews and show instead of still thumbnails (#9786)
* Start working on animation

* Change output file

* Create preview gif

* Show animated gif for event thumb

* Remove favorite

* Cleanup
2024-02-11 07:23:45 -06:00
Josh Hawkins
9de09f6cdf fix tooltips on mobile and make 2-row cameras full height (#9787) 2024-02-11 06:30:52 -06:00
Matt Brown
89f4db617a Docs: Fix and clarify which /dev/video devices to use with Raspberry Pi (#9509)
* Docs: Fix and clarify which /dev/video devices to use with Raspberry Pi

* Update docs/docs/configuration/hardware_acceleration.md

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

* Update docs/docs/configuration/hardware_acceleration.md

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-02-10 13:44:52 -06:00
printplaatreparatie
b5aaa6759a Revise VSCode hostname info in docs (#9709)
* Revise VSCode hostname info in docs

* Fix misplaced backtick

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-02-10 13:43:24 -06:00
Sven-Hendrik Haase
54bbad12f8 Mention that AMD CPUs work just fine with OpenVINO (#9740)
* Mention that AMD CPUs work just fine with OpenVINO

* Doc consistency fixes
2024-02-10 13:42:32 -06:00
Josh Hawkins
dc2e8f7f70 Onvif: skip non-video profiles in setup (#9708)
* use first h264 onvif profile

* error if profile remains unset

* move create_ptz_service call

* add profile logger debug
2024-02-10 13:41:24 -06:00
harakas
cd5f4b1534 detectors/edgetpu: yolov8 support (#9782)
* detectors/edgetpu: add support for yolov8 models

* docs: edgetpu yolov8 running

* docs: edgetpu yolov8 attribution and language

* Update docs/docs/configuration/object_detectors.md

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-02-10 13:39:28 -06:00
Maximo Guk
86341c3172 Add error handling for unsupported label uploading to frigate+ (#9775) 2024-02-10 13:35:17 -06:00
Nicolas Mowen
91cdf64602 Birdseye enhancements (#9778)
* Center single camera view

* Implement scaling factor

* Add config for maximum number of cameras

* Add config for inactivity threshold

* update docs
2024-02-10 11:55:13 -06:00
harakas
cad7cdfb7e download-models: fix startup failure caused by unset variable (#9781) 2024-02-10 11:54:18 -06:00
Josh Hawkins
2d22800a3d Set aspect ratios on live display (#9780)
* set aspect ratios on live display

* try 8/9
2024-02-10 16:28:23 +00: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
Nicolas Mowen
64988c9be0 Streamline live view (#9772)
* Break out live page

* Improving layouts and add chip component

* Improve default camera player sizing

* Improve live updating

* Cleanup and fit figma

* Use fixed height

* Masonry layout

* Fix stuff

* Don't force heights

* Adjust scaling

* Cleanup

* remove sidebar (#9731)

* remove sidebar

* keep sidebar on mobile for now and add icons

* Fix revalidation

* Cleanup

* Cleanup width

* Add chips for activity on cameras

* Remove dashboard from header

* Use Inter font (#9735)

* Show still image when no activity is occurring

* remove unused search params

* add playing check for webrtc

* Don't use grid at all for single column

* Fix height on mobile

* a few style updates to better match figma (#9745)

* Remove active objects when they become stationary

* Move to sidebar only and make settings separate component

* Fix layout

* Animate visibility of chips

* Sidebar is full screen

* Fix tall aspect ratio cameras

* Fix complicated aspect logic

* remove

* Adjust thumbnail aspect and add text

* margin on single column layout

* Smaller event thumb text

* Simplify basic image view

* Only show the red dot when camera is recording

* Improve typing for camera toggles

* animate chips with react-transition-group (#9763)

* don't flash when going to still image

* revalidate

* tooltips and active tracking outline (#9766)

* tooltips

* fix tooltip provider and add active tracking outline

* remove unused icon

* remove figma comment

* Get live mode working for jsmpeg

* add small gradient below timeago on event thumbnails (#9767)

* Create live mode hook and make sure jsmpeg can be used

* Enforce env var

* Use print

* Remove unstable

* Add tooltips to thumbnails

* Put back vite

* Format

* Update web/src/components/player/JSMpegPlayer.tsx

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Co-authored-by: Blake Blackshear <blake@frigate.video>
2024-02-10 05:30:53 -07:00
Stephen Advincula
f6a4c2a7b3 bump go2rtc to 1.8.5 (#9487) 2024-02-06 06:52:20 -06:00
Josh Hawkins
92a0705b03 show version in production builds (#9602) 2024-02-05 17:55:08 -06:00
Nicolas Mowen
f4310862aa WebUI Improvements and fixes (#9613)
* Show toast instead of text for success and errors

* Show correct times

* Start playing next hour when current hour ends

* Fix refreshing camera image

* Fix timeline
2024-02-05 17:54:08 -06:00
Nicolas Mowen
00804a0f81 Don't fail if message is received before websocket start (#9634) 2024-02-05 17:53:16 -06:00
Josh Hawkins
a33f2f117e more robust onvif checks (#9635) 2024-02-05 17:52:47 -06:00
Nicolas Mowen
50563eef8d Nms optimize for stationary cars (#9684)
* Use different nms values for different object types

* Add tests

* Format tests
2024-02-05 17:52:06 -06:00
Nicolas Mowen
97a619eaf0 Update Makefile for 0.13.2 (#9687) 2024-02-05 17:50:35 -06:00
Josh Hawkins
3df8b5829c Small autotracking changes (#9571)
* ignore web-new

* remove web-new

* catch exceptions for unsupported cameras

* don't split up large ptz movements

* fix ruff
2024-02-02 06:23:14 -06:00
Nicolas Mowen
2d0864c723 Adjust kalman filter used for norfair tracker (#9538)
* Adjust kalman filter

* Add comment

* Formatting
2024-02-02 06:22:56 -06:00
Nicolas Mowen
c5819478d3 Web & ffmpeg bug fixes (#9525)
* Fix scaling for long timeline lists

* Better handle taller video in player

* Fix birdseye options

* Fix ffmpeg auto detect
2024-02-01 06:44:10 -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
Nicolas Mowen
9c4b69191b Add graph showing motion and object activity to history timeline desktop view (#9184)
* Add timeline graph component

* Add more custom colors and improve graph

* Add api and data

* Fix data sorting

* Add graph to timeline

* Only show timeline for selected hour

* Make data full range
2024-01-31 12:56:11 +00:00
Nicolas Mowen
6dd9d54f70 UI Fixes (#9177)
* Fix mobile crash

* Reduce tap timeout

* Fix selection

* Try to fix safari empty frame

* Fix config editor
2024-01-31 12:56:11 +00:00
Josh Hawkins
d2ab44ce72 Reactify MSE player component (#9163)
* make mse a functional component with react hooks

* iOS 17 fixes

* birdseye mse

* remove debug

* fix test
2024-01-31 12:56:11 +00:00
Nicolas Mowen
160e331035 Improve desktop timeline view (#9150)
* Break apart mobile and desktop timeline views

* Set aspect ratio for player correctly

* more modest default width

* Add timeline item card

* Get video player to fit

* get layout going

* More work on youtube view

* Get video scaling working

* Better dialog sizes

* Show all timelines for day

* Add full day of timelines

* Improve hooks

* Fix previews

* Separate mobile and desktop views and don't rerender

* cleanup

* Optimizations and improvements

* make preview dates more efficient

* Remove seekbar and use timeline as seekbar

* Improve background and scrubbing
2024-01-31 12:56:11 +00:00
Nicolas Mowen
0ee81c7526 Automatically detect hwaccel args (#9142)
* Automatically detect nvidia / vaapi hwaccel args

* Update docs

* Use auto for hwaccel args

* Formatting
2024-01-31 12:56:11 +00:00
Nicolas Mowen
a946a8f099 Refactor history viewer to show player / timeline for full hour and use preview while scrubbing timeline (#9051)
* Move history card view to separate view and create timeline view

* Get custom time scrubber working

* Add back nav

* Show timeline bounding boxes

* Implement seeking limiter

* Use browser history to allow back button to close timeline viewer

* Fix mobile timeline and add more icons for detections

* Play when item is initially visible
2024-01-31 12:56:11 +00:00
Nicolas Mowen
9a0dfa723a Add logs to new webui (#9118)
* Add logs to new webui

* Automatically refresh logs while viewing

* Clean up hooks
2024-01-31 12:56:11 +00:00
Nicolas Mowen
9efb6b1caf Add mse live view (#9117) 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
Nicolas Mowen
928dbd8335 Update dashboard cameras dynamically (#9100)
* Automatically update camera image when detecting objects and show activity indicators

* Update ws typing

* Cleanup type
2024-01-31 12:56:11 +00:00
Josh Hawkins
d430b99562 Autotracking: better handle objects that touch frame edges (#9062)
* handle edge cases better

* don't lowercase status strings

* ruff formatting
2024-01-31 12:56:11 +00:00
Nicolas Mowen
a1e5c658d5 Add support for filtering history page and add support for creating timeline entries for audio / custom events (#9034)
* Add filter popover

* Add api filter hook and use UI with filtering

* Get history filtering working for cameras and labels

* Allow filtering on detail level

* Save timeline entries for api events

* reset

* fix width
2024-01-31 12:56:11 +00:00
Nicolas Mowen
feb3ee0703 Allow deletion of history items (#9030)
* Allow deletion of history items

* Remove type
2024-01-31 12:56:11 +00:00
Josh Hawkins
7bec162353 Scrubber UI component (#9036)
* add scrubber and ui playground when running dev

* fix mobile dropdown menu width

* timeline scrubber and revamp for all event handlers
2024-01-31 12:56:11 +00:00
Nicolas Mowen
2236ae5d3b Add jsmpeg support to new webUI and make birdseye default for live page (#8995)
* Add jsmpeg and make birdseye default for live view

* Fix jsmpeg

* Fix
2024-01-31 12:56:11 +00:00
Nicolas Mowen
1a27c7db29 Fix birdseye memory leak (#8992) 2024-01-31 12:56:11 +00:00
Nicolas Mowen
f8d114cd33 Webui cleanups (#8991)
* Fix mobile event timeago

* Reduce preview playback rate for safari browser

* Fix dashboard buttons

* Update recent events correctly

* Fix opening page on icon toggle

* Fix video player remote playback check

* fix history image

* Add sticky headers to history page

* Fix iOS empty frame

* reduce duplicate items and improve time format

* Organize data more effictively and ensure data is not overwritten

* Use icon to indicate preview
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
a2c6f45454 Camera dashboard (#8981)
* Show camera dashboard

* Cleanup

* Cleanup

* Cleanup

* Cleanup

* fix

* Fix input color

* Show recent events on dashboard
2024-01-31 12:56:11 +00:00
Nicolas Mowen
3a33090984 Review grid playback (#8971)
* Playback recording when clicking on review item

* Add timeline overlay selector

* Lint fixes

* Lint fixes

* Set video plays inline

* Stop autoplay on open

* Reverse order

* Improve autoplay performance

* Remove chromecast icon by default

* Improve margin and remove lazy image loading to reduce jumping

* Fix root margin for mobile

* Fix scrolling behavior

* Fix width
2024-01-31 12:56:11 +00:00
Nicolas Mowen
e3387de48f Add live views to new webui (#8970)
* Add support for live views

* Lint fixes

* Fix width

* Fix lint

* Cleanup hooks
2024-01-31 12:56:11 +00:00
Nicolas Mowen
fbe58652d5 Improve review grid (#8953)
* Use constant aspect ratio for review grid

* Add infinite scrolling

* Don't have horizontal scrolling

* Handle autoplay for mobile

* Load more efficiently
2024-01-31 12:56:11 +00:00
Nicolas Mowen
1961a0afc1 Support storage page in new ui (#8948)
* Add table and oveview components

* Add toooltips for cards

* Add storage

* Undo
2024-01-31 12:56:11 +00:00
Nicolas Mowen
4524d9440c Add initial implementation of history view in new webui framework (#8895)
* Add support for review grid

* Cleanup reloading on focus

* Adjust timeline api to include metadata and before

* Be more efficient about getting info

* Adjust to new data format

* Cleanup types

* Cleanup text

* Transition to history

* Cleanup

* remove old web implementations

* Cleanup
2024-01-31 12:56:11 +00:00
Nicolas Mowen
c1f14e2d87 Support config editor in new webUI (#8928)
* Add config editor to new webUI and fix double scroll

* Address review comments and enable light theme for vscode
2024-01-31 12:56:11 +00:00
Nicolas Mowen
0e6528a989 Add export page in to new web UI (#8929) 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
Josh Hawkins
696434b36d Initial framework for new UI with React/Typescript (#8885)
* Write a low resolution low fps stream from decoded frames (#8673)

* Generate low res low fps previews for recordings viewer

* Make sure previews end on the hour

* Fix durations and decrase keyframe interval to ensure smooth scrubbing

* Ensure minimized resolution is compatible with yuv

* Add ability to configure preview quality

* Fix

* Clean up previews more efficiently

* Use iterator

* Ensure final frame in preview is not duplicated

* initial react/ts framework

* fix gitignore glob excluding ts files

* ignore folders in web-new

* SWRConfig changes for swr 2.x

* use frigateConfig type in websocket handlers

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-01-31 12:56:11 +00:00
Nicolas Mowen
b1cd5f0926 Add external sub label as timeline entry (#8855)
* Add external sub label to timeline

* Include icon

* Update timeline.py

Co-authored-by: Sergey Krashevich <svk@svk.su>

* Formatting

---------

Co-authored-by: Sergey Krashevich <svk@svk.su>
2024-01-31 12:56:11 +00:00
Nicolas Mowen
c716e4b1cb Ensure final frame in preview is not duplicated 2024-01-31 12:56:11 +00:00
Nicolas Mowen
cfda531f5a Write a low resolution low fps stream from decoded frames (#8673)
* Generate low res low fps previews for recordings viewer

* Make sure previews end on the hour

* Fix durations and decrase keyframe interval to ensure smooth scrubbing

* Ensure minimized resolution is compatible with yuv

* Add ability to configure preview quality

* Fix

* Clean up previews more efficiently

* Use iterator
2024-01-31 12:56:11 +00:00
Blake Blackshear
c80b8140b8 increment version 2024-01-31 06:23:54 -06: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
bf23a21486 Quick fix docs (#9506)
fixes https://github.com/blakeblackshear/frigate/issues/9505
2024-01-30 12:11:43 -06:00
Blake Blackshear
01e2d209d0 Merge pull request #6262 from blakeblackshear/dev
0.13.0 Release
2024-01-30 07:30:11 -06:00
Nicolas Mowen
27567b49db Update go2rtc debug tip (#9463)
closes https://github.com/blakeblackshear/frigate/issues/9187
2024-01-30 06:14:53 -06:00
Blake Blackshear
d15ab0922b Docs updates (#9476)
* revamp plus docs

* consolidate label guidance

* add some common complete config examples

* clarify zone presence

* bottom center example of mask

* update recommended hardware

* update nav

* update getting started

* add openvino example

* explain why we track stationary objects

* move false positive guide to config folder

* fix link

* update record and parked car guide

* tweaks
2024-01-30 06:14:16 -06:00
leccelecce
64a91f552f Add info logging at startup if vacuuming database (#9432) 2024-01-26 07:18:29 -06:00
Kevin David
b1a034fbd4 false_positives.md: expand definition of ratios (#9332)
I found this thread pretty helpful: https://github.com/blakeblackshear/frigate/issues/8350#issuecomment-1782863838

I figured it'd be worth including in the docs themselves.

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2024-01-26 07:17:50 -06:00
Blake Blackshear
61d285ba13 Merge remote-tracking branch 'origin/master' into dev 2024-01-26 07:09:28 -06:00
Nicolas Mowen
65c47531f6 Update record docs to mention UTC (#9248)
* Update record docs to mention UTC

* Update docs/docs/configuration/record.md

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2024-01-26 06:02:26 -07:00
Nicolas Mowen
393f44aac6 Use continuous instead of 24/7 (#9329) 2024-01-26 06:47:02 -06:00
Nicolas Mowen
700c0fb410 Create glossary for commonly used frigate terms (#9356)
* Add glossary with commonly used terms for frigate

* Link back to full docs pages

* Add glossary to sidebar

* Clarifications and grammar fixes

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2024-01-26 12:13:39 +00:00
Alex Errant
346524c660 Add ghcr.io/blakeblackshear/frigate:stable-tensorrt example (#9383) 2024-01-22 05:08:31 +00:00
danielszilagyi
487c626e00 Mention NVR setup (#9404) 2024-01-22 05:07:38 +00:00
Andreas Lindhé
c5ccc0fb08 Fix typo: an environment variables (#9157) 2024-01-03 17:58:40 -06:00
Nicolas Mowen
66701b9cf9 note that only 5MP reolink cameras support the recommended config (#9190)
* Make note that only 5MP and lower reolink cameras support the recommended config

* clarify
2024-01-03 17:40:43 -06:00
Hydromel Victor Doledji
4c1d34f0e9 update docs to clarify variable substitution in go2rtc (#9181)
* update docs to clarify variable substitution in go2rtc

* update to complet

* cleanup spacing

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-01-03 17:39:51 -06:00
Nicolas Mowen
86cd97609d Remove mention of restream role from docs (#9176) 2024-01-03 17:39:30 -06:00
Nicolas Mowen
8e419132ea Clean user / pass from stats command line (#9189) 2024-01-03 07:30:25 -06:00
Nicholas Page
49814b34d3 Update Jetson ffmpeg patch for Jetpack 5.1.2 compatibility (#8914) 2023-12-31 07:38:29 -06:00
kaydee123
7b71c21c12 Update reverse_proxy.md (#9070)
Spelling mistake
2023-12-24 19:55:07 +00:00
Nicolas Mowen
c35c7da82a Don't fail if deepstack detector times out (#8979) 2023-12-15 23:25:21 +00:00
Nicolas Mowen
e390533760 Make recording docs more clear about 24/7 recording (#8931)
* Make recording docs more clear about 24/7 recording

* Add note about partial days

* remove `X`
2023-12-12 23:21:06 +00:00
FinnakaLite
64bee7a64f Included caution about Snapcraft docker issues. (#8925)
* Included caution about Snapcraft docker issues.

* Accepted format suggestion from NickM-27

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-12-12 10:48:42 +00:00
Nicolas Mowen
ca4e0dbc75 Fix ffmpeg input arg parsing (#8924) 2023-12-12 10:48:09 +00:00
Nicolas Mowen
ee7eaff965 Don't fail if NaN is returned for segment duration (#8923) 2023-12-12 10:47:40 +00:00
Matti Hiljanen
e512406764 Fix inertia calculation check (#8890) 2023-12-08 07:30:22 -06:00
Josh Hawkins
a4f5ad3a94 Proxy websockets in devcontainers (#8886)
* proxy websockets

* remove whitespace
2023-12-08 01:08:35 +00:00
Blake Blackshear
a47068922f Update deps (#8872)
* update web deps

* update docs deps

* update gh actions
2023-12-07 06:09:20 -06:00
Nicolas Mowen
f8153bdacc Add docs specifically for reolink doorbell (#8851)
* Add docs specifically for reolink doorbell

* Update docs/docs/configuration/camera_specific.md
2023-12-04 18:46:54 -06:00
Nicolas Mowen
0de800a8e5 don't fail on empty producers (#8854) 2023-12-04 18:46:26 -06:00
Nicolas Mowen
ebcf25741b Fix timeline overlay for in progress events (#8852) 2023-12-04 13:43:23 -07:00
Eric M
eed08f534f Update output.py with NTSC DVT, Amcrest DV1 aspect ratio 704x480 (#8835)
* Update output.py with NTSC DVT, Amcrest DV1 aspect ratio 704x480

* linter fix
2023-12-03 03:22:50 +00:00
Nicolas Mowen
da5cf1867b Clarify radeon env variable (#8809)
* Clarify radeon env variable

* Make note consistent for intel as well
2023-12-03 03:15:43 +00:00
Josh Hawkins
cc5297f180 handle onvif connection failure in autotrack init (#8838)
* handle onvif connection failure in autotrack init

* remove whitespace and add consistency

* error message consistency

* more consistency
2023-12-03 03:14:52 +00:00
Nicolas Mowen
f27025aef3 don't fail on go2rtc stream with no url (#8839) 2023-12-03 03:14:30 +00:00
Nicolas Mowen
595fa3d111 Re-add support for go2rtc webrtc api (#8828) 2023-12-01 06:47:09 -07:00
Nicolas Mowen
89051c1b90 Create Edgetpu troubleshooting docs (#8827)
* Link to edgetpu troublehsooting

* Add troubleshooting docs for edgetpu

* Add to sidebar

* Add section about dual edge tpu
2023-12-01 07:41:30 -06:00
Blake Blackshear
f00ced5a33 Show bbox on in_progress events (#8785)
* fix default value in docs

* use default snapshot config for in progress
2023-11-29 23:37:53 +00:00
Nicolas Mowen
9b003e175d Don't incorrectly overwrite score history (#8795) 2023-11-29 23:37:28 +00: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
Nicolas Mowen
15644a2b0c Fix dark color scheme for exports (#8770) 2023-11-27 18:13:41 -06:00
Marc Altmann
27cf1cdf15 Fix path of device tree on HassOS add on (#8764)
* fix device tree path for HassOS

* fix symlink call

* fix formatting
2023-11-27 18:13:12 -06:00
Jennifer
fef6a7ca74 Update reverse_proxy.md (#8763)
Thhe
2023-11-27 18:12:57 -06:00
Blake Blackshear
5c4501efbc remove mqtt password from config api (#8757) 2023-11-26 15:45:16 -06:00
Justin Dhillon
614a36af9f Fix Broken Links (#8711)
* fixed broken link https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/

* fixed broken link https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/

* fixed broken link https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers

* fixed broken link https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers
2023-11-24 07:33:50 -06:00
Blake Blackshear
a0bc3a3626 clarifications to guide based on feedback (#8727) 2023-11-24 07:33:30 -06:00
Nicolas Mowen
18062eca06 Don't fail when tz is incorrect (#8723)
* Don't fail when tz is incorrect

* Fix import
2023-11-23 11:43:02 +00:00
Marc Altmann
1dc42d2904 update github links (#8705) 2023-11-21 23:20:26 +00: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
tpjanssen
3dd0192fe6 Add rename exports function to API (#8687)
* Add rename exports function to API

* Update http.py

* Feedback
* Formatting fixes

* Update http.py

Formatting fix

* Update http.py

Lint fix
2023-11-20 19:11:18 -06: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
Sergey Krashevich
463865db55 fix go2rtc run (#8692) 2023-11-20 19:09:40 -06:00
Sergey Krashevich
ea247ca816 go2rtc 1.8.4 (#8691) 2023-11-21 01:07:54 +00:00
tpjanssen
8864e33d1c Customize regions grid overlay API (#8668)
* Customize regions grid overlay

* Update http.py

Fix
2023-11-19 14:51:54 +00:00
trademark789
934b16723b make go2rtc always rebuild config at startup (#8664)
* make go2rtc always rebuild config at startup

/dev/shm can be left mounted (in fact im pretty sure it's always left mounted) on the docker host after shutting down the frigate container.
If we only check that the file doesn't exist, stale data gets re-read every startup 
This will make troubleshooting a nightmare for the average user.

I had given up troubleshooting go2rtc several times because of this.

* generate config after supervisor data is loaded

* Fix fi

* fix fi

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-11-19 07:08:42 -06:00
Blake Blackshear
fc186e4d5f update web deps (#8663) 2023-11-19 05:24:52 -06:00
Nicolas Mowen
7d157dfeb0 Set max value for pre_capture (#8656) 2023-11-18 15:37:06 -06:00
Marc Altmann
977eef9138 fix chrash after restart (#8661) 2023-11-18 15:36:24 -06:00
Josh Hawkins
678f1201c6 use timeout for move queues (#8662) 2023-11-18 15:36:13 -06:00
Blake Blackshear
4879de263b Docs improvements (#8641)
* go all in on ruff

* upgrade docusaurus

* add netlify toml

* broken link

* fix netlify toml

* start filling out guide

* add debian setup detail

* simplify bash command
2023-11-18 08:04:43 -06:00
Marc Altmann
c6208b266b Include libraries and .rknn models for other Rockchip SoCs (#8649)
* support for other yolov models and config checks

* apply code formatting

* Information about core mask and inference speed

* update rknn postprocess and remove params

* update model selection

* Apply suggestions from code review

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

* support rknn on all socs

* apply changes from review and fix post process bug

* apply code formatting

* update tip in object_detectors docs

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-11-18 07:53:49 -06:00
Nicolas Mowen
2da99c2308 Improve periodic sync reliability and make it optional (#8647)
* Improve recordings sync reliability

* Cleanup

* Formatting

* Make logs consistent

* Make syncing optional
2023-11-18 06:06:00 -06:00
Tibladar
9ac40cd953 Add H265 preset for Raspberry Pi (#8640)
* Add h265 pi preset to preset docs

* Add h265 pi preset to hardware acceleration docs

* Add preset for raspberry pi h265
2023-11-17 01:09:15 +00:00
Marc Altmann
7522bb6fab Add features to rknn detector (#8631)
* support for other yolov models and config checks

* apply code formatting

* Information about core mask and inference speed

* update rknn postprocess and remove params

* update model selection

* Apply suggestions from code review

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-11-17 01:08:41 +00:00
Josh Hawkins
7b520e8a9d use enabled_in_config for switch in HA integration (#8630) 2023-11-16 01:25:48 +00:00
Nicolas Mowen
cadb1a6a5b Fix reolink link in recommended hardware (#8628) 2023-11-16 01:25:16 +00:00
Nicolas Mowen
97c15f7ef3 Update go2rtc to 1.8.3 (#8627) 2023-11-16 01:24:26 +00:00
Francisco Matias Cuenca-Acuna
9fa70c3455 Add vision pipeline diagram to documentation (#7689)
* Add vision pipeline diagram

* Moved pipeline to the Guides section

* Fixing segment storage and other flows

* Added text

* Update docs/docs/guides/video_pipeline.md

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

* Keeping case as other pages

* Changing sections to ##

* Update docs/docs/guides/video_pipeline.md

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

* Update docs/docs/guides/video_pipeline.md

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: cat101 <cat101@nowhere.com>
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-11-16 01:23:44 +00:00
Marc Altmann
8c7f6d4a76 Add static FFmpeg with rockchip hardware acceleration to rk- image (#8599)
* add static ffmpeg with rockchip hw accel

* add ffmpeg presets

* fix scaling preset and update docs for rk hwaccel

* update usage info in ffmpeg_presets docs

* Add note about hardware acceleration support

---------

Co-authored-by: MarcA711 <>
2023-11-15 05:41:55 -06:00
Josh Hawkins
266b4099b5 a few small onvif fixes and relativemove debug (#8583) 2023-11-15 05:41:41 -06:00
Sch0field9
a1e68a62d0 Update cameras.md (#8556)
Added Reolink RLC-823A 16x
2023-11-15 05:41:25 -06:00
Nicolas Mowen
8a010fc1f5 Fix vaapi color mapping (#8604) 2023-11-14 00:35:29 +00:00
Nicolas Mowen
563fdec211 Fix safari timezone (#8574)
* Fix safari bad time format

* Fix processing
2023-11-10 18:12:48 -06:00
Nicolas Mowen
3457dcddfe Don't run forever in autotracking (#8579) 2023-11-10 18:12:20 -06:00
Blake Blackshear
57a06d2220 fix image tag (#8560) 2023-11-09 19:02:16 -06:00
Nicolas Mowen
aa93d4fbdd Fix nginx cache (#8558) 2023-11-09 16:09:25 -06:00
Nicolas Mowen
d0036b2f77 Update go2rtc to 1.8.2 (#8459)
* Update go2rtc to 1.8.2

* Update docs for 1.8.2
2023-11-09 06:43:06 -06:00
Nicolas Mowen
1b57f8c7e2 Show error when clicking on image before mask (#8547) 2023-11-09 06:42:19 -06:00
Nicolas Mowen
fa96ec64e4 Detect Resolution Docs (#8542) 2023-11-09 06:41:50 -06:00
Josh Hawkins
e89db13282 fix restart from webui (#8541) 2023-11-08 09:37:54 -07:00
Nicolas Mowen
fe6577736e Tuning Motion guide (#6877)
* start working on motion guide

* Update motion_detection.md

* Add to sidebar

* Add title / ID

* Fix typos

* Fix typos and clarify

* Formatting

* Add default values from reference config for each section

* Small grammar fix

* Move to cameras section

* Updates

* Clarify and improve wording

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-11-08 14:04:27 +00:00
Blake Blackshear
64537672e6 use skopeo to copy images (#8539) 2023-11-08 07:22:23 -06:00
Nicolas Mowen
ef36aabd30 Make output writing asynchronous (#8530)
* Don't wait for frame write in output process

* Formatting

* Handle websocket exception

* Limit camera queeue size to 1 second
2023-11-07 16:24:56 -07:00
Nicolas Mowen
ca84732574 Ensure storage cleanup doesn't fail (#8531) 2023-11-07 23:21:43 +00:00
Nicolas Mowen
0b828ef1ec Only cache json requests with nginx (#8529)
* Only cache json requests

* Use map instead
2023-11-07 23:18:58 +00:00
tpjanssen
3359123364 Performance increase with lots of recordings (#8525)
* Performance increase with lots of recordings

* Formatting + review

* Update 020_update_index_recordings.py

Formatting

* Feedback + check fix

* Update 020_update_index_recordings.py
2023-11-07 23:18:26 +00:00
Nicolas Mowen
cc5357a31a Remove iterator from recordings events (#8522) 2023-11-07 07:02:02 -07:00
Nicolas Mowen
f1b60f76eb Fix go2rtc UDP port default config (#8469)
* Fix go2rtc UDP port

* fix

* Use correct port

* fix comment

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-11-07 11:33:33 +00:00
Nicolas Mowen
f29e152619 Revert TRT class id filtering (#8497) 2023-11-07 11:32:52 +00:00
Nicolas Mowen
92906a500a Fix event only datetime check (#8500) 2023-11-07 11:32:31 +00:00
Nicolas Mowen
257bd89733 Reduce recording info timeout (#8506)
* Decrease timeout

* Use const for queue timeout
2023-11-07 11:32:11 +00:00
Josh Hawkins
1d99bb908d only use max target box for relative zoom limiter (#8509) 2023-11-07 11:31:39 +00:00
Nicolas Mowen
591b91194a Cleanup existing timeline entries (#8495)
* Cleanup existing timeline entries for beta users

* Formatting
2023-11-06 06:43:26 -07:00
Nicolas Mowen
2b2c831253 Set the min region size as the model size (#8486) 2023-11-06 06:45:37 -06:00
tpjanssen
08777100b5 Add /vod and /exports to Vite proxy config (#8490) 2023-11-06 06:44:53 -06:00
Nicolas Mowen
a482160691 Cleanup timeline entries (#8489) 2023-11-06 06:42:10 -06:00
Nicolas Mowen
89dd114da1 Write recording segments to cache with timezone info (#8468)
* Store recording segments with timezone info

* Don't use _

* Use different separator due to timezone
2023-11-05 14:30:29 -06:00
Nicolas Mowen
4c05ef48a7 Add dependabot to tensorrt python deps (#8455) 2023-11-05 14:29:06 -06:00
Nicolas Mowen
14c89c9b63 Fix periodic sync check (#8472)
* Fix periodic sync

* Formatting
2023-11-05 09:28:40 -07:00
Blake Blackshear
65e3e67a83 avoid import error for non-rk builds (#8454)
* avoid import error for non-rk builds

* linter
2023-11-04 07:56:35 -05:00
Nicolas Mowen
63233a5830 Periodically sync for stale recordings (#8433)
* Periodically cleanup recordings files / DB

* Make automatic sync limited ot last 36 hours
2023-11-04 02:21:29 +00:00
Nicolas Mowen
4f7b710112 Don't fail on invalid class IDs for TensorRT detector (#8438)
* Don't fail on invalid class IDs

* Fix whitespace

* Make log warning
2023-11-04 02:19:58 +00:00
coperni
ac53993f70 Add endpoint to restart Frigate (#8440)
* Add endpoint to restart Frigate

The only means of restarting Frigate remotely is to issue
a restart topic on the server's websocket. It's
convenient to also expose this capability via HTTP endpoint.

* Add new section to API docs

* Remove extra line
2023-11-04 02:19:29 +00:00
Josh Hawkins
ef750e73a2 add motion mask recommendation (#8448) 2023-11-04 02:18:43 +00:00
Nicolas Mowen
7270eef6bf Don't fail on 0 rms (#8447) 2023-11-04 02:18:23 +00:00
Marc Altmann
b54aaad382 fix rknn.py (#8434)
Co-authored-by: MarcA711 <>
2023-11-03 00:12:54 +00:00
Josh Hawkins
fc36be4f88 suppress error by overriding class func (#8431) 2023-11-02 23:24:14 +00:00
Blake Blackshear
aefecad4c0 Update deps (#8426)
* update web deps

* other deps
2023-11-02 13:36:49 +00:00
Nicolas Mowen
c57528cbcf Fix rk build (#8430) 2023-11-02 13:36:34 +00:00
Marc Altmann
090294e89b Initial support for rockchip boards (#8382)
* initial support for rockchip boards

* Apply suggestions from code review

apply requested changes

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

* requested changes

* rewrite dockerfile

* adjust targets

* Update .github/workflows/ci.yml

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

* Update docs/docs/configuration/object_detectors.md

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

* Update docs/docs/configuration/object_detectors.md

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

* add information to docs

* Update docs/docs/configuration/object_detectors.md

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

* format rknn.py

* apply changes from isort and ruff

---------

Co-authored-by: MarcA711 <>
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-11-02 12:55:24 +00:00
Nicolas Mowen
a6279a0337 Clean up RPi ffmpeg presets (#8428)
* Clean up rpi ffmpeg presets

* Remove from docs

* Put back encoding
2023-11-02 12:54:51 +00:00
wbradmoore
37b82c0d60 Update getting_started.md (#8420)
fix configuring_go2rtc link
2023-11-02 06:20:19 -05:00
Blake Blackshear
0dd3dd23aa add support for docker secrets (#8409)
* add support for docker secrets

* check for directory first
2023-11-02 05:35:30 -05:00
Blake Blackshear
4bd29b2ee8 fix build tag (#8408) 2023-11-02 05:35:19 -05:00
Nicolas Mowen
cc79cbcadc Improve robustness of storage maintenance (#8411)
* Improve robustness of storage maintenance

* Fix tests

* Fix test
2023-11-01 23:21:59 +00:00
Nicolas Mowen
89366d7b12 Add endpoint to return camera frame with regions grid overlaid (#8413)
* Add endpoint to view grid overload on camera frame

* Add api to docs

* Formatting
2023-11-01 23:21:30 +00:00
Josh Hawkins
6eff08eb2d Add MQTT topic for active autotracking (#8419)
* prevent estimate clipping when autotracking

* use unclipped estimate in distance function only

* remove autotracking velocity changes

* publish on init
2023-11-01 23:20:26 +00:00
tpjanssen
8b6b83bd62 Filtering on Frigate+ submits in frontend (#8344)
* Initial draft for filtering Frigate+ submits in frontend

* Hide filter when Frigate+ is not enabled

* Update http.py

* Revert "Update http.py"

This reverts commit fa292682d6.
2023-11-01 23:19:46 +00:00
Nicolas Mowen
8b6e3a0d37 Fix region when no data in grid (#8415)
* Fix region when no data in grid

* Make comment more clear
2023-11-01 23:19:17 +00:00
tpjanssen
8a9b26df4e Visit camera directly from system page (#8405)
* Visit camera directly from system page

* Processed all feedback

* Changed button caption
2023-11-01 07:08:59 -06:00
tpjanssen
fd6a3bd5d2 API recordings snapsnot PNG fix (#8401)
* Update http.py

* Update http.py

Limit query results
2023-11-01 06:14:51 -05:00
Nicolas Mowen
8085ad4b4c Ensure that birdseye error correction uses a resolution that is divisible by 4 (#8398) 2023-11-01 06:13:12 -05:00
Josh Hawkins
af24eb7dbf Autotracking tweaks (#8400)
* optimize motion and velocity estimation

* change recommended fps and fix config validate

* remove unneeded var

* process at most 3 objects per second

* fix test
2023-11-01 06:12:43 -05:00
Blake Blackshear
d1620b4e39 clean passwords when both rtsp and http present (#8399) 2023-10-31 08:04:42 -05:00
Nicolas Mowen
ba603c1937 Make initialization configurable (#8392) 2023-10-30 20:26:31 -04:00
Nicolas Mowen
e89dafa82e Handle recording checks in utc (#8379)
* Handle recording checks in utc

* Formatting
2023-10-30 20:25:21 -04:00
Nicolas Mowen
9d717b371c Improve logic of birdseye (#8375)
* Improve logic of birdseye

* Formatting
2023-10-30 20:24:42 -04:00
Nicolas Mowen
3d70d29672 Delete export if it fails (#8381)
* Delete export if it fails

* Fix import
2023-10-30 20:24:11 -04:00
Nicolas Mowen
f1efd8dbe2 Use int for drawing box (#8388) 2023-10-30 19:53:29 -04:00
Blake Blackshear
159fb51518 implement nginx caching (#8333)
* implement nginx caching

* bypass cache from frigate frontend, reduce to 5s

* set cache time to 2s

* cache 200s for 5s

* exclude vod endpoints from cache
2023-10-29 06:47:24 -05:00
Blake Blackshear
cd64399fe5 add release workflow for images (#8362) 2023-10-28 10:08:53 -04:00
Blake Blackshear
d72e1c38ae plus docs clarification (#8352) 2023-10-28 10:08:29 -04:00
Sergey Krashevich
979c49fd35 Update build_nginx.sh (#8361) 2023-10-28 06:35:11 -05:00
Josh Hawkins
16dc9f4bf7 update debug message 2023-10-26 17:32:58 -06:00
Josh Hawkins
52b47a3414 empty assumption for events 2023-10-26 17:32:58 -06:00
Josh Hawkins
139664e598 assumption on empty 2023-10-26 17:32:58 -06:00
Josh Hawkins
441c605312 make sure entire segment is accounted for 2023-10-26 17:32:58 -06:00
Josh Hawkins
def889e3a8 start_time is a datetime obj 2023-10-26 17:32:58 -06:00
Josh Hawkins
613f1f6bd6 check frame time for segment 2023-10-26 17:32:58 -06:00
Josh Hawkins
e173377859 change warning to debug 2023-10-26 17:32:58 -06:00
Nicolas Mowen
86c59c1722 Fix birdseye layout (#8343) 2023-10-26 18:23:39 -04:00
Josh Hawkins
a399cb09fa Autotracking tweaks and docs update (#8345)
* refactor thresholds and reduce a duplicate call

* add camera to docs

* udpate docs
2023-10-26 18:21:58 -04:00
Nicolas Mowen
5a46c36380 Add other known birdseye aspect ratios (#8322)
* Add other known birdseye aspect ratios

* Formatting
2023-10-26 06:21:26 -05:00
Shaun Berryman
36c1e00a6b MQTT: Birdseye enabled/disabled and mode change support (#8291)
* support enabled and mode change for birdseye via mqtt

* resolve feedback from PR review
https://github.com/blakeblackshear/frigate/pull/8291#discussion_r1370083613

* change birdseye mode topic to set

* type in the docs

* these commented out lines should have never been in here
2023-10-26 06:20:55 -05:00
tpjanssen
859ab0e7fa Show event duration in landscape mode (#8301)
* Show event duration in landscape mode

* Update Events.jsx
2023-10-26 06:20:28 -05:00
Nicolas Mowen
cf2b56613f Don't overwrite event while cleaning up expired cameras (#8320) 2023-10-26 06:20:06 -05:00
Nicolas Mowen
1a9e00ee49 Add count of audio labels to active count (#8310)
* Add count of audio labels to active count

* Formatting
2023-10-24 19:26:46 -04:00
Josh Hawkins
b9649de327 Don't generate region boxes from motion when autotracking (#8306)
* no region boxes from motion boxes when ptz moving

* debug contours and calibration

* remove debugging

* clarifying comment
2023-10-24 19:25:22 -04:00
Nicolas Mowen
823550eed3 Reduce zones for timeline (#8300) 2023-10-24 19:24:59 -04:00
Nicolas Mowen
c141362614 Use norfair uninitialized score history for tracked object and update false positive docs (#8299)
* Update docs

* Use norfair score history to start object history

* Formatting
2023-10-24 19:24:30 -04:00
Russell Troxel
e0e8a6fcc9 Add --validate-config option for CI config validation (#8222)
* add `--validate-config` option for CI config validation

Signed-off-by: Russell Troxel <russell.troxel@segment.com>

* Fix Lint

Signed-off-by: Russell Troxel <russell.troxel@segment.com>

* Add docs & test live

Signed-off-by: Russell Troxel <russell.troxel@segment.com>

* Update docs/docs/configuration/advanced.md

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

* Fix Lint

Signed-off-by: Russell Troxel <russell@troxel.io>

---------

Signed-off-by: Russell Troxel <russell.troxel@segment.com>
Signed-off-by: Russell Troxel <russell@troxel.io>
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-10-23 20:33:52 -06:00
Nicolas Mowen
0b858419d1 re-enable init delay (#8283) 2023-10-23 20:50:22 -04:00
Nicolas Mowen
2fb7200fb7 Revamp object consolidation logic (#8289)
* Separate object reduction to own function and reduce confidence of boxes on edge of region

* Add tests for different scenarios

* Formatting
2023-10-23 20:20:21 -04:00
Nicolas Mowen
e9376ca285 Fix bug on bad storage stats read (#8275) 2023-10-22 13:35:19 -05:00
Nicolas Mowen
cff4b9651f Fix long webrtc connections failing (#8273)
* Fix webrtc timing out

* Only close pc
2023-10-22 13:34:56 -05:00
Josh Hawkins
9df5927ac5 Autotracking bugfixes and zooming updates (#8103)
* zoom in/out in search for lost objects

* predicted box should not be empty

* clean up and update zoom logic

* only zoom if enabled

* more cleanup

* check for valid velocity when zooming

* only try absolute zoom in if obj area has changed

* zoom logic

* don't enqueue lost object zoom if already at limit

* don't disable motion boxes during ptz moves

* velocity threshold based on move coefficients

* fix area zoom logic

* disable debug zoom

* don't process objects if ptz moving

* recalc with exponent

* change exponent

* remove lost object zooming

* increase distance threshold for stationary object

* increase distance threshold constant

* only zoom out if nonzero

* camera name in all debug logging

* add camera name to debug logging

* camera variable name consistency

* update calibration behavior and docs

* docs and better zooming

* more sensible target values

* docs wording

* fix velocity threshold variable

* zooming tweaks and remove iou for current objects

* debug and docs

* get valid velocity

* include zero

* additional debug statements

* add zoom hysteresis

* zoom on initial move if relative

* only update target box if we actually zoom

* merge dev

* use getattr instead of get

* increase distance threshold

* reverse logic

* get_camera_status after preset move to store zoom

* final tweaks and docs

* use constants and catch possible debug exception

* adjust zoom factor exponent

* don't run motion estimation when calling preset

* adjust dimension threshold

* use numpy for velocity estimate calcs

* more numpy conversion

* fix numpy shapes

* numpy zeros dimension

* more zoom out conditions

* fix velocity bug

* ensure init has been called in debug view

* ensure onvif init if enabling by mqtt

* change default hysteresis values

* recalc relative zoom value

* zoom out value

* try to zoom when object isn't moving

* try zoom when tracked object is not moving

* don't try to zoom every time

* negate zoom out condition when needed

* hysteresis constants for absolute zooming

* update zoom conditions

* don't recalc target box on zoom only

* zoom out if above area threshold

* don't print zooming debug for stationary obj

* revamp zooming to use area moving average

* zooming tweaks and expose property

* limit zoom with max target box

* use calibration to determine zoom levels

* zoom logic fix

* docs

* add tapo c200 camera

* fix initial absolute zoom

* small zoom logic fix

* better invalid velocity checks

* fix test

* really fix test this time
2023-10-22 12:59:13 -04:00
Nicolas Mowen
29f82add72 Fix player height (#8270) 2023-10-22 09:40:32 -05:00
Daniël van den Berg
d102ebf855 [CHANGE] More resilient and slightly faster PTZ (#8009)
* [CHANGE] More resilient and slightly faster PTZ

* Make "Check Black" happy.

* Make "check black" happier

* Remove unused named exception

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-10-22 09:08:05 -05:00
Nicolas Mowen
cb3990a0ac Catch ws reset error (#8266)
* Catch ws reset error

* Formatting
2023-10-22 06:23:31 -04:00
Blake Blackshear
9fc93c72a0 more consistent use of iterators in select queries (#8258) 2023-10-21 10:53:33 -05:00
Blake Blackshear
e13a176820 Update deps (#8261)
* update web deps

* update python deps

* actions deps
2023-10-21 10:53:21 -05:00
Blake Blackshear
1e71e36056 fix route for stats and version (#8263) 2023-10-21 10:40:46 -05:00
Blake Blackshear
18545718c1 refactor and disable access logs for stats and version (#8259) 2023-10-21 08:15:24 -05:00
Blake Blackshear
c8b38bdd47 address codeql scan results (#8260) 2023-10-21 08:08:03 -05:00
Nicolas Mowen
e80b6d9e5b Use different consolidation requirement depending on label (#8249) 2023-10-20 19:29:52 -04:00
Josh Hawkins
ee1e1b748c fix logic error in preset fetch (#8245) 2023-10-20 19:27:47 -04:00
Nicolas Mowen
0c2f3a9702 Adjust motion calibration to be more dynamic (#8250)
* Adjust motion calibration to be more dynamic

* isort
2023-10-20 19:22:38 -04:00
Nicolas Mowen
a3c0e30502 Use existing bounding box for region when object is stationary (#8248) 2023-10-20 19:21:34 -04:00
Nicolas Mowen
b4d5a3ef14 Fix dangling webrtc connections (#8251)
* fix dangling webrtc connections

* Make more efficient

* Close pc as well
2023-10-20 19:20:38 -04:00
tpjanssen
facd557f8c Change camera stats to be more structured (#8151)
* Change camera stats to be more structured

* Update stats.py

* Update stats.py

* Update System.jsx

Front end also breaks due to moved camera stats
2023-10-19 17:15:47 -05:00
Miguel Valenzuela
ac41b6e181 Update Output Args Presets AAC (#8161)
* Update Output Args Presets AAC

Upon researching the nuances of preset-record-generic-audio-copy & preset-record-generic-audio-aac

4c7ea01137/frigate/ffmpeg_presets.py (L341)
https://ffmpeg.org/ffmpeg.html#Main-options
https://stackoverflow.com/questions/70148683/will-ffmpeg-try-to-transcode-to-same-encoding

I'd suggest to disambiguate what these two do

* fix: lowercase
2023-10-19 17:14:56 -05:00
Nicolas Mowen
12487b3b60 Sync stationary object checks (#8238)
* Sync stationary object checks for all objects on a camera

* Formatting
2023-10-19 17:14:33 -05:00
Sergey Krashevich
8f349a6365 use sum() instead of len() to count only enabled cameras (#8232) 2023-10-19 17:14:06 -05:00
Nicolas Mowen
91f7d67c5e Smarter Regions (#8194)
* Smarter Regions

* Formatting

* Cleanup

* Fix motion region checking logic

* Add database table and migration for regions

* Update region grid on startup

* Revert init delay change

* Fix mypy

* Move object related functions to util

* Remove unused

* Fix tests

* Remove log

* Update the region daily at 2

* Fix logic

* Formatting

* Initialize grid before starting processing frames

* Move back to creating grid in main process

* Formatting

* Fixes

* Formating

* Fix region check

* Accept all but true

* Use regions grid for startup scan

* Add clarifying comment

* Fix new grid requests

* Add tests

* Delete stale region grids from DB
2023-10-18 18:21:52 -05:00
Nicolas Mowen
98200b7dda Fix recording segment management (#8220)
* Fix timing error

* Downgrade logs
2023-10-18 18:18:22 -05:00
Nicolas Mowen
282cbf8f40 Add FAQ item for cameras with bad sub streams (#8224) 2023-10-18 18:17:53 -05:00
winstona
cd35481e92 Fix recording events intermittently missing (#8162)
* fix queues not emptying fully by changing gets to a blocking call with short timeout

* add extra error/warning messages when there's a possibility of missing recording segments
2023-10-18 06:52:48 -05:00
Nicolas Mowen
126aed2798 Include non-free in hwaccel deps types (#8203) 2023-10-17 21:18:50 -04:00
Nicolas Mowen
efbc094bbc Fixes for ongoing events (#8208)
* Refresh ongoing and standard events

* Collapse ongoing when props are set

* Fix
2023-10-17 21:18:06 -04:00
Nicolas Mowen
c7b2c6b95d Pin all hwaccel deps (#8191) 2023-10-17 06:37:40 -05:00
Nicolas Mowen
1bdfc380c3 Delete timeline items along with event (#8192) 2023-10-17 06:37:07 -05:00
Sergey Krashevich
cac37e484d Upd: go2rtc v1.8.1 (#8166)
* go2rtc v1.8.0

* 1.8.1
2023-10-16 06:42:24 -05:00
Blake Blackshear
4469507e5b dont set has_clip to false unless the event is older (#8179) 2023-10-15 13:31:56 -05:00
Nicolas Mowen
8626160df2 Show ongoing events at top of events page (#8168)
* Show ongoing events separately

* Separate to separate event function

* Change icon type

* Hide in progress when date range search occurs

* Collapse in progress when filtering

* Fix event overlay

* Make tooltip more clear

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-10-15 13:01:44 -04:00
Nicolas Mowen
d4d2bb2521 Remove sizing on summary icons (#8169) 2023-10-15 08:14:44 -05:00
Blake Blackshear
e545dfc47b Websocket changes (#8178)
* use react-use-websockets

* check ready state

* match context shape

* jsonify dispatch

* remove unnecessary ready check

* bring back h

* non-working tests

* skip failing tests

* upgrade some dependencies

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2023-10-15 08:14:20 -05:00
Blake Blackshear
9ea10f8541 Don't zero out motion during calibration (#8163)
* don't zero out motion boxes

* define detect resolution to speed up tests
2023-10-14 08:05:44 -04:00
Nicolas Mowen
fa6c6c50d0 Support ManagedMediaSource and update docs to reflect iOS 17.1+ supports MSE (#8160)
* Refactor media source handling in MsePlayer.js and Birdseye.jsx to support ManagedMediaSource

* lint

* Update docs to reflect iOS supporting mse

---------

Co-authored-by: Sergey Krashevich <svk@svk.su>
2023-10-13 19:17:09 -05:00
Nicolas Mowen
4c7ea01137 Don't print ffprobe stdout logs (#8153) 2023-10-13 17:04:38 -05:00
Nicolas Mowen
34b315cc8c Fix bug forcing rtsp for audio detection ffmpeg process (#8156)
* Fix forcing rtsp for audio process

* Send as list
2023-10-13 17:03:04 -05:00
Nicolas Mowen
9b687d77ce Add support for nvidia decoder and encoder utilization stats (#8150)
* Add encoder and decoder stats to nvidia hwaccel stats

* Fix

* Fix
2023-10-13 09:44:18 -05:00
tpjanssen
e32bd4ab15 Added audio sensors to camera metrics and API stats (#8109)
* Added audio sensor to camera metrics and API stats

* Update types.py

* Update app.py
2023-10-13 06:17:41 -05:00
Nicolas Mowen
e19c0668e7 Require init delay (#8126) 2023-10-13 06:16:36 -05:00
Nicolas Mowen
869bb2b177 clarifications and fixes for live go2rtc example (#8132)
* clarifications and fixes for live go2rtc example

* fix
2023-10-13 06:15:39 -05:00
Nicolas Mowen
3869b274e2 Add note about recording retention to manual event docs (#8141) 2023-10-13 06:14:55 -05:00
Nicolas Mowen
2379e6fd1b Support TiB in storage calculation (#8142) 2023-10-13 06:14:24 -05:00
Nicolas Mowen
dcafcc1320 Fix Config success message (#8121)
* Fix saved message

* Fix save mask
2023-10-10 08:23:18 -05:00
Nicolas Mowen
d508088bd0 Add audio role to camera config docs (#8113) 2023-10-09 18:16:34 -05:00
Felipe Santos
97e5a98b95 Fix jetson docker build with old apt key (#8112)
* Fix jetson docker build with old apt key

* Fix CI
2023-10-09 18:16:05 -05:00
Nicolas Mowen
68ebd55425 Lower min scores for person and car in plus docs (#8114) 2023-10-09 18:15:23 -05:00
tpjanssen
a82334ca1c API enhancements (#8107) 2023-10-09 08:52:26 -05:00
Nicolas Mowen
d7ddcea951 Show settings cog for camera toggles on mobile (#8098)
* Show settings cog on mobile

* Cleanup ui and remove label

* Fix tests
2023-10-08 14:49:41 -05:00
Daniel
cc6e049966 Change multiselect camera icon (#8016)
* CenterFocusString icon

* Add CenterFocusString to multiselect

* Rename CenterFocusString.jsx

* Rename icon and make it smaller

* Rename icon

* Fix lint and use icon
for speech

* remove unused vars

* Remove unused import
2023-10-08 14:30:53 -05:00
Josh Hawkins
dbd21eb6fa use getattr instead of get (#8094) 2023-10-08 14:30:23 -05:00
Nicolas Mowen
e1a6398219 Fix trt build (#8091) 2023-10-07 09:51:02 -05:00
Nicolas Mowen
7f5fba08b7 Fix export name (#8090) 2023-10-07 08:40:20 -06:00
Tyler Fisher
c35e8371be corrected a typo in the "Configuring Minimum Volume" section. (#8012) 2023-10-07 09:23:49 -05:00
Nicolas Mowen
49e7723405 Add debug logs for audio labels (#8080) 2023-10-07 09:23:11 -05:00
Nicolas Mowen
52cc707eb8 Consider new attribute a significant change (#8054)
* Consider new attribute a significant change

* Update object_processing.py
2023-10-07 09:22:45 -05:00
tpjanssen
c47b02d2fe Added filter option for min/max score for event to API function /events (#8079)
* Update api.md

* Update api.md

* Added filter option for min/max score for event to API function /events

* Added filter for submitted events

* Update http.py
2023-10-07 09:22:14 -05:00
Felipe Santos
3a460133d4 Add docker healthcheck (#8006)
* Add docker healthcheck

* Fix unknown start-interval

* Add HEALTHCHECK for tensorrt and bump default start-period

* Move healthcheck to deps stage
2023-10-07 09:21:03 -05:00
Josh Hawkins
67a5a7d21a onvif: use preset token if name is unsupported (#8046)
* onvif: use preset token if name is unsupported

* move parenthesis
2023-10-07 09:20:42 -05:00
theawes0megamer
5d2b87e077 Update ESXi instructions (#8018) 2023-10-07 09:20:29 -05:00
Josh Hawkins
8298806028 update list of onvif capable cams (#8021)
* update list of onvif capable cams

* clarify hikvision

* wording

* hikvision

* add sunba and ctronics from forum reports

* add cams
2023-10-07 09:20:10 -05:00
Nicolas Mowen
8cc7acd591 Zone docs (#8047)
* Update zone docs

* Document zone inertia in zone docs
2023-10-07 09:19:56 -05:00
Nicolas Mowen
8bde914939 Fix a couple bugs (#8045) 2023-10-07 09:18:34 -05:00
Josh Hawkins
fe9fcf3eaa remove erroneous check for move threads (#8031) 2023-10-07 09:18:07 -05:00
Josh Hawkins
20c2ab39bc disable zooming if relative zoom not supported (#8028) 2023-10-07 09:17:54 -05:00
Nicolas Mowen
08ef69bac4 Add recordings timeline entry for frigate+ attributes (#8063)
* Add attribute item to timeline

* Add face icon

* Add support for other icons

* Cleanup

* Ensure attributes are only updated once

* don't show _ in attributes
2023-10-07 09:17:18 -05:00
Nicolas Mowen
79fabbb6b0 Fix recording snapshot time range (#8073)
* Fix recording snapshot time range

* Formatting

* Formatting
2023-10-07 09:16:12 -05:00
Nicolas Mowen
8941aa5311 Ensure deleted export file name is safe (#8089)
* Ensure deleted export file name is safe

* Fix import
2023-10-07 09:12:48 -05:00
Blake Blackshear
14d2b79c72 Security fixes (#8081)
* use safeloader

* use json responses wherever possible

* remove CORS and add CSRF token

* formatting fixes

* add envjs back

* fix baseurl test
2023-10-06 22:20:30 -05:00
Nicolas Mowen
9a4f970337 Set default min score for attributes labels to 0.7 (#8001)
* Set min score for attributes to 0.7

* Allow other fields to be set
2023-09-30 07:38:15 -05:00
Josh Hawkins
22b9507797 add image of debug view (#8003) 2023-09-30 06:25:39 -05:00
Nicolas Mowen
37379e6fba Update autotracking gif (#8002) 2023-09-29 20:08:15 -05:00
Nicolas Mowen
232588636f Force birdseye to standard aspect ratio (#7994)
* Force birdseye to standard aspect ratio

* Make rounding consistent

* Formatting
2023-09-29 17:53:45 -05:00
Josh Hawkins
e77fedc445 docs for onvif camera support (#7999)
* docs for onvif camera support

* fix warning

* warning to caution

* update table

* centering

* no autotracking for reolinks

* zoom only for 511WA
2023-09-29 17:52:57 -05:00
Josh Hawkins
ead03c381b Autotracking improvements and bugfixes (#7984)
* add zoom factor and catch motion exception

* reword error message

* check euclidean distance of estimate points

* use numpy for euclidean distance

* config entry

* use zoom factor and zoom based on velocity

* move debug inside try

* change log type to info

* logger level warning

* docs

* exception handling
2023-09-28 18:21:37 -05:00
Nicolas Mowen
0048cd5edc Pull radeon driver from bookworm (#7983) 2023-09-28 18:20:48 -05:00
On Freund
56dfcd7a32 Update CAP_PERFMON instructions on hardware_acceleration.md (#7957)
* Update CAP_PERFMON instructions on hardware_acceleration.md

* Three -> there
2023-09-28 18:20:09 -05:00
Nicolas Mowen
9f3ac19e05 Limit max player height (#7974) 2023-09-28 18:01:23 -05:00
Josh Hawkins
50f13b7196 thread lock for move queues (#7973) 2023-09-28 18:01:05 -05:00
tpjanssen
50b17031c4 Update api.md (#7971)
* Update api.md

* Update api.md
2023-09-28 18:00:32 -05:00
mvn23
d11c1a2066 Update camera_specific.md (#7694)
Add information for TP-Link VIGI stream settings
2023-09-27 06:19:29 -05:00
Josh Hawkins
27144eb0b9 Autotracker: Basic zooming and moves with velocity estimation (#7713)
* don't zoom if camera doesn't support it

* basic zooming

* make zooming configurable

* zooming docs

* optional zooming in camera status

* Use absolute instead of relative zooming

* increase edge threshold

* zoom considering object area

* bugfixes

* catch onvif zooming errors

* relative zooming option for dahua/amcrest cams

* docs

* docs

* don't make small movements

* remove old logger statement

* fix small movements

* use enum in config for zooming

* fix formatting

* empty move queue first

* clear tracked object before waiting for stop

* use velocity estimation for movements

* docs updates

* add tests

* typos

* recalc every 50 moves

* adjust zoom based on estimate box if calibrated

* tweaks for fast objects and large movements

* use real time for calibration and add info logging

* docs updates

* remove area scale

* Add example video to docs

* zooming font header size the same as the others

* log an error if a ptz doesn't report a MoveStatus

* debug logging for onvif service capabilities

* ensure camera supports ONVIF MoveStatus
2023-09-27 06:19:10 -05:00
Josh Hawkins
64705c065f update docs sidebar for go2rc 1.7.1 (#7946) 2023-09-27 06:11:37 -05:00
Nicolas Mowen
08eefd8385 Fix frame height default value in docs (#7947) 2023-09-27 06:11:23 -05:00
Blake Blackshear
705ee54315 plus docs update (#7964)
* plus docs update

* add attribute labels
2023-09-27 06:10:53 -05:00
Nicolas Mowen
e26bb94007 Add seconds to exports (#7955) 2023-09-27 06:10:37 -05:00
Nicolas Mowen
1aba8c1ef5 Refactor time filter (#7962)
* Add ability to filter events by start time

* Add tests

* Add time param to events

* Add time picker

* Update docs

* Catch overnight case

Update comment

* Cleanup

* Fix tests
2023-09-27 06:09:38 -05:00
Nicolas Mowen
f92237c9c1 Fix recording timeline info text in light mode (#7963) 2023-09-27 06:08:58 -05:00
Blake Blackshear
0858859939 Dep updates (#7933)
* update actions

* web deps
2023-09-24 07:00:41 -05:00
Nicolas Mowen
1c27ee2d2b Increase initial hit count for norfair tracker (#7925)
* Increase initial hit count of tracked object

* Formatting
2023-09-24 06:32:43 -05:00
Nicolas Mowen
08586f8f65 Fix case where camera is disabled but autotrack is enabled (#7914) 2023-09-24 05:05:29 -05:00
Blake Blackshear
cfd04d164e add more robust plus documentation (#7905)
* add more robust plus documentation

* rename page

* note changing circumstances
2023-09-22 07:35:04 -05:00
Nicolas Mowen
fa2e4993d9 fix typo (#7903) 2023-09-21 17:08:31 -05:00
Nicolas Mowen
080d7a2d88 Update go2rtc to 1.7.1 (#7657)
* Update go2rtc to 1.7.0

* Update docs references

* Add docs for homekit restream

* Exit with better error message when substitution is not correct

* Formatting

* Fix pin

* Update go2rtc dep

* Update go2rtc docs references

* Fix name

* Mute player by default

* Remove homekit mention
2023-09-21 06:52:46 -06:00
Nicolas Mowen
7d0216b8fb Improve default timelapse args and make timelapse customizable (#7840)
* Add args to ignore audio and only process keyframes

* Add timelapse args to config

* Update docs

* Formatting

* Fix spacing

* Fix formatting

* add example of math for pts
2023-09-21 06:20:05 -06:00
Scott Stancil
c743dfd657 Add capability to link directly to an event ID in the web UI (#7803)
* Add capability to link directly to an event ID in the web UI

* Move event ID to searchParams, add View All button

* Use searchParams inside eventsFetcher
2023-09-21 05:27:23 -05:00
Nicolas Mowen
4a6579527b Add docs for audio volume config (#7807)
* Add docs for audio volume

* fix typo
2023-09-21 05:26:44 -05:00
Nicolas Mowen
fd9196ae3e add note about network bandwidth permissions and don't set interfaces by default (#7813)
* add note about network bandwidth permissions

* Update default net int

* Set default network interfaces to empty

* Don't read interfaces if none are set

* Formatting

* Add stderr output
2023-09-21 05:26:22 -05:00
Josh Hawkins
a3eccce8f3 use useEffect for key listeners on camera control panel (#7827)
* use useEffect for key listeners

* dependencies

* useCallbacks
2023-09-21 05:25:57 -05:00
Nicolas Mowen
111933d3b4 Refactor Exports To Better Handle Recording Configs (#7846)
* Refactor export logic

* Fix param

* Ensure float is used

* Fix variable assignment

* Fix range

* Formatting
2023-09-21 05:24:49 -05:00
Nicolas Mowen
76d4f16db3 Add cancel button to delete starred event dialog (#7853) 2023-09-21 05:24:12 -05:00
Nate Meyer
0d6bb6714a Add support for selecting a specific GPU to use when converting TRT models (#7857) 2023-09-21 05:23:51 -05:00
Nicolas Mowen
5d30944d6e Add fire alarm to default audio labels (#7854)
* Add fire alarm to default audio list

* Update docs for default audio label list

* Update audio detectors with default label list
2023-09-21 05:23:26 -05:00
Nicolas Mowen
3797340efa Set export sub process to be lower priority (#7862) 2023-09-21 05:22:35 -05:00
Nicolas Mowen
8728139ae3 Fix birdseye exception handling (#7864) 2023-09-21 05:22:11 -05:00
Nicolas Mowen
730851cda9 Remove frame interval for qsv timelapse output args (#7873) 2023-09-21 05:21:53 -05:00
Nicolas Mowen
46412e99d9 revert 1/2 min region size (#7883) 2023-09-21 05:21:32 -05:00
Nicolas Mowen
e5664826b1 Add ability to play and delete exports from webUI (#7882)
* add ability to playback exports on exports screen

* Add ability to delete exports from exports screen

* Fix large dialog

* Formatting
2023-09-21 05:20:57 -05:00
Nicolas Mowen
9a1c8b2cc4 Remove maximum inertia constraint (#7890) 2023-09-21 05:20:26 -05:00
Nicolas Mowen
6aedc39a9a Remove quotes from tensorrt env variable example (#7823) 2023-09-16 05:00:07 -05:00
Nicolas Mowen
b9e6afa659 Fix webUI success / error messages (#7820)
* Fix export error handling

* Ensure that config editor success / error is updated each time

* Set response

* Formatting
2023-09-16 04:59:50 -05:00
Nicolas Mowen
9185753322 Fix Python Dependabot (#7762) 2023-09-11 17:07:51 -05:00
Nicolas Mowen
a1b50d2cf4 Update python deps (#7763) 2023-09-11 17:07:29 -05:00
Nicolas Mowen
a2206bb177 Reduce database queries to necessary fields (#7751)
* Reduce database queries to necessary labels

* Set columns for other queries

* skip creating model instances

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-09-11 17:07:04 -05:00
Blake Blackshear
5658e5a4cc more deps (#7712) 2023-09-06 08:32:09 -05:00
dependabot[bot]
2a0b8a78fe Bump actions/checkout from 3 to 4 (#7696)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-06 08:02:16 -05:00
dependabot[bot]
b80ff1aa3a Bump actions/setup-python from 4.6.1 to 4.7.0 (#7156)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.6.1 to 4.7.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.6.1...v4.7.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-06 07:54:10 -05:00
Blake Blackshear
f682203f9d Merge remote-tracking branch 'origin/master' into dev 2023-09-04 10:48:24 -05:00
flyize
a63af1a891 Update false_positives.md (#7685)
Mention about false positives from stationary objects. Added because I just had this issue and the current page didn't really help me.
2023-09-04 10:12:24 -05:00
Nicolas Mowen
64fd5f8be3 Upgrade more deps (#7684)
* Bump axios from 1.4.0 to 1.5.0 in /web

Bumps [axios](https://github.com/axios/axios) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.4.0...v1.5.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @testing-library/jest-dom from 5.17.0 to 6.1.2 in /web

Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.17.0 to 6.1.2.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.17.0...v6.1.2)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump autoprefixer from 10.4.14 to 10.4.15 in /web

Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.14 to 10.4.15.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.14...10.4.15)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump postcss from 8.4.27 to 8.4.29 in /web

Bumps [postcss](https://github.com/postcss/postcss) from 8.4.27 to 8.4.29.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.27...8.4.29)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump video.js from 8.3.0 to 8.5.2 in /web

Bumps [video.js](https://github.com/videojs/video.js) from 8.3.0 to 8.5.2.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v8.3.0...v8.5.2)

---
updated-dependencies:
- dependency-name: video.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump preact from 10.16.0 to 10.17.1 in /web

Bumps [preact](https://github.com/preactjs/preact) from 10.16.0 to 10.17.1.
- [Release notes](https://github.com/preactjs/preact/releases)
- [Commits](https://github.com/preactjs/preact/compare/10.16.0...10.17.1)

---
updated-dependencies:
- dependency-name: preact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Merge

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 10:11:50 -05:00
Nicolas Mowen
6e35c97376 Upgrade deps (#7664)
* Update peewee-migrate requirement from ==1.10.* to ==1.11.*

Updates the requirements on [peewee-migrate](https://github.com/klen/peewee_migrate) to permit the latest version.
- [Changelog](https://github.com/klen/peewee_migrate/blob/develop/Changelog)
- [Commits](https://github.com/klen/peewee_migrate/compare/1.10.0...1.11.0)

---
updated-dependencies:
- dependency-name: peewee-migrate
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update web deps

* Update PR deps

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-03 12:33:03 -05:00
Nicolas Mowen
db6ee41f3c Improve error checking and handling for recordings export (#7647)
* Improve error checking and handling for recordings export

* Cleanup

* Remove order by
2023-09-02 05:42:33 -05:00
Nicolas Mowen
36434bb26d Run flask as multi threaded (#7648) 2023-09-02 05:41:46 -05:00
Nicolas Mowen
3c25c578f0 Add troubleshooting docs for recordings (#7381) 2023-09-01 07:07:55 -05:00
Nicolas Mowen
2e4f5bc0e0 Don't fail ptz if camera does not support relative zoom (#7542)
* Remove relative zoom space as it is not used

* Catch case where camera does not support relative zoom

* Cleanup
2023-09-01 07:07:18 -05:00
Nicolas Mowen
bd0d16a75b Set commands before subscribing to messages (#7550) 2023-09-01 07:06:59 -05:00
Nicolas Mowen
7069ef93bb Catch broken pipe when sending to websocket (#7556) 2023-09-01 07:06:39 -05:00
Nicolas Mowen
737681aa4f Add default hass location (#7549) 2023-09-01 07:06:22 -05:00
Redsandro
77cb469430 Clarify tmpfs and shm in installation docs (#7551)
* Update installation.md

* Update docs/docs/frigate/installation.md

Name specific endpoints

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

* Update installation.md

shorten `tmpfs` mention

* Update docs/docs/frigate/installation.md

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-09-01 07:05:11 -05:00
Ani Betts
3e18d58921 Add link to audio classes (#7554)
Link to the audio detection class list in the docs
2023-09-01 07:04:26 -05:00
Sergey Krashevich
de6a916939 WebUI: audio icons in MultiSelect component (#7564)
* Add support for audio icons in MultiSelect component

* update icon

* speaker icon
2023-09-01 07:04:07 -05:00
Nicolas Mowen
45f7db5cf1 Show sub label in debug view when available (#7567)
* Show sub label in debug view if available

* Ensure sub label is printable to be used
2023-09-01 07:03:47 -05:00
Nicolas Mowen
bbdf5e1bee Don't count in progress events as duplicates (#7568)
* Don't count in progress events as duplicates

* Fix sql
2023-09-01 07:02:35 -05:00
Josh Hawkins
b538572afb Clarify autotracking preset docs (#7576) 2023-09-01 07:01:48 -05:00
Sergey Krashevich
14048cb83e Update NGINX version to 1.25.2 (#7583) 2023-09-01 07:01:34 -05:00
Sergey Krashevich
602041beb1 Update s6 overlay version to 3.1.5.0 in the Docker installation script (#7584) 2023-09-01 07:01:19 -05:00
Sergey Krashevich
ef6b464d0e Update libusb version to v1.0.26 in Dockerfile (#7585) 2023-09-01 07:01:06 -05:00
Sergey Krashevich
731743c7e5 Refactor AudioTfl class to accept the number of detection threads as a parameter in the constructor, and update the usage of the num_threads attribute accordingly (#7588) 2023-09-01 07:00:11 -05:00
Nicolas Mowen
f25bee7672 Remove custom model example from basic coral docs (#7639) 2023-09-01 06:59:08 -05:00
spacebares
7c629c1874 clarify birdseye restream in docs (#7521)
* clarify birdseye restream in docs

* Update docs/docs/configuration/restream.md

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

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-08-19 16:20:43 -05:00
Nicolas Mowen
6146afe8f7 Make clear only network storage is supported for addon (#7505)
* Make clear only network storage is supported for addon

* fix typo

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-08-19 16:19:52 -05:00
Nicolas Mowen
c815f3c331 Clarify go2rtc requirement for ha integration (#7503) 2023-08-19 13:41:26 -05:00
Nicolas Mowen
767abed7f0 Catch websocket exception in output (#7525) 2023-08-19 13:38:47 -05:00
Ikko Eltociear Ashimine
28ea2afa51 Fix typo in installation.md (#7463)
intall -> install
2023-08-13 06:23:45 -05:00
Nicolas Mowen
3921a7faa2 Catch case where detected object has a height of 0 (#7425) 2023-08-10 05:51:30 -05:00
Jirasak Nopparat
4c63ad767a Remove unused code (#7430) 2023-08-10 05:50:01 -05:00
Nicolas Mowen
afe3b5dd3d Fix linter error (#7428) 2023-08-10 05:49:11 -05:00
Nicolas Mowen
fbed3fbb8b Fix audio filter config (#7401) 2023-08-06 12:19:28 -05:00
Andrew Reiter
318ae28004 Revert numpy upgrade in -tensorrt image (#7348) 2023-08-05 05:49:06 -05:00
Sergey Krashevich
24365fb865 bugfix: date selection in events calendar (#7374)
* Refactor Calendar component to update month details only when year or month changes

* Update web/src/components/Calendar.jsx

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-08-05 05:48:14 -05:00
Nicolas Mowen
36ccaa4cff Improve debug logs for audio & ptz (#7387)
* Update audio.py

* Add debug log for ptz info

* Formatting

* Fix check
2023-08-05 05:47:56 -05:00
Nicolas Mowen
98576418a8 Improve Storage Logs (#7338)
* Make storage maintenance messages more clear

* Log when storage maintenance is happening

* Formatting
2023-08-01 06:26:45 -05:00
Blake Blackshear
c2e2656407 Update web deps (#7339)
* web dev deps

* update preact

* audit fix
2023-08-01 06:26:01 -05:00
Andrew Reiter
e941012d48 Disambiguate 12h export filename timestamp (#7340)
* Add AM/PM to exported video filename

* Switch to 24h time
2023-08-01 06:25:43 -05:00
Andrew Reiter
7d3e5c9c4c Revert numpy upgrade (#7341)
* Revert numpy upgrade

* Upgrade arm64 onnx version to match amd64

* Increase CODEOWNERS granularity

Not sure if it has an effect since I don't have repository write access
2023-07-31 21:45:50 -05:00
Nicolas Mowen
b7ff6735f6 Add support for stationary and active timeline entires (#7344)
* Add support for stationary and active timeline entires

* Be sure to update stored event data copy with stationary
2023-07-31 21:43:48 -05:00
Nicolas Mowen
f57d21039e Organize configuration sidebar (#7333)
* Organize configuration sidebar

* Add go2rtc config file

* More reorganization
2023-07-30 18:29:50 -05:00
Martin Weinelt
d0b38f0a47 Reuse CACHE_DIR constant (#7306) 2023-07-29 13:19:21 -05:00
Nicolas Mowen
b79b1d9443 Fix frame not in cache error (#7313) 2023-07-29 07:11:45 -05:00
Nicolas Mowen
947ccbc654 Accept floats for export when used directly with event start / end time (#7314)
* Accept floats for export when used directly with event start / end time

* Formatting

* Formatting
2023-07-29 07:05:17 -05:00
Sergey Krashevich
eaf7078d98 Refactor Dockerfile to use scratch as base image and add go2rtc binary using ADD command (#7321) 2023-07-28 21:33:21 -05:00
Nate Meyer
b42e995f0f Update OpenVINO 2022.3.1 (#7319)
* Use build platform for running OpenVino model conversion

* Update OpenVINO to 2022.3.1 and upgrade numpy
2023-07-28 19:27:53 -05:00
Nicolas Mowen
f8c0f74ab8 Batch delete recordings for removed cameras as well (#7302) 2023-07-28 05:49:52 -05:00
Andrew Reiter
f9d422b5b5 Revert the switch to zstd docker layer compression (#7308)
Setting cache-to=compression=zstd causes the resulting user-pulled image
to have zstd-compressed layers, which are not compatible with docker
prior to 23.0. Ubuntu 20.04 still ships with docker 20.10, which yields
`Error processing tar file` when pulling these images.

Renaming the jetpack cache images is my way of clearing the cache of the
prior zstd layers, and it clarifies the convention I used for the other
cache images in which there is one cache per base image/job, not per
target/step. We don't need to delete the non-jetson cache images because
they haven't been rebuilt since zstd was enabled.
2023-07-28 05:37:51 -05:00
Andrew Reiter
f0dda499f8 Fix CI (#7303)
* fixup! Split independent builds into parallel jobs

* Combine caches within steps of same job

* Remove Maintain Cache workflow

Now that we're caching to ghcr instead of gha, we don't have to worry
about gha's cache eviction after 7 days/10 GB.
2023-07-27 10:41:41 -06:00
Andrew Reiter
a96602f3f5 Build CI images in parallel (#7296)
* Factor out common setup steps

* Re-order

* Split independent builds into parallel jobs

* Cache jetson builds

* Use zstd compression

* Switch from gha cache to registry cache

A CI run (four images cached with mode-max) populates the cache with 295
cache entries totalling 23.44 GB. This exceeds gha's 10GB limit, causing
trashing. Try with a registry instead.

* Enable manual CI runs
2023-07-27 06:56:12 -06:00
Nicolas Mowen
961ce03835 Fix ffmpeg preset typo (#7293)
* Fix ffmpeg preset typo

* Fix qsv typo

Co-authored-by: Sergey Krashevich <svk@svk.su>

---------

Co-authored-by: Sergey Krashevich <svk@svk.su>
2023-07-26 18:48:05 -05:00
Nicolas Mowen
761daf46ea Refactor Recordings (#7275)
* Run ffmpeg sub process & video_properties as async

* Run recording cleanup in the main process

* More cleanup

* Use inter process communication to write recordings into the DB

* Formatting
2023-07-26 05:55:08 -05:00
Nicolas Mowen
9016a48dc7 Refactor Audio Events To Use stdout Pipe (#7291)
* Cleanup audio detection

* Read audio frames from ffmpeg process directly

* Handle case where process has stopped
2023-07-26 05:51:45 -05:00
Andrew Reiter
a96a951e23 Nvidia Jetson ffmpeg + TensorRT support (#6458)
* Non-Jetson changes

Required for later commits:
- Allow base image to be overridden (and don't assume its WORKDIR)
- Ensure python3.9
- Map hwaccel decode presets as strings instead of lists
Not required:
- Fix existing documentation
- Simplify hwaccel scale logic

* Prepare for multi-arch tensorrt build

* Add tensorrt images for Jetson boards

* Add Jetson ffmpeg hwaccel

* Update docs

* Add CODEOWNERS

* CI

* Change default model from yolov7-tiny-416 to yolov7-320

In my experience the tiny models perform markedly worse without being
much faster

* fixup! Update docs
2023-07-26 05:50:41 -05:00
Nicolas Mowen
680198148b Fix build (#7266) 2023-07-23 17:22:54 -05:00
Nicolas Mowen
dc44a6c3b4 Community Supported Boards Framework (#7114)
* Make main frigate build non rpi specific and build rpi using base image

* Add boards to sidebar

* Fix docker build

* Fix docs build

* Update pr branch for testing

* remove target from rpi build

* Remove manual build

* Add push build for rpi

* fix typos, improve wording

* Add arm build for rpi

* Cleanup and add default github ref name

* Cleanup docker build file system

* Setup to use docker bake

* Add ci/cd for bake

* Fix path

* Fix devcontainer

* Set targets

* Fix build

* Fix syntax

* Add wheels target

* Move dev container to trt

* Update key and fix rpi local

* Move requirements files and set intermediate targets

* Add back --load

* Update docs for community board development

* Update installation docs to reflect different builds available

* Update docs with official and community supported headers

* Update codeowners docs

* Update docs

* Assemble main and standard builds

* Change order of pushes

* Remove community board after successful build

* Fix rpi bake file names
2023-07-23 16:45:29 -05:00
Sean Kelly
157b160b9d Resolve conflict (#7264) 2023-07-23 10:52:41 -06:00
Thomas Anderson
d0413e3ea8 fix: allow env var templating for go2rtc rtsp creds (#6449) 2023-07-23 08:21:51 -05:00
Nicolas Mowen
6a4f317403 Update reolink config (#7253) 2023-07-23 07:48:14 -05:00
JeffWDH
8481ab3745 Update TensorRT driver requirement documentation (>=530) (#7221)
TensorRT release 23.03 requires a minimum of driver version 530.

https://docs.nvidia.com/deeplearning/tensorrt/container-release-notes/index.html#rel-23-03
2023-07-23 07:47:22 -05:00
Sergey Krashevich
a8cef179e7 Update go2rtc to version 1.6.2 (#7250) 2023-07-22 14:14:48 -05:00
spacebares
0fd1eaff43 scroll camera list in camera/recordings route (#7195) 2023-07-21 07:31:02 -05:00
Nicolas Mowen
d30a738960 Show status when mask is saved (#7212) 2023-07-21 07:30:22 -05:00
Nicolas Mowen
bfa7a5cc60 db improvements (#7227)
* Store camera labels in dict and other optimizations

* Add max on timeout so it is at least 60

* Ensure db timeout is at least 60

* Update list once a day to ensure new labels are cleaned up

* Formatting

* Insert recordings as bulk instead of individually.

* Fix

* Refactor event and timeline cleanup

* Remove unused
2023-07-21 07:29:50 -05:00
Nicolas Mowen
b655eca152 Set supported ptz features in init to not fail when camera has an error (#7228) 2023-07-21 07:27:07 -05:00
Nicolas Mowen
f2ff55dba2 Set timeout based on number of cameras (#7219) 2023-07-19 07:42:32 -05:00
Nicolas Mowen
91aadb6044 Don't show frigate+ button for audio / custom events (#7203) 2023-07-18 07:41:45 -06:00
Nicolas Mowen
c5b8d13beb Save audio scores and add audio filter config (#7185)
* Send and save score for external events

* Add audio filters config

* Fix access

* Add docs

* Cleanup
2023-07-17 06:07:15 -05:00
Nicolas Mowen
dacf45cd88 Add tests for recordings retention and fix bug (#7183)
* Add tests for segment info

* Fix logic
2023-07-16 13:07:15 -05:00
Nicolas Mowen
c6d0e93157 Allow customization of tooltip capitalization (#7172) 2023-07-16 07:44:05 -05:00
Nicolas Mowen
662025a961 Remove faster_fifo (#7181)
* Remove faster_fifo

* Remove const
2023-07-16 07:42:56 -05:00
Nicolas Mowen
07155b1fa9 Show / Download Exported recordings UI (#7171)
* Start with getting list of exports

* List downloadable exports in export page

* Fix downloading

* use swr instead of effect
2023-07-15 15:13:53 -05:00
Nicolas Mowen
8e584cf844 Add option for enabling sync recordings (#7169) 2023-07-15 08:38:21 -05:00
Nicolas Mowen
d0873631cc Fix logic (#7165) 2023-07-14 20:46:01 -05:00
Nicolas Mowen
dfd3fcdff6 Publish audio detections (#7159)
* Send mqtt message when audio is detected

* Fix value

* Add audio topics to mqtt docs and add mqtt headers

* Use existing standard for values

* Update mqtt.md
2023-07-14 19:06:00 -05:00
Nicolas Mowen
00016b7499 Save average dBFS and retain segment with dBFS in motion mode (#7158)
* Hold audio info queue for recordings

* Add dBFS to db

* Cleanup

* Formatting

* Fix check
2023-07-14 19:05:14 -05:00
Nate Meyer
5bb5e2dc5a Add check for valid label index for object detection (#7149) (#7164) 2023-07-14 19:01:53 -05:00
Josh Hawkins
dc2e786a6f remove sleeps and improve queue logic (#7163) 2023-07-14 19:01:10 -05:00
Nicolas Mowen
598ae98bfe Fix incorrect import in Config (#7157) 2023-07-14 06:32:17 -06:00
Sergey Krashevich
ce3a544ecd Feature: automatic camera resolution configuration (#6810)
* Add auto configuration for height, width and fps in detect role

* Add auto-configuration for detect width, height, and fps for input roles with detect in the CameraConfig class in config.py

* Refactor code to retrieve video properties from input stream in CameraConfig class and add optional parameter to retrieve video duration in get_video_properties function

* format

* Set default detect dimensions to 1280x720 and update DetectConfig to use the defaults

* Revert "Set default detect dimensions to 1280x720 and update DetectConfig to use the defaults"

This reverts commit a1aed0414d.

* Add default detect dimensions if autoconfiguration failed and log a warning message

* fix warn message spelling on frigate/config.py

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

* Ensure detect height and width are not None before using them in camera configuration

* docs: initial commit

* rename streamInfo to stream_info

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

* Apply suggestions from code review

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

* Update docs

* handle case then get_video_properties returns 0x0 dimension

* Set detect resolution based on stream properties if available, else apply default values

* Update FrigateConfig to set default values for stream_info if resolution detection fails

* Update camera detection dimensions based on stream information if available

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-07-14 06:56:03 -05:00
Sergey Krashevich
6ac36e8436 Fix: Add limit to event query (#7108)
* Add limit to event query for fetching latest event with specified label and camera name

* Refactor the label_thumbnail function in frigate/http.py to simplify the event_query logic and improve code readability
2023-07-14 06:30:47 -05:00
Nicolas Mowen
5c12762cb5 Fix Birdseye Width & PTZ control panel (#7118)
* Cleanup birdseye UI

* Cleanup

* Fix reversed condition
2023-07-14 06:29:57 -05:00
Nicolas Mowen
3a0c36e8db Refactor ff queue size (#7116)
* Refactor queue size

* Only use enabled cameras

* Formatting
2023-07-14 06:29:11 -05:00
Nicolas Mowen
6adc810145 Sub label api score (#7113)
* Support setting sub label scores via API

* Update docs

* Update docs

* Formatting

* Throw error when score is outside expected bounds

* Fix / cleanup
2023-07-14 06:28:16 -05:00
Sergey Krashevich
6d34f2229b WebUI: Show label & sub labels values next to the score (#7121)
* Refactor event label and sub-label score display in Events.jsx to include the event label and sub-label percentage

* Revert "Refactor event label and sub-label score display in Events.jsx to include the event label and sub-label percentage"

This reverts commit 87c23adf1e.

* Refactor event label and sub label score display in Events component
2023-07-14 06:25:53 -05:00
jpverdejo
b909ff4ecb Expose dBFS when doing audio analysis (#6979)
* Expose dBFS when doing audio analysis

* Implement metadata communicator

* revert test changes

* Reverting the tests changes. For real this time

* Address feedback

* Address feedback

* Address feedback

* Address feedback
2023-07-13 19:52:33 -05:00
Sergey Krashevich
2d52fbd8e8 go2rtc v1.6.0 (#7122) 2023-07-13 05:40:44 -05:00
Josh Hawkins
c9254b256a Autotracking: reset motion estimator (#7129)
* reset motion estimator after returning to preset

* small tweaks and a bugfix
2023-07-13 05:32:51 -05:00
Josh Hawkins
7a2d09dc35 Autotracking optimizations (#7109)
* much improved motion estimation and tracking

* docs updates

* move ptz specific mp values to ptz_metrics dict

* only check if moving at frame time

* pass full dict instead of individual values
2023-07-11 06:23:20 -05:00
Bernt Christian Egeland
a94346e17e Improve date and time formatting with fallback for unsupported Intl.DateTimeFormat features (#7099)
* Intl.DateTimeFormat fallback

* only set timezone when available or in config
2023-07-11 06:19:58 -05:00
Sergey Krashevich
20415bb5e0 Refactor code in Events.jsx to conditionally render event zones in the event card view (#7120) 2023-07-11 06:10:29 -05:00
Blake Blackshear
7c0d25f9da Attribute scores (#7100)
* rework attributes to get scores

* show sublabel score

* formatting
2023-07-09 11:40:39 -05:00
Markus
5e772c3625 fix edgetpu device type "None" (auto) (#7097) 2023-07-08 16:04:51 -05:00
Josh Hawkins
691e9d26d2 Autotracking fixes (#7096)
* only check camera status if autotracking enabled

* a more sensible sleep time

* Only check camera status if preparing for a move

* only update tracked obj position when ptz stopped

* both pantilt *and* zoom should be idle

* check more often after moving

* No need to move pan and tilt separately
2023-07-08 16:02:54 -05:00
Nicolas Mowen
f37f034b6a Only run audio detection when audio is above noise threshold (#7078)
* Only run audio detection when audio is above noise threshold

* Formatting

* Fix event parsing

* Update frigate/events/audio.py

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-07-08 07:16:24 -05:00
Josh Hawkins
88fc0fac8f Basic PTZ object autotracking functionality (#6913)
* Basic functionality

* Threaded motion estimator

* Revert "Threaded motion estimator"

This reverts commit 3171801607.

* Don't detect motion when ptz is moving

* fix motion logic

* fix mypy error

* Add threaded queue for movement for slower ptzs

* Move queues per camera

* Move autotracker start to app.py

* iou value for tracked object

* mqtt callback

* tracked object should be initially motionless

* only draw thicker box if autotracking is enabled

* Init if enabled when initially disabled in config

* Fix init

* Thread names

* Always use motion estimator

* docs

* clarify fov support

* remove size ratio

* use mp event instead of value for ptz status

* update autotrack at half fps

* fix merge conflict

* fix event type for mypy

* clean up

* Clean up

* remove unused code

* merge conflict fix

* docs: update link to object_detectors page

* Update docs/docs/configuration/autotracking.md

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

* clarify wording

* pass actual instances directly

* default return preset

* fix type

* Error message when onvif init fails

* disable autotracking if onvif init fails

* disable autotracking if onvif init fails

* ptz module

* verify required_zones in config

* update util after dev merge

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-07-08 07:04:47 -05:00
wire67
1fd23f86aa Update ha_network_storage.md to make it clear which config file (#7084)
* Update ha_network_storage.md to make it clear which config file

* Update docs/docs/guides/ha_network_storage.md with relative url

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-07-08 06:52:22 -05:00
Nicolas Mowen
d6f82f9edc Fix queues (#7087)
* Fix queues

* Change name

* Use standard queue for limited queue

* remove unused

* isort
2023-07-08 06:46:31 -05:00
Nicolas Mowen
00b9a490bb Hide birdseye width button on mobile devices (#7077)
* Hide birdseye width button on mobile devices

* Update Birdseye.jsx
2023-07-07 07:35:53 -05:00
Sergey Krashevich
5259d51c04 UI Improvement: Full-width birdseye (if no PTZ cameras) (#6817)
* Refactor video player div class names in Birdseye.jsx to be more responsive

* let's JSMpegPlayer dont takes up the entire screen

* Update Birdseye.jsx

* Add useState hook and toggle button for dynamic width adjustment and refactor code for readability in env.js and Birdseye.jsx

* fix stupid typo

* Swapped the controls around

* Remove useless comments

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

* Add button styles to the Birdseye component's toggle width button

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-07-07 07:09:55 -05:00
Nicolas Mowen
04aada8720 Fix webUI presets (#7065) 2023-07-07 07:07:46 -05:00
Nicolas Mowen
69630e7385 Fix incorrect respnses (#7066) 2023-07-07 07:06:42 -05:00
Nate Meyer
dd02958f7c Upgrade TensorRT to 8.5.3 (#7006)
* Update to latest tensorrt (8.6.1) release

* Build trt libyolo_layer.so in container

* Update tensorrt_models script to convert models from the frigate container

* Fix typo in model script

* Fix paths to yolo lib and models folder

* Add S6 scripts to test and convert specified TensortRT models at startup.

Rearrange tensorrt files into a docker support folder.

* Update TensorRT documentation to reflect the new model conversion process and minimum HW support.

* Fix model_cache path to live in config directory

* Move tensorrt s6 files to the correct directory

* Fix issues in model generation script

* Disable global timeout for s6 services

* Add version folder to tensorrt model_cache path

* Include TensorRT version 8.5.3

* Add numpy requirement prior to removal of np.bool

* This TRT version uses a mixture of cuda dependencies

* Redirect stdout from noisy model conversion
2023-07-06 14:20:33 -05:00
Sergey Krashevich
30dfdf47d4 Add thread-safety to LimitedQueue by implementing a lock for put and get methods (#7053) 2023-07-06 13:54:55 -05:00
Sergey Krashevich
f48dd8c1ab Feature: camera debug/config enhancements (#6920)
* Add functionality to update YAML config file with PUT request in HTTP endpoint

* Refactor copying of text to clipboard with Clipboard API and fallback to document.execCommand('copy') in CameraMap.jsx file

* Update YAML file from URL query parameters in frigate/http.py and add functionality to save motion masks, zones, and object masks in CameraMap.jsx

* formatting

* fix merging fuckup

* Refactor camera zone coordinate saving to use single query parameter per zone in CameraMap.jsx

* remove unnecessary print statements in util.py

* Refactor update_yaml_file function to separate the logic for updating YAML data into a new function update_yaml().

* fix merge errors

* Refactor code to improve error handling and add dependencies to useEffect hooks
2023-07-06 13:54:26 -05:00
Sergey Krashevich
22cc2712a6 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 (#7058) 2023-07-06 13:51:28 -05:00
Sergey Krashevich
cbb77e5794 Bugfix: SqliteQueueDatabase instead of SqliteDatabase and retry_interval for fetching latest frame in http.py (#7059)
* Refactor http.py to use SqliteQueueDatabase instead of SqliteDatabase and add retry interval for fetching latest frame

* isort && black
2023-07-06 13:50:22 -05:00
Nicolas Mowen
baf671b764 Cleanup and organize utils (#7033)
* Force birdseye cameras into standard aspect ratios

* Organize utils

* Update tests

* Formatting

* Isort

* Fix tests

* Cleanup

* isort
2023-07-06 09:28:50 -05:00
Nicolas Mowen
606f00867e Fix go2rtc getting env var (#7052) 2023-07-06 09:11:49 -05:00
Cody Cutrer
2fae9dcb93 reduce contention on frame_queue (#6890)
* reduce contention on frame_queue

don't check if the queue is full, just attempt to add the frame
in a non-blocking manner, and then if it fails, skip it

* don't check if the frame queue is empty, just try and get from it

* Update frigate/video.py

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-07-06 08:18:39 -05:00
Nicolas Mowen
3f509b6ff9 Update reolink docs to make go2rtc config more clear (#6985) 2023-07-06 07:57:03 -05:00
Sergey Krashevich
c38c981cd0 Performance: multiprocessing improvement: step 2 (#6986)
* Refactored queues to use faster_fifo instead of mp.Queue

* Refactored LimitedQueue to include a counter for the number of items in the queue and updated put and get methods to use the counter

* Refactor app.py and util.py to use a custom Queue implementation called LQueue instead of the existing Queue

* Refactor put and get methods in LimitedQueue to handle queue size and blocking behavior more efficiently

* code format

* remove code from other branch (merging fuckup)
2023-07-06 07:56:38 -05:00
Nicolas Mowen
d0891e5183 Ptz cleanup (#6999)
* Use _ instead of - for ptz presets

* Update mqtt.md

* Fix

* Formatting
2023-07-06 07:42:17 -05:00
Andrew Reiter
325205740b Check ffmpeg version instead of checking for presence of BTBN_PATH (#7023)
* Check ffmpeg version instead of checking for presence of BTBN_PATH

* Query ffmpeg version in s6 run script instead of subprocessing in every import

* Define LIBAVFORMAT_VERSION_MAJOR in devcontainer too

* Formatting

* Default ffmpeg version to current btbn version so unit tests pass
2023-07-06 07:35:26 -05:00
Andrew Reiter
f30ba25444 Reduce framerate before downscaling (#7022)
* Reduce framerate before downscaling

It is cheaper to drop frames and downscale those that remain than it is
to downscale all frames and then drop some of them. This is achieved
with the filter chain `-cv fps=FPS,scale=W:H`, and perhaps was the
original intention. The plain `-r` and `-s` flags do not execute in
order though - they each put themselves at the *end* of the filterchain,
so `-r FPS -s WxH` actually applies the scale filter first, and then the
rate filter.

This fix can halve the CPU used by the detect ffmpeg process.

* Bring back hard rate limits
2023-07-06 07:31:17 -05:00
Nicolas Mowen
339b6944f1 Force birdseye cameras into standard aspect ratios (#7026)
* Force birdseye cameras into standard aspect ratios

* Clarify comment

* Formatting

* Actually use the calculated aspect ratio when building the layout

* Fix Y aspect

* Force canvas into known aspect ratio as well

* Save canvas size and don't recalculate

* Cache coefficients that are used for different size layouts

* Further optimize calculations to not be done multiple times
2023-07-06 07:30:05 -05:00
Nicolas Mowen
0f68fbc8db Use pre capture for custom events (#7038)
* Use pre capture for custom events

* Formatting
2023-07-06 07:26:53 -05:00
Nicolas Mowen
998bffe706 Fix min region size not being divisible by 4 (#7040)
* Fix min region size not being divisible by 4

* Simplify half calculation
2023-07-06 07:25:37 -05:00
Sergey Krashevich
12d4a47e3d End audio event and update detections if successful, otherwise log a warning if ending audio event fails with a specific status code (#6984) 2023-07-03 09:50:25 -05:00
Sergey Krashevich
1171f01683 Refactor camera rendering logic in System component to only render enabled cameras (#6992) 2023-07-03 09:49:14 -05:00
Sergey Krashevich
f905704479 UI: add audio process stats to System page (#6993)
* Add audio process PID to the list of processes and log the start of the audio process

* Update audio process PID key in processes dictionary to "audioDetector" instead of "audio".
2023-07-03 09:48:29 -05:00
Nicolas Mowen
58c6ef1e12 Add designator when events are from the api (#6997)
* Add designator when events are custom

* Add type field and set via API
2023-07-03 09:48:00 -05:00
Nicolas Mowen
83edf9574e Scale birdseye layout up to max size after it has been calculated (#6825)
* Scale layout up to max size after it has been calculated

* Limit portrait cameras to taking up 2 rows

* Fix bug

* Fix birdsye not removing cameras once objects are no longer visible

* Fix lint
2023-07-02 07:45:45 -05:00
Nicolas Mowen
c25367221e Fix audio events not being ended (#6981)
* Fix audio events not being ended

* Fix audio events not being ended correctly

* Clean up debug code
2023-07-01 16:33:47 -05:00
Nicolas Mowen
7ee17c7af8 Fix small audio events details (#6978)
* Fix missed audio details

* Add mqtt docs

* Delete instead of setting to None
2023-07-01 11:19:14 -05:00
Nicolas Mowen
c3b313a70d Audio events (#6848)
* Initial audio classification model implementation

* fix mypy

* Keep audio labelmap local

* Cleanup

* Start adding config for audio

* Add the detector

* Add audio detection process keypoints

* Build out base config

* Load labelmap correctly

* Fix config bugs

* Start audio process

* Fix startup issues

* Try to cleanup restarting

* Add ffmpeg input args

* Get audio detection working

* Save event to db

* End events if not heard for 30 seconds

* Use not heard config

* Stop ffmpeg when shutting down

* Fixes

* End events correctly

* Use api instead of event queue to save audio events

* Get events working

* Close threads when stop event is sent

* remove unused

* Only start audio process if at least one camera is enabled

* Add const for float

* Cleanup labelmap

* Add audio icon in frontend

* Add ability to toggle audio with mqtt

* Set initial audio value

* Fix audio enabling

* Close logpipe

* Isort

* Formatting

* Fix web tests

* Fix web tests

* Handle cases where args are a string

* Remove log

* Cleanup process close

* Use correct field

* Simplify if statement

* Use var for localhost

* Add audio detectors docs

* Add restream docs to mention audio detection

* Add full config docs

* Fix links to other docs

---------

Co-authored-by: Jason Hunter <hunterjm@gmail.com>
2023-07-01 08:18:33 -05:00
Bernt Christian Egeland
f1dc3a639c fixed TimeAgo abbreviation (#6977)
* fixed TimeAgo abbreviation

* Update web/src/components/TimeAgo.tsx

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-07-01 08:16:19 -05:00
Blake Blackshear
2f401bd8da update deps (#6973)
* update web deps

* update python deps
2023-07-01 07:47:16 -05:00
Nicolas Mowen
8cb8a030be Update docs to reflect HA addon storage feature (#6681)
* Clean up docs given HA addon storage support

* Add guide for using HA network storage

* Add to sidebar

* Specify that media type needs to be used

* Link to storage guide from install docs

* Instruct users to store DB in /config

* Update ha_network_storage.md

* Recommend that data is moved or deleted
2023-06-30 22:13:08 -05:00
Nicolas Mowen
f3f9b36e07 Fix bad check on np.array (#6968) 2023-06-30 07:06:38 -06:00
Nicolas Mowen
0a8249d6fb Fix Bad Resize For Camera Snapshot (#6797)
* Catch cases where incorrect size is requested

* Set a default if calculated height is incorrect
2023-06-30 07:34:10 -05:00
Sergey Krashevich
b6fce8f0bb Integrate ccache into libusb and nginx build scripts for improved build speed (#6886)
* Add ccache to libusb and nginx build scripts

* Add ccache support to Dockerfile for faster builds

* Add ccache to PATH and use it for compiling nginx with Makefile in build_nginx.sh script
2023-06-30 07:28:48 -05:00
Blake Blackshear
d51197eaa2 use a different method for blur and contrast to reduce CPU (#6940)
* use a different method for blur and contrast to reduce CPU

* blur with radius instead

* use faster interpolation for motion

* improve contrast based on averages

* increase default threshold to 30

* ensure mask is applied after contrast improvement

* update opencv

* update benchmark script
2023-06-30 07:27:31 -05:00
Nicolas Mowen
d2a2643cd6 Apply zone filter before inertia (#6854)
* Apply zone filter before intertia

* Formatting
2023-06-30 07:15:55 -05:00
Nicolas Mowen
bd17e7d824 Show object attributes when hovering or tapping timeline bounding box (#6879)
* Show overlay when hovering on timeline box

* Make it work with mobile too

* Fix lint

* Fix ratio

* Update web/src/components/TimelineEventOverlay.jsx

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

* Show overlay when hovering on timeline box

* Make it work with mobile too

* Fix lint

* Fix ratio

* Remove label and make overlay respect selected theme

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-06-30 07:15:19 -05:00
spacebares
ed0d2be321 configurable ffmpeg timeout (#6897)
* configurable ffmpeg timeout

* configurable ffmpeg healthcheck interval

rename timeout to healthcheck_interval
only grab config value once

* configurable ffmpeg retry interval

rename healthcheck_interval to retry_interval

* add retry_interval to docs

- update retry_interval text in config.py
2023-06-30 07:14:39 -05:00
Nicolas Mowen
9137f1594b Remove legacy recordings file cleanup (#6947)
* Remove legacy recordings file cleanup

* Remove unused
2023-06-30 07:13:00 -05:00
Cody Cutrer
ef14a43930 optimize frame-per-second calculations (#6887)
* optimize frame-per-second calculations

FPS is never calculated over differing periods for even given
counter. By only storing timestamps within the period that is
used, we avoid having to iterate 1000 entries every time it's
re-calculated (multiple times per second). 1000 entries would
normally only be needed if something is running at 100fps. A
more common speed - anywhere from 5 to 30fps, only needs 50
to 300 entries.

This isn't a huge improvement in the grand scheme, but when motion
detection is disabled, it takes nearly as much time in a flamegraph
as actually transferring the video frame.

* fix python checks
2023-06-28 05:55:53 -05:00
Cody Cutrer
ee4a133655 actually keep track of skipped frames (#6889)
* actually keep track of skipped frames

fixes #6863

* fix black errors
2023-06-28 05:53:28 -05:00
Nicolas Mowen
ece070fee1 Load labels dynamically for event filters (#6896)
* Load labels dynamically to include custom events and audio, do not include attribute labels

* Formatting

* Fix sorting

* Also filter tracked object list on camera page

* isort

* Don't fail before load
2023-06-28 05:51:53 -05:00
spacebares
3d40ed5d47 fix tooltip not showing if too far left (#6909) 2023-06-28 05:45:54 -05:00
Sergey Krashevich
e640981cc4 Performance: multiprocessing improvement (#6936)
* Add faster-fifo dependency for improved performance

* isort
2023-06-28 05:39:39 -05:00
Blake Blackshear
9e531b0b5b reduce grid size for contrast improvement (#6870) 2023-06-21 08:38:51 -05:00
Blake Blackshear
7c1568fcb9 use clahe for contrast improvement (#6835)
* use clahe for contrast improvement

* update tests
2023-06-18 11:56:41 -05:00
Nicolas Mowen
09cc4251f0 Fix dict getting overwritten (#6830) 2023-06-17 10:31:35 -05:00
Blake Blackshear
793fe251b9 Label attributes (#6829)
* pass attribute labels as attributes

* add label attrs to events and snapshots

* incorporate area of license_plate and face into snapshot selection

* populate sublabels for cars with logos
2023-06-17 09:56:22 -05:00
Nicolas Mowen
2be2050d57 Don't fail to save segment when cv2 fails (#6823)
* Don't fail when cv2 fails

* Clean up exception handling
2023-06-17 09:56:00 -05:00
Nicolas Mowen
0996883a98 Add docs for annotation offset (#6824) 2023-06-16 18:00:49 -06:00
Nicolas Mowen
b66810247e Optimize stacked recordings (#6809)
* Make camera recordings mover asynchronous

* Formatting

* Move to using cv2 instead of external ffmpeg process

* Use ffprobe if cv2 failed

* Formatting

* Fix bad access

* Formatting

* Update frigate/record/maintainer.py

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

* Update name of caller

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-06-16 07:09:13 -06:00
Nicolas Mowen
0592cedcde Rewrite birdseye auto layout (#6818)
* Prefer horizontal layout to vertical

* Rewrite birdseye to use aspect ratios instead of resolutions as layout configurator

* Improve layout with slightly larger than 16:9 cameras

* Remove manual 2 camera layout

* Lint

* Remove log
2023-06-16 07:35:36 -05:00
Blake Blackshear
ca7853c087 Fix max_frames, improve stationary objects in masked areas (#6815)
* fix issue with max_frames

* dont consider stationary until the threshold

* require a stationary interval

* try to fix formatter issues
2023-06-16 07:32:43 -05:00
Sergey Krashevich
3efa77f302 Round the timestamp value read from .vacuum file to prevent potential errors caused by float values (#6800) 2023-06-14 17:19:26 -05:00
Nicolas Mowen
ff1b5c87aa Fix stream name not being used for MSE (#6796) 2023-06-14 06:49:32 -06:00
Sergey Krashevich
a8f282515f Bugfix: Refactor date and time initialization in Export.jsx (#6794)
* Refactor date and time initialization in Export.jsx to use local timezone

* Update error message to include specific reason for failure in Export.jsx
2023-06-14 07:32:36 -05:00
Daniel Asztalos
730416418d Typo fixed in hardware.md (#6788) 2023-06-13 17:34:14 -05:00
Nicolas Mowen
7e5abe7a65 Optimize Birdseye layout for portrait cameras (#6779)
* Handle vertical cameras more optimally in 2 camera layout

* Optimize portrait layout for 3+ cams

* Remove logging
2023-06-12 17:39:12 -05:00
Nicolas Mowen
ec4d79eafc Fix bug in intersection logic (#6780)
* Fix bug in intersection logic

* Fix isort

* Remove unrelated test

* Formatting

* Fix type in test
2023-06-12 17:38:22 -05:00
Nicolas Mowen
ff90db30e6 Various Bug Fixes (#6768)
* Fix birdseye infinite loop

* Fix division by zero
2023-06-12 06:06:02 -04:00
Nicholas Flamy
bd9942b426 Add FAQ about MQTT not connecting (#6554)
* Update faqs.md

I spent hours trying to figure this out and if this could be included in some way that would potentially help someone out there.

* Update docs/docs/troubleshooting/faqs.md

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

* Update docs/docs/troubleshooting/faqs.md

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

* Update faqs.md

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-06-11 15:07:34 -05:00
Sergey Krashevich
dfd574beeb Refactor storage stats calculation to use powers of 2 for more accurate values (#6765)
* "Refactor storage stats calculation to use powers of 2 for more accurate values"

* replace 1000000 to 2^20

* Refactor storage unit size display to use binary prefixes

This commit updates the display of storage unit sizes in both the camera storage stats and the Storage component in the web UI to use binary prefixes (MiB and GiB) instead of decimal prefixes (MB and GB). This provides more accurate and consistent representation of storage sizes
2023-06-11 14:49:13 -05:00
Bernt Christian Egeland
b359ff1b8e [Feature] Add timepicker to calendar (#5183)
* added timepicker as children to calendar

* new timepicker component

* Add timepicker

* new timePicker component

* timepicker as calendar child

* hover:border and rounded

* adjusted width

* complete rework

* more code comments

* memorization

* preselect hover, transition

* numberOfDaysSelected has minimum of 1

* prefill hours when component mounts

* persist hours when component mount

* accommodate for the new timePicker

* add reset state

* scroll into view

* reuse before, after

* fix LastDayInRange when a time is selected

* do not add hours if before is zero

* use hours instead of days

* useeffect to reset hour. check timerange before scroll

* scroll to last element, not first
2023-06-11 14:48:45 -05:00
Nicolas Mowen
0f1cf67b91 Fix birdseye optimistic approach (#6764) 2023-06-11 08:47:34 -05:00
Blake Blackshear
d81dd60fef Improve motion detection and region selection (#6741)
* refactor existing motion detector

* implement and use cnt bgsub

* pass fps to motion detector

* create a simplified motion detector

* lightning detection

* update default motion config

* lint imports

* use estimated boxes for regions

* use improved motion detector

* update test

* use a different strategy for clustering motion and object boxes

* increase alpha during calibration

* simplify object consolidation

* add some reasonable constraints to the estimated box

* adjust cluster boundary to 10%

* refactor

* add disabled debug code

* fix variable scope
2023-06-11 08:45:11 -05:00
Nicolas Mowen
32569842d3 Option to enable / disable stats that require external processes (#6615)
* Add option for network bandwidth and only calculate if enabled

* Don't show network bandwidth in system stats page if not enabled

* Formatting

* Hide other rows as well

* Add docs

* Add config options for AMD and Intel GPU stats

* Fix stats access

* Update docs

* Use correct bool syntax

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-06-11 08:26:34 -05:00
Sergey Krashevich
5c27cb7e9b Optimization of Sync Records: Implementing Pagination and Temporary Table (#6585)
* Update pull_request.yml

* Add temporary table for deletion and use pagination to process recordings in chunks for deletion of recordings with missing files

* move RecordingsToDelete class to models.py

* recording cleanup: bugfixes

* Update cleanup.py

* improve log message in cleanup.py

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-06-11 08:01:50 -05:00
Sergey Krashevich
7459a1cdde Enhancement: Add Date and Time Inputs to Export Component with Time Validation (#6750)
* Add date and time inputs to Export component and ensure end time is larger than start time

* Update web/src/routes/Export.jsx

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-06-11 08:01:16 -05:00
Nicolas Mowen
b160abac0d Ability to configure min frames for zone presence (#6680)
* Objects need to be in zones multiple times to be considered present in the zone

* Add a field to configure inertia per zone

* Formatting

* Use correct default method

* Clarify zone presence behavior

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-06-11 08:00:53 -05:00
Nicolas Mowen
fd6eb78f41 Birdseye Autolayout (#6734)
* Calculate possible layout

* Working in ideal conditions

* Fix issues with different heights

* Remove logs

* Optimally handle cameras that don't match the canvas aspect ratio

* Make sure to copy so list is not overwritten

* Remove unused import

* Remove try catch

* Optimize layout for low amount of cameras

* Try to scale frames up if not enough space is used
2023-06-11 07:54:18 -05:00
Sergey Krashevich
8d941e5e26 Add function to get physical interfaces for bandwidth calculation (#6618)
* Add function to get physical interfaces for bandwidth calculation in get_bandwidth_stats() function

* Add telemetry configuration option for enabled network interfaces, with default values for monitoring bandwidth stats for camera ffmpeg processes, go2rtc, and object detectors. Also add support for FrigateConfig in set_bandwidth_stats function to get bandwidth stats for specified network interfaces
2023-06-11 07:34:03 -05:00
Nicolas Mowen
8bc76d19db DB Optimizations (#6712)
* Enable auto vacuums

* Enable auto vacuum

* Fix separator

* Fix separator and remove incorrect log

* Limit to 1 row since that is all that is used

* Add index on camera + segment_size

* Formatting

* Increase timeout and cache_size

* Set DB mode to NORMAL synchronous level

* Formatting

* Vacuum every 2 weeks

* Remove fstring

* Use string

* Use consts
2023-06-11 07:23:18 -05:00
dependabot[bot]
20b52a96bc Bump docker/login-action from 2.1.0 to 2.2.0 (#6740)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](f4ef78c080...465a07811f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-11 07:21:59 -05:00
Nicolas Mowen
435d152423 Fix bug introduced in new linter (#6754)
* Fix bug introduced in new linter

* Ignore this error

* Fix more

* Ignore boolean error too
2023-06-11 07:18:47 -05:00
Nicolas Mowen
d3949eebfa Add API and WebUI to export recordings (#6550)
* Add ability to export frigate clips

* Add http endpoint

* Add dir to nginx

* Add webUI

* Formatting

* Cleanup unused

* Optimize timelapse

* Fix pts

* Use JSON body for params

* Use hwaccel to encode when available

* Print ffmpeg command when fail

* Print ffmpeg command when fail

* Add separate ffmpeg preset for timelapse

* Add docs outlining the export directory

* Add export docs

* Use ''

* Fix playlist max time

* Lower max playlist time

* Add api docs for export

* isort fixes
2023-06-08 07:32:35 -04:00
Michael Wei
d1701e127e fix: don't assume build platform is amd64 (#6709) 2023-06-05 16:13:54 -05:00
dependabot[bot]
f0c1b66b0f Bump actions/setup-python from 4.6.0 to 4.6.1 (#6609)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.6.0...v4.6.1)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-01 07:05:39 -05:00
Blake Blackshear
699248d769 Update deps (#6669)
* fix gh host key

* python deps

* update web deps

* update docs deps
2023-06-01 06:59:50 -05:00
Nicolas Mowen
62f36b221e Remove ffmpeg banner (#6600)
* Hide banner in maintainer

* Hide banner in event download
2023-06-01 05:46:34 -05:00
Blake Blackshear
ae0aba44dc Improve tracking (#6516) 2023-05-31 08:12:43 -06:00
Paul Philippov
bd1d13d78c Update docs link (#6657) 2023-05-31 07:15:01 -05:00
Martin Weinelt
ab50d0b006 Add isort and ruff linter (#6575)
* Add isort and ruff linter

Both linters are pretty common among modern python code bases.

The isort tool provides stable sorting and grouping, as well as pruning
of unused imports.

Ruff is a modern linter, that is very fast due to being written in rust.
It can detect many common issues in a python codebase.

Removes the pylint dev requirement, since ruff replaces it.

* treewide: fix issues detected by ruff

* treewide: fix bare except clauses

* .devcontainer: Set up isort

* treewide: optimize imports

* treewide: apply black

* treewide: make regex patterns raw strings

This is necessary for escape sequences to be properly recognized.
2023-05-29 05:31:17 -05:00
Martin Weinelt
1e17dbaa91 deepstack: pass api key in request (#6579)
The POST data was prepared, but not passed into the request call.
2023-05-23 17:32:08 -05:00
Nicolas Mowen
f66ccb04f6 Fix pydantic (#6584) 2023-05-23 08:00:21 -06:00
Sergey Krashevich
846a180a7b go2rtc 1.5.0 forgotten changes (#6561) 2023-05-21 12:12:31 -05:00
Sergey Krashevich
11738110dc Add handling for non-existent or empty model file paths (#6525)
* Add handling for non-existent or empty model file paths in `compute_model_hash()` method

* Remove print() in detector_config.py

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>

---------

Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2023-05-21 08:29:57 -05:00
Nicolas Mowen
53d63e0f75 Update go2rtc to 1.5.0 (#5814)
* Update go2rtc to 1.3.0

* Increment to 1.3.1

* Increment to 1.3.2

* Update webrtc player to match latest

* Update version to 1.4.0

* Update mse player

* Update birdseye mse player

* remove logs

* Update docs to link to new version

* Final web lint fixes

* Update versions
2023-05-21 06:53:25 -06:00
Blake Blackshear
deccc4fd46 fix coral libs (#6558) 2023-05-21 07:14:53 -05:00
Nicolas Mowen
4940826011 Fix false positives (#6544) 2023-05-19 13:26:19 -06:00
Nicolas Mowen
fec1dd3f46 Fix breakages by manual_event_api branch (#6542)
* Fix breakages by manual_event_api branch

* More fixes
2023-05-19 10:59:24 -06:00
Blake Blackshear
42f3ee3de5 sync master 2023-05-19 05:47:49 -05:00
Nicolas Mowen
e357715a8c Ability to manually create events through the API (#3184)
* Move to events package

* Improve handling of external events

* Handle external events in the event queue

* Pass in event processor

* Check event json

* Fix json parsing and change defaults

* Fix snapshot saving

* Hide % score when not available

* Correct docs and add json example

* Save event png db

* Adjust image

* Formatting

* Add catch for failure ending event

* Add init to modules

* Fix naming

* Formatting

* Fix http creation

* fix test

* Change to PUT and include response in docs

* Add ability to set bounding box locations in snapshot

* Support multiple box annotations

* Cleanup docs example response

Co-authored-by: Blake Blackshear <blake@frigate.video>

* Cleanup docs wording

Co-authored-by: Blake Blackshear <blake@frigate.video>

* Store full frame for thumbnail

* Formatting

* Set thumbnail height to 175

* Formatting

---------

Co-authored-by: Blake Blackshear <blake@frigate.video>
2023-05-19 05:16:11 -05:00
Sergey Krashevich
6d0c2ec5c8 Add go2rtc & remote detectors network bandwidth usage to System table (#6526)
* Add network bandwidth usage to System table display in System.jsx and update get_bandwidth_stats function in util.py to include go2rtc processes

* black...

* Add network bandwidth usage to system table in web UI and improve regex in get_bandwidth_stats function to include frigate detector processes

* black...

* Update bandwidth calculation to include both incoming and outgoing traffic

* black:(
2023-05-18 06:40:24 -05:00
Korneliusz Jarzębski
17e8a46c7d add ffmpeg bandwidth stats (#6492)
* add ffmpeg bandwidth stats

* add ffmpeg bandwidth stats

* Change column name

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

* fix lint formatting

---------

Co-authored-by: Korneliusz Jarzębski <k.jarzebski@netverse.pl>
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-05-17 20:01:56 -05:00
Nicolas Mowen
b568a29fa8 Don't fail if camera does not support presets (#6497) 2023-05-17 07:42:56 -05:00
Sergey Krashevich
b4038821cc Update DeepStack detector to set width and height from input image size (#6429) 2023-05-17 07:40:41 -05:00
Sergey Krashevich
5fb96c777a Add cmdline information to CPU usage stats in get_cpu_stats() function and display it in the System page's ffmpeg table with a copy-to-clipboard button (#6430) 2023-05-15 07:39:03 -05:00
Sergey Krashevich
181b53a55d Fix error in parsing DeepStack response JSON and handle cases where predictions field is missing (#6463) 2023-05-15 07:37:34 -05:00
Blake Blackshear
e3b9998879 Upgrade deps (#6395)
* update js build tools

* update frontend deps

* python updates

* update requests again
2023-05-05 07:45:13 -05:00
Sergey Krashevich
f52b1212cd add go2rtc version (#6390)
Update System.jsx
2023-05-04 21:04:06 -05:00
Nicolas Mowen
aded314f3c Timeline UI optimizations (#6367)
* Fix centering of bottom_center

* Make bottom_center overlap vertically

* Fix timeline icon behavior

* Make disclaimer hidden under aria label

* Don't literally say disclaimer
2023-05-04 17:34:48 -06:00
Sergey Krashevich
ede1dedbbd Add Deepstack/CodeProject-AI.Server detector plugin (#6143)
* Add Deepstack detector plugin with configurable API URL, timeout, and API key

* Update DeepStack plugin to recognize 'truck' as 'car' for label indexing

* Add debug logging to DeepStack plugin for better monitoring and troubleshooting

* Refactor DeepStack label loading from file to use merged labelmap

* Black format

* add documentation draft

* fix link to codeproject website

* Apply suggestions from code review

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-05-04 18:06:07 -05:00
Stephen Horvath
0751358e5b Fix site.webmanifest + add svg as favicon (#6304) 2023-05-04 18:04:24 -05:00
Peeter N
17b92aa657 Do not show the loader during recordings api call (#6366)
* Do not show the loader during recordings api call

Showing the loader during the recordings API call will rerender the recordings list and rerenders the video player

* Fix defauting to 0 seekSeconds if recordings results are missings
2023-05-04 18:02:48 -05:00
Sergey Krashevich
0fcfcb85ab Implement NVML for NVIDIA GPU Stats (#6359)
* nvml

* black...black...black...

* small fix for avoid errors on strange GPUs and old drivers

* fix type errors

* fix type errors

* fix unittest process crash

where the tests for tests?..

* it's impossible to mock low-level library

* fix double % for other GPU types

* remove space before gpu statistic values
2023-05-04 18:02:01 -05:00
Nicolas Mowen
ef50af03f2 Add icon to explain in more detail the system stats / storage info (#6358)
* Add info icon with additional info for each process.

* Specify single CPU core

* Include storage in tooltips
2023-05-04 18:01:27 -05:00
Sergey Krashevich
02f577347d Hide PTZ Controls in Birdseye when no cameras support it (#6353)
* Refactor filter logic to exclude cameras with empty onvif host address

* Refactor filter logic to exclude cameras with empty onvif host address-2

* Apply suggestions from code review

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

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-05-04 18:00:18 -05:00
Sergey Krashevich
03b45c153b Increase maximum event sub_label length to 100 characters (#6350)
* Increase maximum sub label length to 100 characters and update corresponding fields in models and API

* black format...
2023-05-04 17:59:44 -05:00
Sergey Krashevich
2add675d42 Refactor Process Stats and Bugfixes (#6344)
* test refactor process stats

* Update util.py

* bugfix

* black formatting

* add missing processes field to StatsTrackingTypes class

* fix python checks and tests...

* use psutil for calcilate cpu utilization on get_cpu_stats

* black...black...black...

* add cpu average

* calculate statiscts for logger process

* add P-ID for other processes in System.jsx

* Apply suggestions from code review

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

* make page beautiful again :)

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2023-05-04 17:58:59 -05:00
Sergey Krashevich
b38c9e82e2 Replace subprocess usage with os module for better performance and maintainability (#6298)
* avoid executing external tools by using Python's built-in os module to interact with the filesystem directly

* Refactor recording cleanup script to use os module instead of subprocess

* black format util.py

* Ooooops

* Refactor get_cpu_stats() to properly identify recording process
2023-05-01 21:22:35 -05:00
Blake Blackshear
19890310fe Bug fixes (#6332)
* fix timeline delete

* fix labelmap in config response

* create cache dirs if needed
2023-04-30 14:58:39 -05:00
Blake Blackshear
9bf98f908d add plus integration for models (#6328) 2023-04-30 13:32:36 -05:00
Nicolas Mowen
ad52e238ce Refactor events to be more generic (#6320)
* Organize event table to be more generalized

* Add appropriate fields to data

* Move tracked object logic to own function

* Add source type to event queue

* rename enum

* Fix types that are used in webUI

* remove redundant

* Formatting

* fix typing

* Rename enum
2023-04-30 12:07:14 -05:00
Nicolas Mowen
ca7790ff65 Cleanup timeline entries when relevant recording segments are removed (#6319)
* Cleanup timeline entries when relevant recording segments are removed

* Make timeline cleanup simpler

* Formatting
2023-04-30 09:28:21 -05:00
Nicolas Mowen
37360edbc1 Show other system processes in system page (#6276) 2023-04-28 07:47:49 -05:00
Nicolas Mowen
b48f6d750f Add annotation support (#6288) 2023-04-28 06:02:06 -05:00
Alin Balutoiu
83006eeb65 Add option to have cameras sorted inside the Birdseye stream (#5450)
* Add option to sort cameras inside Birdseye

* Make default order to be sorted alphabetically

* Add docs for sorting cameras

* Update index.md for cameras

* Remove irelevant comments
2023-04-26 19:29:01 -05:00
Nicolas Mowen
e451f44ced Move recording management to separate process (#6248)
* Move recordings management to own process and ensure db multiprocess access

* remove reference to old threads

* Cleanup directory remover

* Mypy fixes

* Fix mypy

* Add support back for setting record via MQTT and WS

* Formatting

* Fix rebase issue
2023-04-26 07:25:26 -06:00
Blake Blackshear
6dc82b6cef dependency updates (#6246)
* python

* easy web deps
2023-04-26 06:20:29 -05:00
Nicolas Mowen
43ade86796 Support Controlling PTZ Cameras Via WebUI (#4715)
* Add support for ptz commands via websocket

* Fix startup issues

* Fix bugs

* Set config manually

* Add more commands

* Add presets

* Add zooming

* Fixes

* Set name

* Cleanup

* Add ability to set presets from UI

* Add ability to set preset from UI

* Cleanup for errors

* Ui tweaks

* Add visual design for pan / tilt

* Add pan/tilt support

* Support zooming

* Try to set wsdl

* Fix duplicate logs

* Catch auth errors

* Don't init onvif for disabled cameras

* Fix layout sizing

* Don't comment out

* Fix formatting

* Add ability to control camera with keyboard shortcuts

* Disallow user selection

* Fix mobile pressing

* Remove logs

* Substitute onvif password

* Add ptz controls ot birdseye

* Put wsdl back

* Add padding

* Formatting

* Catch onvif error

* Optimize layout for mobile and web

* Place ptz controls next to birdseye view in large layout

* Fix pt support

* Center text titles

* Update tests

* Update docs

* Write camera docs for PTZ

* Add MQTT docs for PTZ

* Add ptz info docs for http

* Fix test

* Make half width when full screen

* Fix preset panel logic

* Fix parsing

* Update mqtt.md

* Catch preset error

* Add onvif example to docs

* Remove template example from main camera docs
2023-04-26 06:08:53 -05:00
Blake Blackshear
0d16bd0144 False positives (#6217)
* add false positive submission

* switch timeline events to x,y,w,h

* update docs

* fix type checks

* convert to upsert

* fix config test
2023-04-24 07:24:28 -05:00
dependabot[bot]
9dca1e1d9f Bump actions/setup-python from 4.5.0 to 4.6.0 (#6192)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.5.0...v4.6.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-24 06:40:26 -05:00
Nicolas Mowen
7f96d89ec4 Use correct method for retrieving current unix time (#6218) 2023-04-24 05:19:38 -05:00
Nicolas Mowen
04a22f8283 Fix timeline event overlay when recordings mode is not all (#6215)
* Fix case where not all segments are saved in recording for timeline overlay

* Remove unused vars
2023-04-23 15:02:52 -05:00
Nicolas Mowen
ece7dc29e7 Fix substitution change (#6212) 2023-04-23 12:19:56 -05:00
Felipe Santos
cdd8e6fd4e Migrate default database path from /media/frigate to /config (#5219)
* Migrate db path to /config

* Ensure oneshot runs

* Put logic inside of Frigate's run

* Use new db default path in code

* Fix missing config dir

* Upgrade yq to 4.33.3
2023-04-23 11:35:40 -05:00
Nicolas Mowen
fbaab71d78 Metadata Timeline (#6194)
* Create timeline table

* Fix indexes

* Add other fields

* Adjust schema to be less descriptive

* Handle timeline queue from tracked object data

* Setup timeline queue in events

* Add source id for index

* Add other fields

* Fixes

* Formatting

* Store better data

* Add api with filtering

* Setup basic UI for timeline in events

* Cleanups

* Add recordings snapshot url

* Start working on timeline ui

* Add tooltip with info

* Improve icons

* Fix start time with clip

* Move player logic back to clips

* Make box in timeline relative coordinates

* Make region relative

* Get box overlay working

* Remove overlay when playing again

* Add disclaimer when selecting overlay points

* Add docs for new apis

* Fix mobile

* Fix docs

* Change color of bottom center box

* Fix vscode formatting
2023-04-23 10:45:19 -05:00
lucas_nz
3c72b96042 Use browser timezone if not specified in config (#6205) 2023-04-23 07:42:15 -05:00
KtAlumi
366c31259f Edit dsize order (#6172)
dsize could be (width, height).

Co-authored-by: kt.lu <kt.lu@latticeworkinc.com>
2023-04-22 21:38:58 -05:00
Blake Blackshear
8535213ad9 update python deps (#6101) 2023-04-16 07:20:51 -05:00
Felipe Santos
416ce66b51 Auto approve dependabot PRs (#5147) 2023-04-16 07:15:10 -05:00
Martin Weinelt
cb73d0cd39 Migrate away from deprecated np.float (#5898)
It is an alias for the python float type, and got deprecated in 1.20 and
was removed in 1.24. The rest of the project already uses float32
(single), so I believe this is also correct here, as opposed to float64
(double).
2023-04-16 07:13:33 -05:00
Blake Blackshear
f8f76fcb94 update to 8.3.x (#6100) 2023-04-16 07:09:51 -05:00
dependabot[bot]
149d6694d6 Bump docker/build-push-action from 3 to 4 (#5319)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-15 15:21:23 -05:00
Blake Blackshear
15415bab10 update deps (#6093)
* update dev deps

* update deps

* docs deps

* python dev deps

* update python deps
2023-04-15 14:17:59 -05:00
Kevin David
a218d2f6ff docker-compose.yml: remove :ro for config.yml (#6086)
This should be editable by default from the UI
2023-04-15 07:22:55 -05:00
Nicolas Mowen
6986949d84 Remove deprecated retain_days config (#5952) 2023-04-09 11:23:34 -05:00
Blake Blackshear
cefbed614f Remove arm32 (#5935)
* remove references to 32bit arm

* scheduled build to maintain actions cache
2023-04-08 09:24:28 -06:00
Blake Blackshear
37db4070ce increment version 2023-04-08 09:52:30 -05:00
747 changed files with 76533 additions and 43198 deletions

View File

@@ -0,0 +1,168 @@
rtmp
edgetpu
labelmap
rockchip
jetson
rocm
vaapi
CUDA
hwaccel
RTSP
Hikvision
Dahua
Amcrest
Reolink
Loryta
Beelink
Celeron
vaapi
blakeblackshear
workdir
onvif
autotracking
openvino
tflite
deepstack
codeproject
udev
tailscale
restream
restreaming
webrtc
ssdlite
mobilenet
mosquitto
datasheet
Jellyfin
Radeon
libva
Ubiquiti
Unifi
Tapo
Annke
autotracker
autotracked
variations
ONVIF
traefik
devcontainer
rootfs
ffprobe
autotrack
logpipe
imread
imwrite
imencode
imutils
thresholded
timelapse
ultrafast
sleeptime
radeontop
vainfo
tmpfs
homography
websockets
LIBAVFORMAT
NTSC
onnxruntime
fourcc
radeonsi
paho
imagestream
jsonify
cgroups
sysconf
memlimit
gpuload
nvml
setproctitle
psutil
Kalman
frontdoor
namedtuples
zeep
fflags
probesize
wallclock
rknn
socs
pydantic
shms
imdecode
colormap
webui
mse
jsmpeg
unreviewed
Chromecast
Swipeable
flac
scroller
cmdline
toggleable
bottombar
opencv
apexcharts
buildx
mqtt
rawvideo
defragment
Norfair
subclassing
yolo
tensorrt
blackshear
stylelint
HACS
homeassistant
hass
castable
mobiledet
framebuffer
mjpeg
substream
codeowner
noninteractive
restreamed
mountpoint
fstype
OWASP
iotop
letsencrypt
fullchain
lsusb
iostat
usermod
balena
passwordless
debconf
dpkg
poweroff
surveillance
qnap
homekit
colorspace
quantisation
skylake
Cuvid
foscam
onnx
numpy
protobuf
aarch
amdgpu
chipset
referer
mpegts
webp
authelia
authentik
unichip
rebranded
udevadm
automations
unraid
hideable
healthcheck
keepalive

View File

@@ -10,10 +10,14 @@
"features": {
"ghcr.io/devcontainers/features/common-utils:1": {}
},
"forwardPorts": [5000, 5001, 5173, 1935, 8554, 8555],
"forwardPorts": [8971, 5000, 5001, 5173, 8554, 8555],
"portsAttributes": {
"8971": {
"label": "External NGINX",
"onAutoForward": "silent"
},
"5000": {
"label": "NGINX",
"label": "Internal NGINX",
"onAutoForward": "silent"
},
"5001": {
@@ -24,10 +28,6 @@
"label": "Vite Server",
"onAutoForward": "silent"
},
"1935": {
"label": "RTMP",
"onAutoForward": "silent"
},
"8554": {
"label": "gortc RTSP",
"onAutoForward": "silent"
@@ -37,9 +37,11 @@
"onAutoForward": "silent"
}
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.vscode-pylance",
"ms-python.python",
"ms-python.vscode-pylance",
"visualstudioexptteam.vscodeintellicode",
"mhutchie.git-graph",
"ms-azuretools.vscode-docker",
@@ -49,13 +51,12 @@
"mikestead.dotenv",
"csstools.postcss",
"blanu.vscode-styled-jsx",
"bradlc.vscode-tailwindcss"
"bradlc.vscode-tailwindcss",
"charliermarsh.ruff"
],
"settings": {
"remote.autoForwardPorts": false,
"python.linting.pylintEnabled": true,
"python.linting.enabled": true,
"python.formatting.provider": "black",
"python.formatting.provider": "none",
"python.languageServer": "Pylance",
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
@@ -65,14 +66,28 @@
"python.testing.unittestArgs": ["-v", "-s", "./frigate/test"],
"files.trimTrailingWhitespace": true,
"eslint.workingDirectories": ["./web"],
"isort.args": ["--settings-path=./pyproject.toml"],
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true
}
},
"[json][jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsx][js][tsx][ts]": {
"editor.codeActionsOnSave": ["source.addMissingImports", "source.fixAll"],
"editor.codeActionsOnSave": [
"source.addMissingImports",
"source.fixAll"
],
"editor.tabSize": 2
},
"cSpell.ignoreWords": ["rtmp"],
"cSpell.words": ["preact"]
"cSpell.words": ["preact", "astype", "hwaccel", "mqtt"]
}
}
}
}

View File

@@ -2,12 +2,23 @@
set -euxo pipefail
# Cleanup the old github host key
sed -i -e '/AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31\/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi\/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==/d' ~/.ssh/known_hosts
# Add new github host key
curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | \
sed -e 's/^/github.com /' >> ~/.ssh/known_hosts
# Frigate normal container runs as root, so it have permission to create
# the folders. But the devcontainer runs as the host user, so we need to
# create the folders and give the host user permission to write to them.
sudo mkdir -p /media/frigate
sudo chown -R "$(id -u):$(id -g)" /media/frigate
# When started as a service, LIBAVFORMAT_VERSION_MAJOR is defined in the
# s6 service file. For dev, where frigate is started from an interactive
# shell, we define it in .bashrc instead.
echo 'export LIBAVFORMAT_VERSION_MAJOR=$(ffmpeg -version | grep -Po "libavformat\W+\K\d+")' >> $HOME/.bashrc
make version
cd web

View File

@@ -0,0 +1,135 @@
title: "[Camera Support]: "
labels: ["support", "triage"]
body:
- type: markdown
attributes:
value: |
Use this form for support or questions for an issue with your cameras.
Before submitting your support request, please [search the discussions][discussions], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your question has already been answered by the community.
[discussions]: https://www.github.com/blakeblackshear/frigate/discussions
[docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the System page in the Web UI. Please include the full version including the build identifier (eg. 0.14.0-ea36ds1)
validations:
required: true
- type: input
attributes:
label: What browser(s) are you using?
placeholder: Google Chrome 88.0.4324.150
description: >
Provide the full name and don't forget to add the version!
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: frigatelogs
attributes:
label: Relevant Frigate log output
description: Please copy and paste any relevant Frigate log output. Include logs before and after your exact error when possible. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: go2rtclogs
attributes:
label: Relevant go2rtc log output
description: Please copy and paste any relevant go2rtc log output. Include logs before and after your exact error when possible. Logs can be viewed via the Frigate UI, Docker, or the go2rtc dashboard. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: ffprobe
attributes:
label: FFprobe output from your camera
description: Run `ffprobe <camera_url>` from within the Frigate container if possible, and provide output below
render: shell
validations:
required: true
- type: textarea
id: stats
attributes:
label: Frigate stats
description: Output from frigate's /api/stats endpoint
render: json
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: object-detector
attributes:
label: Object Detector
options:
- Coral
- OpenVino
- TensorRT
- RKNN
- Other
- CPU (no Coral)
validations:
required: true
- type: dropdown
id: network
attributes:
label: Network connection
options:
- Wired
- Wireless
- Mixed
validations:
required: true
- type: input
id: camera
attributes:
label: Camera make and model
description: Dahua, hikvision, amcrest, reolink, etc and model number
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots of the Frigate UI's System metrics pages
description: Drag and drop for images is possible in this field. Please post screenshots of at least General and Cameras tabs.
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -0,0 +1,102 @@
title: "[Config Support]: "
labels: ["support", "triage"]
body:
- type: markdown
attributes:
value: |
Use this form for support or questions related to Frigate's configuration and config file.
Before submitting your support request, please [search the discussions][discussions], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your question has already been answered by the community.
[discussions]: https://www.github.com/blakeblackshear/frigate/discussions
[docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the System page in the Web UI. Please include the full version including the build identifier (eg. 0.14.0-ea36ds1)
validations:
required: true
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: frigatelogs
attributes:
label: Relevant Frigate log output
description: Please copy and paste any relevant Frigate log output. Include logs before and after your exact error when possible. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: go2rtclogs
attributes:
label: Relevant go2rtc log output
description: Please copy and paste any relevant go2rtc log output. Include logs before and after your exact error when possible. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: stats
attributes:
label: Frigate stats
description: Output from frigate's /api/stats endpoint
render: json
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: object-detector
attributes:
label: Object Detector
options:
- Coral
- OpenVino
- TensorRT
- RKNN
- Other
- CPU (no coral)
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots of the Frigate UI's System metrics pages
description: Drag and drop or simple cut/paste is possible in this field
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -0,0 +1,106 @@
title: "[Detector Support]: "
labels: ["support", "triage"]
body:
- type: markdown
attributes:
value: |
Use this form for support or questions related to Frigate's object detectors.
Before submitting your support request, please [search the discussions][discussions], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your question has already been answered by the community.
[discussions]: https://www.github.com/blakeblackshear/frigate/discussions
[docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the System page in the Web UI. Please include the full version including the build identifier (eg. 0.14.0-ea36ds1)
validations:
required: true
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: docker
attributes:
label: docker-compose file or Docker CLI command
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: frigatelogs
attributes:
label: Relevant Frigate log output
description: Please copy and paste any relevant Frigate log output. Include logs before and after your exact error when possible. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: go2rtclogs
attributes:
label: Relevant go2rtc log output
description: Please copy and paste any relevant go2rtc log output. Include logs before and after your exact error when possible. Logs can be viewed via the Frigate UI, Docker, or the go2rtc dashboard. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: object-detector
attributes:
label: Object Detector
options:
- Coral
- OpenVino
- TensorRT
- RKNN
- Other
- CPU (no coral)
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots of the Frigate UI's System metrics pages
description: Drag and drop for images is possible in this field. Please post screenshots of at least General and Cameras tabs.
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -0,0 +1,133 @@
title: "[Support]: "
labels: ["support", "triage"]
body:
- type: markdown
attributes:
value: |
Use this form for support for issues that don't fall into any specific category.
Before submitting your support request, please [search the discussions][discussions], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your question has already been answered by the community.
[discussions]: https://www.github.com/blakeblackshear/frigate/discussions
[docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the System page in the Web UI. Please include the full version including the build identifier (eg. 0.14.0-ea36ds1)
validations:
required: true
- type: input
attributes:
label: What browser(s) are you using?
placeholder: Google Chrome 88.0.4324.150
description: >
Provide the full name and don't forget to add the version!
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: frigatelogs
attributes:
label: Relevant Frigate log output
description: Please copy and paste any relevant Frigate log output. Include logs before and after your exact error when possible. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: go2rtclogs
attributes:
label: Relevant go2rtc log output
description: Please copy and paste any relevant go2rtc log output. Include logs before and after your exact error when possible. Logs can be viewed via the Frigate UI, Docker, or the go2rtc dashboard. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: ffprobe
attributes:
label: FFprobe output from your camera
description: Run `ffprobe <camera_url>` from within the Frigate container if possible, and provide output below
render: shell
validations:
required: true
- type: textarea
id: stats
attributes:
label: Frigate stats
description: Output from frigate's /api/stats endpoint
render: json
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: object-detector
attributes:
label: Object Detector
options:
- Coral
- OpenVino
- TensorRT
- RKNN
- Other
- CPU (no coral)
validations:
required: true
- type: dropdown
id: network
attributes:
label: Network connection
options:
- Wired
- Wireless
- Mixed
validations:
required: true
- type: input
id: camera
attributes:
label: Camera make and model
description: Dahua, hikvision, amcrest, reolink, etc and model number
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots of the Frigate UI's System metrics pages
description: Drag and drop for images is possible in this field
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -0,0 +1,124 @@
title: "[HW Accel Support]: "
labels: ["support", "triage"]
body:
- type: markdown
attributes:
value: |
Use this form to submit a support request for hardware acceleration issues.
Before submitting your support request, please [search the discussions][discussions], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your question has already been answered by the community.
[discussions]: https://www.github.com/blakeblackshear/frigate/discussions
[docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the System page in the Web UI. Please include the full version including the build identifier (eg. 0.14.0-ea36ds1)
validations:
required: true
- type: input
attributes:
label: In which browser(s) are you experiencing the issue with?
placeholder: Google Chrome 88.0.4324.150
description: >
Provide the full name and don't forget to add the version!
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: docker
attributes:
label: docker-compose file or Docker CLI command
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: frigatelogs
attributes:
label: Relevant Frigate log output
description: Please copy and paste any relevant Frigate log output. Include logs before and after your exact error when possible. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: go2rtclogs
attributes:
label: Relevant go2rtc log output
description: Please copy and paste any relevant go2rtc log output. Include logs before and after your exact error when possible. Logs can be viewed via the Frigate UI, Docker, or the go2rtc dashboard. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: ffprobe
attributes:
label: FFprobe output from your camera
description: Run `ffprobe <camera_url>` from within the Frigate container if possible, and provide output below
render: shell
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: network
attributes:
label: Network connection
options:
- Wired
- Wireless
- Mixed
validations:
required: true
- type: input
id: camera
attributes:
label: Camera make and model
description: Dahua, hikvision, amcrest, reolink, etc and model number
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots of the Frigate UI's System metrics pages
description: Drag and drop for images is possible in this field. Please post screenshots of at least General and Cameras tabs.
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -0,0 +1,21 @@
title: "[Question]: "
labels: ["question"]
body:
- type: markdown
attributes:
value: |
Use this form for questions you have about Frigate.
Before submitting your question, please [search the discussions][discussions], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your question has already been answered by the community.
**If you are looking for support, start a new discussion and use a support category.**
[discussions]: https://www.github.com/blakeblackshear/frigate/discussions
[docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724
- type: textarea
id: description
attributes:
label: "What is your question?"
validations:
required: true

View File

@@ -0,0 +1,146 @@
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Use this form to submit a reproducible bug in Frigate or Frigate's UI.
Before submitting your bug report, please [search the discussions][discussions], look at recent open and closed [pull requests][prs], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your bug has already been fixed by the developers or reported by the community.
**If you are unsure if your issue is actually a bug or not, please submit a support request first.**
[discussions]: https://www.github.com/blakeblackshear/frigate/discussions
[prs]: https://www.github.com/blakeblackshear/frigate/pulls
[docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724
- type: checkboxes
attributes:
label: Checklist
description: Please verify that you've followed these steps
options:
- label: I have updated to the latest available Frigate version.
required: true
- label: I have cleared the cache of my browser.
required: true
- label: I have tried a different browser to see if it is related to my browser.
required: true
- label: I have tried reproducing the issue in [incognito mode](https://www.computerworld.com/article/1719851/how-to-go-incognito-in-chrome-firefox-safari-and-edge.html) to rule out problems with any third party extensions or plugins I have installed.
- type: textarea
id: description
attributes:
label: Describe the problem you are having
description: Provide a clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: |
Please tell us exactly how to reproduce your issue.
Provide clear and concise step by step instructions and add code snippets if needed.
value: |
1.
2.
3.
...
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the System page in the Web UI. Please include the full version including the build identifier (eg. 0.14.0-ea36ds1)
validations:
required: true
- type: input
attributes:
label: In which browser(s) are you experiencing the issue with?
placeholder: Google Chrome 88.0.4324.150
description: >
Provide the full name and don't forget to add the version!
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: docker
attributes:
label: docker-compose file or Docker CLI command
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: frigatelogs
attributes:
label: Relevant Frigate log output
description: Please copy and paste any relevant Frigate log output. Include logs before and after your exact error when possible. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: go2rtclogs
attributes:
label: Relevant go2rtc log output
description: Please copy and paste any relevant go2rtc log output. Include logs before and after your exact error when possible. Logs can be viewed via the Frigate UI, Docker, or the go2rtc dashboard. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: network
attributes:
label: Network connection
options:
- Wired
- Wireless
- Mixed
validations:
required: true
- type: input
id: camera
attributes:
label: Camera make and model
description: Dahua, hikvision, amcrest, reolink, etc and model number
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots of the Frigate UI's System metrics pages
description: Drag and drop for images is possible in this field. Please post screenshots of all tabs.
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

1
.github/FUNDING.yml vendored
View File

@@ -1,3 +1,4 @@
github:
- blakeblackshear
- NickM-27
- hawkeye217

View File

@@ -1,107 +0,0 @@
name: Camera Support Request
description: Support for setting up cameras in Frigate
title: "[Camera Support]: "
labels: ["support", "triage"]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the Debug page in the Web UI
validations:
required: true
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: ffprobe
attributes:
label: FFprobe output from your camera
description: Run `ffprobe <camera_url>` and provide output below
render: shell
validations:
required: true
- type: textarea
id: stats
attributes:
label: Frigate stats
description: Output from frigate's /api/stats endpoint
render: json
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: coral
attributes:
label: Coral version
options:
- USB
- PCIe
- M.2
- Dev Board
- Other
- CPU (no coral)
validations:
required: true
- type: dropdown
id: network
attributes:
label: Network connection
options:
- Wired
- Wireless
- Mixed
validations:
required: true
- type: input
id: camera
attributes:
label: Camera make and model
description: Dahua, hikvision, amcrest, reolink, etc and model number
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -1 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Frigate Support
url: https://github.com/blakeblackshear/frigate/discussions/new/choose
about: Get support for setting up or troubleshooting Frigate.
- name: Frigate Bug Report
url: https://github.com/blakeblackshear/frigate/discussions/new/choose
about: Report a specific UI or backend bug.

View File

@@ -1,82 +0,0 @@
name: Config Support Request
description: Support for Frigate configuration
title: "[Config Support]: "
labels: ["support", "triage"]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the Debug page in the Web UI
validations:
required: true
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: stats
attributes:
label: Frigate stats
description: Output from frigate's /api/stats endpoint
render: json
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: coral
attributes:
label: Coral version
options:
- USB
- PCIe
- M.2
- Dev Board
- Other
- CPU (no coral)
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -1,84 +0,0 @@
name: Detector Support Request
description: Support for setting up object detector in Frigate (Coral, OpenVINO, TensorRT, etc.)
title: "[Detector Support]: "
labels: ["support", "triage"]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the Debug page in the Web UI
validations:
required: true
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: docker
attributes:
label: docker-compose file or Docker CLI command
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: coral
attributes:
label: Coral version
options:
- USB
- PCIe
- M.2
- Dev Board
- Other
- CPU (no coral)
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -1,107 +0,0 @@
name: General Support Request
description: General support request for Frigate
title: "[Support]: "
labels: ["support", "triage"]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the Debug page in the Web UI
validations:
required: true
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: ffprobe
attributes:
label: FFprobe output from your camera
description: Run `ffprobe <camera_url>` and provide output below
render: shell
validations:
required: true
- type: textarea
id: stats
attributes:
label: Frigate stats
description: Output from frigate's /api/stats endpoint
render: json
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: coral
attributes:
label: Coral version
options:
- USB
- PCIe
- M.2
- Dev Board
- Other
- CPU (no coral)
validations:
required: true
- type: dropdown
id: network
attributes:
label: Network connection
options:
- Wired
- Wireless
- Mixed
validations:
required: true
- type: input
id: camera
attributes:
label: Camera make and model
description: Dahua, hikvision, amcrest, reolink, etc and model number
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

View File

@@ -1,96 +0,0 @@
name: Hardware Acceleration Support Request
description: Support for setting up GPU hardware acceleration in Frigate
title: "[HW Accel Support]: "
labels: ["support", "triage"]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the problem you are having
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Visible on the Debug page in the Web UI
validations:
required: true
- type: textarea
id: config
attributes:
label: Frigate config file
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: docker
attributes:
label: docker-compose file or Docker CLI command
description: This will be automatically formatted into code, so no need for backticks.
render: yaml
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: ffprobe
attributes:
label: FFprobe output from your camera
description: Run `ffprobe <camera_url>` and provide output below
render: shell
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- HassOS
- Debian
- Other Linux
- Proxmox
- UNRAID
- Windows
- Other
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Install method
options:
- HassOS Addon
- Docker Compose
- Docker CLI
validations:
required: true
- type: dropdown
id: network
attributes:
label: Network connection
options:
- Wired
- Wireless
- Mixed
validations:
required: true
- type: input
id: camera
attributes:
label: Camera make and model
description: Dahua, hikvision, amcrest, reolink, etc and model number
validations:
required: true
- type: textarea
id: other
attributes:
label: Any other information that may be helpful

50
.github/actions/setup/action.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: 'Setup'
description: 'Set up QEMU and Buildx'
inputs:
GITHUB_TOKEN:
required: true
outputs:
image-name:
value: ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ steps.create-short-sha.outputs.SHORT_SHA }}
cache-name:
value: ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:cache
runs:
using: "composite"
steps:
# Stop docker so we can mount more space at /var/lib/docker
- name: Stop docker
run: sudo systemctl stop docker
shell: bash
# This creates a virtual volume at /var/lib/docker to maximize the size
# As of 2/14/2024, this results in 97G for docker images
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
build-mount-path: '/var/lib/docker'
- name: Start docker
run: sudo systemctl start docker
shell: bash
- id: lowercaseRepo
uses: ASzc/change-string-case-action@v5
with:
string: ${{ github.repository }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to the Container registry
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ inputs.GITHUB_TOKEN }}
- name: Create version file
run: make version
shell: bash
- id: create-short-sha
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT
shell: bash

View File

@@ -13,7 +13,13 @@ updates:
open-pull-requests-limit: 10
target-branch: dev
- package-ecosystem: "pip"
directory: "/"
directory: "/docker/main"
schedule:
interval: daily
open-pull-requests-limit: 10
target-branch: dev
- package-ecosystem: "pip"
directory: "/docker/tensorrt"
schedule:
interval: daily
open-pull-requests-limit: 10
@@ -28,5 +34,7 @@ updates:
directory: "/docs"
schedule:
interval: daily
allow:
- dependency-name: "@docusaurus/*"
open-pull-requests-limit: 10
target-branch: dev

View File

@@ -1,6 +1,7 @@
name: CI
on:
workflow_dispatch:
push:
branches:
- dev
@@ -15,53 +16,220 @@ env:
PYTHON_VERSION: 3.9
jobs:
multi_arch_build:
amd64_build:
runs-on: ubuntu-latest
name: Image Build
name: AMD64 Build
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU and Buildx
id: setup
uses: ./.github/actions/setup
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push amd64 standard build
uses: docker/build-push-action@v5
with:
context: .
file: docker/main/Dockerfile
push: true
platforms: linux/amd64
target: frigate
tags: ${{ steps.setup.outputs.image-name }}-amd64
cache-from: type=registry,ref=${{ steps.setup.outputs.cache-name }}-amd64
arm64_build:
runs-on: ubuntu-latest
name: ARM Build
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU and Buildx
id: setup
uses: ./.github/actions/setup
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push arm64 standard build
uses: docker/build-push-action@v5
with:
context: .
file: docker/main/Dockerfile
push: true
platforms: linux/arm64
target: frigate
tags: |
${{ steps.setup.outputs.image-name }}-standard-arm64
cache-from: type=registry,ref=${{ steps.setup.outputs.cache-name }}-arm64
- name: Build and push RPi build
uses: docker/bake-action@v4
with:
push: true
targets: rpi
files: docker/rpi/rpi.hcl
set: |
rpi.tags=${{ steps.setup.outputs.image-name }}-rpi
*.cache-from=type=registry,ref=${{ steps.setup.outputs.cache-name }}-arm64
*.cache-to=type=registry,ref=${{ steps.setup.outputs.cache-name }}-arm64,mode=max
- name: Build and push Rockchip build
uses: docker/bake-action@v3
with:
push: true
targets: rk
files: docker/rockchip/rk.hcl
set: |
rk.tags=${{ steps.setup.outputs.image-name }}-rk
*.cache-from=type=gha
jetson_jp4_build:
runs-on: ubuntu-latest
name: Jetson Jetpack 4
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU and Buildx
id: setup
uses: ./.github/actions/setup
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push TensorRT (Jetson, Jetpack 4)
env:
ARCH: arm64
BASE_IMAGE: timongentzsch/l4t-ubuntu20-opencv:latest
SLIM_BASE: timongentzsch/l4t-ubuntu20-opencv:latest
TRT_BASE: timongentzsch/l4t-ubuntu20-opencv:latest
uses: docker/bake-action@v4
with:
push: true
targets: tensorrt
files: docker/tensorrt/trt.hcl
set: |
tensorrt.tags=${{ steps.setup.outputs.image-name }}-tensorrt-jp4
*.cache-from=type=registry,ref=${{ steps.setup.outputs.cache-name }}-jp4
*.cache-to=type=registry,ref=${{ steps.setup.outputs.cache-name }}-jp4,mode=max
jetson_jp5_build:
runs-on: ubuntu-latest
name: Jetson Jetpack 5
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU and Buildx
id: setup
uses: ./.github/actions/setup
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push TensorRT (Jetson, Jetpack 5)
env:
ARCH: arm64
BASE_IMAGE: nvcr.io/nvidia/l4t-tensorrt:r8.5.2-runtime
SLIM_BASE: nvcr.io/nvidia/l4t-tensorrt:r8.5.2-runtime
TRT_BASE: nvcr.io/nvidia/l4t-tensorrt:r8.5.2-runtime
uses: docker/bake-action@v4
with:
push: true
targets: tensorrt
files: docker/tensorrt/trt.hcl
set: |
tensorrt.tags=${{ steps.setup.outputs.image-name }}-tensorrt-jp5
*.cache-from=type=registry,ref=${{ steps.setup.outputs.cache-name }}-jp5
*.cache-to=type=registry,ref=${{ steps.setup.outputs.cache-name }}-jp5,mode=max
amd64_extra_builds:
runs-on: ubuntu-latest
name: AMD64 Extra Build
needs:
- amd64_build
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU and Buildx
id: setup
uses: ./.github/actions/setup
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push TensorRT (x86 GPU)
env:
COMPUTE_LEVEL: "50 60 70 80 90"
uses: docker/bake-action@v4
with:
push: true
targets: tensorrt
files: docker/tensorrt/trt.hcl
set: |
tensorrt.tags=${{ steps.setup.outputs.image-name }}-tensorrt
*.cache-from=type=registry,ref=${{ steps.setup.outputs.cache-name }}-amd64
*.cache-to=type=registry,ref=${{ steps.setup.outputs.cache-name }}-amd64,mode=max
#- name: AMD/ROCm general build
# env:
# AMDGPU: gfx
# HSA_OVERRIDE: 0
# uses: docker/bake-action@v3
# with:
# push: true
# targets: rocm
# files: docker/rocm/rocm.hcl
# set: |
# rocm.tags=${{ steps.setup.outputs.image-name }}-rocm
# *.cache-from=type=gha
#- name: AMD/ROCm gfx900
# env:
# AMDGPU: gfx900
# HSA_OVERRIDE: 1
# HSA_OVERRIDE_GFX_VERSION: 9.0.0
# uses: docker/bake-action@v3
# with:
# push: true
# targets: rocm
# files: docker/rocm/rocm.hcl
# set: |
# rocm.tags=${{ steps.setup.outputs.image-name }}-rocm-gfx900
# *.cache-from=type=gha
#- name: AMD/ROCm gfx1030
# env:
# AMDGPU: gfx1030
# HSA_OVERRIDE: 1
# HSA_OVERRIDE_GFX_VERSION: 10.3.0
# uses: docker/bake-action@v3
# with:
# push: true
# targets: rocm
# files: docker/rocm/rocm.hcl
# set: |
# rocm.tags=${{ steps.setup.outputs.image-name }}-rocm-gfx1030
# *.cache-from=type=gha
#- name: AMD/ROCm gfx1100
# env:
# AMDGPU: gfx1100
# HSA_OVERRIDE: 1
# HSA_OVERRIDE_GFX_VERSION: 11.0.0
# uses: docker/bake-action@v3
# with:
# push: true
# targets: rocm
# files: docker/rocm/rocm.hcl
# set: |
# rocm.tags=${{ steps.setup.outputs.image-name }}-rocm-gfx1100
# *.cache-from=type=gha
# The majority of users running arm64 are rpi users, so the rpi
# build should be the primary arm64 image
assemble_default_build:
runs-on: ubuntu-latest
name: Assemble and push default build
needs:
- amd64_build
- arm64_build
steps:
- name: Remove unnecessary files
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
- id: lowercaseRepo
uses: ASzc/change-string-case-action@v5
uses: ASzc/change-string-case-action@v6
with:
string: ${{ github.repository }}
- name: Check out code
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to the Container registry
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create version file
run: make version
- name: Create short sha
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
- name: Build and push
uses: docker/build-push-action@v3
- uses: int128/docker-manifest-create-action@v2
with:
context: .
push: true
platforms: linux/amd64,linux/arm64,linux/arm/v7
target: frigate
tags: |
ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push TensorRT
uses: docker/build-push-action@v3
with:
context: .
push: true
platforms: linux/amd64
target: frigate-tensorrt
tags: |
ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-tensorrt
cache-from: type=gha
tags: ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ env.SHORT_SHA }}
sources: |
ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ env.SHORT_SHA }}-amd64
ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ env.SHORT_SHA }}-rpi

View File

@@ -11,12 +11,14 @@ jobs:
steps:
- name: Get Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@v1
uses: dependabot/fetch-metadata@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Enable auto-merge for Dependabot PRs
if: steps.metadata.outputs.dependency-type == 'direct:development' && (steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch')
run: gh pr merge --auto --squash "$PR_URL"
run: |
gh pr review --approve "$PR_URL"
gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -15,7 +15,7 @@ jobs:
env:
DOCKER_BUILDKIT: "1"
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@master
with:
node-version: 16.x
@@ -34,7 +34,7 @@ jobs:
name: Web - Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@master
with:
node-version: 16.x
@@ -48,40 +48,43 @@ jobs:
name: Web - Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@master
with:
node-version: 16.x
node-version: 20.x
- run: npm install
working-directory: ./web
- name: Test
run: npm run test
working-directory: ./web
# - name: Test
# run: npm run test
# working-directory: ./web
python_checks:
runs-on: ubuntu-latest
name: Python Checks
steps:
- name: Check out the repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.5.0
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Install requirements
run: |
pip install pip
pip install -r requirements-dev.txt
- name: Lint
python3 -m pip install -U pip
python3 -m pip install -r docker/main/requirements-dev.txt
- name: Check formatting
run: |
python3 -m black frigate --check
ruff format --check --diff frigate migrations docker *.py
- name: Check lint
run: |
ruff check frigate migrations docker *.py
python_tests:
runs-on: ubuntu-latest
name: Python Tests
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- uses: actions/setup-node@master
with:
node-version: 16.x
@@ -91,9 +94,9 @@ jobs:
run: npm run build
working-directory: ./web
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Build
run: make
- name: Run mypy

47
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: On release
on:
workflow_dispatch:
release:
types: [published]
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: lowercaseRepo
uses: ASzc/change-string-case-action@v6
with:
string: ${{ github.repository }}
- name: Log in to the Container registry
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create tag variables
run: |
BUILD_TYPE=$([[ "${{ github.ref_name }}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] && echo "stable" || echo "beta")
echo "BUILD_TYPE=${BUILD_TYPE}" >> $GITHUB_ENV
echo "BASE=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}" >> $GITHUB_ENV
echo "BUILD_TAG=${GITHUB_SHA::7}" >> $GITHUB_ENV
echo "CLEAN_VERSION=$(echo ${GITHUB_REF##*/} | tr '[:upper:]' '[:lower:]' | sed 's/^[v]//')" >> $GITHUB_ENV
- name: Tag and push the main image
run: |
VERSION_TAG=${BASE}:${CLEAN_VERSION}
STABLE_TAG=${BASE}:stable
PULL_TAG=${BASE}:${BUILD_TAG}
docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG} docker://${VERSION_TAG}
for variant in standard-arm64 tensorrt tensorrt-jp4 tensorrt-jp5 rk; do
docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG}-${variant} docker://${VERSION_TAG}-${variant}
done
# stable tag
if [[ "${BUILD_TYPE}" == "stable" ]]; then
docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG} docker://${STABLE_TAG}
for variant in standard-arm64 tensorrt tensorrt-jp4 tensorrt-jp5 rk; do
docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG}-${variant} docker://${STABLE_TAG}-${variant}
done
fi

View File

@@ -24,3 +24,18 @@ jobs:
operations-per-run: 120
- name: Print outputs
run: echo ${{ join(steps.stale.outputs.*, ',') }}
# clean_ghcr:
# name: Delete outdated dev container images
# runs-on: ubuntu-latest
# steps:
# - name: Delete old images
# uses: snok/container-retention-policy@v2
# with:
# image-names: dev-*
# cut-off: 60 days ago UTC
# keep-at-least: 5
# account-type: personal
# token: ${{ secrets.GITHUB_TOKEN }}
# token-type: github-token

5
.gitignore vendored
View File

@@ -4,10 +4,10 @@
debug
.vscode/*
!.vscode/launch.json
config/config.yml
config/*
!config/*.example
models
*.mp4
*.ts
*.db
*.csv
frigate/version.py
@@ -17,3 +17,4 @@ web/coverage
core
!/web/**/*.ts
.idea/*
.ipynb_checkpoints

6
CODEOWNERS Normal file
View File

@@ -0,0 +1,6 @@
# Community-supported boards
/docker/tensorrt/ @madsciencetist @NateMeyer
/docker/tensorrt/*arm64* @madsciencetist
/docker/tensorrt/*jetson* @madsciencetist
/docker/rockchip/ @MarcA711
/docker/rocm/ @harakas

View File

@@ -1,39 +1,39 @@
default_target: local
COMMIT_HASH := $(shell git log -1 --pretty=format:"%h"|tail -1)
VERSION = 0.12.1
VERSION = 0.14.1
IMAGE_REPO ?= ghcr.io/blakeblackshear/frigate
GITHUB_REF_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
CURRENT_UID := $(shell id -u)
CURRENT_GID := $(shell id -g)
BOARDS= #Initialized empty
include docker/*/*.mk
build-boards: $(BOARDS:%=build-%)
push-boards: $(BOARDS:%=push-%)
version:
echo 'VERSION = "$(VERSION)-$(COMMIT_HASH)"' > frigate/version.py
local: version
docker buildx build --target=frigate --tag frigate:latest --load .
local-trt: version
docker buildx build --target=frigate-tensorrt --tag frigate:latest-tensorrt --load .
docker buildx build --target=frigate --tag frigate:latest --load --file docker/main/Dockerfile .
amd64:
docker buildx build --platform linux/amd64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) .
docker buildx build --platform linux/amd64 --target=frigate-tensorrt --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH)-tensorrt .
docker buildx build --platform linux/amd64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) --file docker/main/Dockerfile .
arm64:
docker buildx build --platform linux/arm64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) .
docker buildx build --platform linux/arm64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) --file docker/main/Dockerfile .
armv7:
docker buildx build --platform linux/arm/v7 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) .
build: version amd64 arm64
docker buildx build --platform linux/arm64/v8,linux/amd64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) --file docker/main/Dockerfile .
build: version amd64 arm64 armv7
docker buildx build --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) .
push: build
docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --target=frigate --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH) .
docker buildx build --push --platform linux/amd64 --target=frigate-tensorrt --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-tensorrt .
push: push-boards
docker buildx build --push --platform linux/arm64/v8,linux/amd64 --target=frigate --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH) --file docker/main/Dockerfile .
run: local
docker run --rm --publish=5000:5000 --volume=${PWD}/config/config.yml:/config/config.yml frigate:latest
docker run --rm --publish=5000:5000 --volume=${PWD}/config:/config frigate:latest
run_tests: local
docker run --rm --workdir=/opt/frigate --entrypoint= frigate:latest python3 -u -m unittest

View File

@@ -29,18 +29,22 @@ If you would like to make a donation to support development, please use [Github
## Screenshots
Integration into Home Assistant
### Live dashboard
<div>
<a href="docs/static/img/media_browser.png"><img src="docs/static/img/media_browser.png" height=400></a>
<a href="docs/static/img/notification.png"><img src="docs/static/img/notification.png" height=400></a>
<img width="800" alt="Live dashboard" src="https://github.com/blakeblackshear/frigate/assets/569905/5e713cb9-9db5-41dc-947a-6937c3bc376e">
</div>
Also comes with a builtin UI:
### Streamlined review workflow
<div>
<a href="docs/static/img/home-ui.png"><img src="docs/static/img/home-ui.png" height=400></a>
<a href="docs/static/img/camera-ui.png"><img src="docs/static/img/camera-ui.png" height=400></a>
<img width="800" alt="Streamlined review workflow" src="https://github.com/blakeblackshear/frigate/assets/569905/6fed96e8-3b18-40e5-9ddc-31e6f3c9f2ff">
</div>
![Events](docs/static/img/events-ui.png)
### Multi-camera scrubbing
<div>
<img width="800" alt="Multi-camera scrubbing" src="https://github.com/blakeblackshear/frigate/assets/569905/d6788a15-0eeb-4427-a8d4-80b93cae3d74">
</div>
### Built-in mask and zone editor
<div>
<img width="800" alt="Multi-camera scrubbing" src="https://github.com/blakeblackshear/frigate/assets/569905/d7885fc3-bfe6-452f-b7d0-d957cb3e31f5">
</div>

521
audio-labelmap.txt Normal file
View File

@@ -0,0 +1,521 @@
speech
speech
speech
speech
babbling
speech
yell
bellow
whoop
yell
yell
yell
whispering
laughter
laughter
laughter
snicker
laughter
laughter
crying
crying
crying
yell
sigh
singing
choir
sodeling
chant
mantra
child_singing
synthetic_singing
rapping
humming
groan
grunt
whistling
breathing
wheeze
snoring
gasp
pant
snort
cough
throat_clearing
sneeze
sniff
run
shuffle
footsteps
chewing
biting
gargling
stomach_rumble
burping
hiccup
fart
hands
finger_snapping
clapping
heartbeat
heart_murmur
cheering
applause
chatter
crowd
speech
children_playing
animal
pets
dog
bark
yip
howl
bow-wow
growling
whimper_dog
cat
purr
meow
hiss
caterwaul
livestock
horse
clip-clop
neigh
cattle
moo
cowbell
pig
oink
goat
bleat
sheep
fowl
chicken
cluck
cock-a-doodle-doo
turkey
gobble
duck
quack
goose
honk
wild_animals
roaring_cats
roar
bird
chird
chirp
squawk
pigeon
coo
crow
caw
owl
hoot
flapping_wings
dogs
rats
mouse
patter
insect
cricket
mosquito
fly
buzz
buzz
frog
croak
snake
rattle
whale_vocalization
music
musical_instrument
plucked_string_instrument
guitar
electric_guitar
bass_guitar
acoustic_guitar
steel_guitar
tapping
strum
banjo
sitar
mandolin
zither
ukulele
keyboard
piano
electric_piano
organ
electronic_organ
hammond_organ
synthesizer
sampler
harpsichord
percussion
drum_kit
drum_machine
drum
snare_drum
rimshot
drum_roll
bass_drum
timpani
tabla
cymbal
hi-hat
wood_block
tambourine
rattle
maraca
gong
tubular_bells
mallet_percussion
marimba
glockenspiel
vibraphone
steelpan
orchestra
brass_instrument
french_horn
trumpet
trombone
bowed_string_instrument
string_section
violin
pizzicato
cello
double_bass
wind_instrument
flute
saxophone
clarinet
harp
bell
church_bell
jingle_bell
bicycle_bell
tuning_fork
chime
wind_chime
change_ringing
harmonica
accordion
bagpipes
didgeridoo
shofar
theremin
singing_bowl
scratching
pop_music
hip_hop_music
beatboxing
rock_music
heavy_metal
punk_rock
grunge
progressive_rock
rock_and_roll
psychedelic_rock
rhythm_and_blues
soul_music
reggae
country
swing_music
bluegrass
funk
folk_music
middle_eastern_music
jazz
disco
classical_music
opera
electronic_music
house_music
techno
dubstep
drum_and_bass
electronica
electronic_dance_music
ambient_music
trance_music
music_of_latin_america
salsa_music
flamenco
blues
music_for_children
new-age_music
vocal_music
a_capella
music_of_africa
afrobeat
christian_music
gospel_music
music_of_asia
carnatic_music
music_of_bollywood
ska
traditional_music
independent_music
song
background_music
theme_music
jingle
soundtrack_music
lullaby
video_game_music
christmas_music
dance_music
wedding_music
happy_music
sad_music
tender_music
exciting_music
angry_music
scary_music
wind
rustling_leaves
wind_noise
thunderstorm
thunder
water
rain
raindrop
rain_on_surface
stream
waterfall
ocean
waves
steam
gurgling
fire
crackle
vehicle
boat
sailboat
rowboat
motorboat
ship
motor_vehicle
car
honk
toot
car_alarm
power_windows
skidding
tire_squeal
car_passing_by
race_car
truck
air_brake
air_horn
reversing_beeps
ice_cream_truck
bus
emergency_vehicle
police_car
ambulance
fire_engine
motorcycle
traffic_noise
rail_transport
train
train_whistle
train_horn
railroad_car
train_wheels_squealing
subway
aircraft
aircraft_engine
jet_engine
propeller
helicopter
fixed-wing_aircraft
bicycle
skateboard
engine
light_engine
dental_drill's_drill
lawn_mower
chainsaw
medium_engine
heavy_engine
engine_knocking
engine_starting
idling
accelerating
door
doorbell
ding-dong
sliding_door
slam
knock
tap
squeak
cupboard_open_or_close
drawer_open_or_close
dishes
cutlery
chopping
frying
microwave_oven
blender
water_tap
sink
bathtub
hair_dryer
toilet_flush
toothbrush
electric_toothbrush
vacuum_cleaner
zipper
keys_jangling
coin
scissors
electric_shaver
shuffling_cards
typing
typewriter
computer_keyboard
writing
alarm
telephone
telephone_bell_ringing
ringtone
telephone_dialing
dial_tone
busy_signal
alarm_clock
siren
civil_defense_siren
buzzer
smoke_detector
fire_alarm
foghorn
whistle
steam_whistle
mechanisms
ratchet
clock
tick
tick-tock
gears
pulleys
sewing_machine
mechanical_fan
air_conditioning
cash_register
printer
camera
single-lens_reflex_camera
tools
hammer
jackhammer
sawing
filing
sanding
power_tool
drill
explosion
gunshot
machine_gun
fusillade
artillery_fire
cap_gun
fireworks
firecracker
burst
eruption
boom
wood
chop
splinter
crack
glass
chink
shatter
liquid
splash
slosh
squish
drip
pour
trickle
gush
fill
spray
pump
stir
boiling
sonar
arrow
whoosh
thump
thunk
electronic_tuner
effects_unit
chorus_effect
basketball_bounce
bang
slap
whack
smash
breaking
bouncing
whip
flap
scratch
scrape
rub
roll
crushing
crumpling
tearing
beep
ping
ding
clang
squeal
creak
rustle
whir
clatter
sizzle
clicking
clickety-clack
rumble
plop
jingle
hum
zing
boing
crunch
silence
sine_wave
harmonic
chirp_tone
sound_effect
pulse
inside
inside
inside
outside
outside
reverberation
echo
noise
environmental_noise
static
mains_hum
distortion
sidetone
cacophony
white_noise
pink_noise
throbbing
vibration
television
radio
field_recording

View File

@@ -1,11 +1,11 @@
import os
from statistics import mean
import multiprocessing as mp
import numpy as np
import datetime
import multiprocessing as mp
from statistics import mean
import numpy as np
from frigate.config import DetectorTypeEnum
from frigate.object_detection import (
LocalObjectDetector,
ObjectDetectProcess,
RemoteObjectDetector,
load_labels,
@@ -53,7 +53,7 @@ def start(id, num_detections, detection_queue, event):
frame_times = []
for x in range(0, num_detections):
start_frame = datetime.datetime.now().timestamp()
detections = object_detector.detect(my_frame)
object_detector.detect(my_frame)
frame_times.append(datetime.datetime.now().timestamp() - start_frame)
duration = datetime.datetime.now().timestamp() - start

118
benchmark_motion.py Normal file
View File

@@ -0,0 +1,118 @@
import datetime
import multiprocessing as mp
import os
import cv2
import numpy as np
from frigate.config import MotionConfig
from frigate.motion.improved_motion import ImprovedMotionDetector
from frigate.util import create_mask
# get info on the video
# cap = cv2.VideoCapture("debug/front_cam_2023_05_23_08_41__2023_05_23_08_43.mp4")
# cap = cv2.VideoCapture("debug/motion_test_clips/rain_1.mp4")
cap = cv2.VideoCapture("debug/motion_test_clips/lawn_mower_night_1.mp4")
# cap = cv2.VideoCapture("airport.mp4")
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cap.get(cv2.CAP_PROP_FPS)
frame_shape = (height, width, 3)
# Nick back:
# "1280,0,1280,316,1170,216,1146,126,1016,127,979,82,839,0",
# "310,350,300,402,224,405,241,354",
# "378,0,375,26,0,23,0,0",
# Front door:
# "1080,0,1080,339,1010,280,1020,169,777,163,452,170,318,299,191,365,186,417,139,470,108,516,40,530,0,514,0,0",
# "336,833,438,1024,346,1093,103,1052,24,814",
# Back
# "1855,0,1851,100,1289,96,1105,161,1045,119,890,121,890,0",
# "505,95,506,138,388,153,384,114",
# "689,72,689,122,549,134,547,89",
# "261,134,264,176,169,195,167,158",
# "145,159,146,202,70,220,65,183",
mask = create_mask(
(height, width),
[
"1080,0,1080,339,1010,280,1020,169,777,163,452,170,318,299,191,365,186,417,139,470,108,516,40,530,0,514,0,0",
"336,833,438,1024,346,1093,103,1052,24,814",
],
)
# create the motion config
motion_config_1 = MotionConfig()
motion_config_1.mask = np.zeros((height, width), np.uint8)
motion_config_1.mask[:] = mask
# motion_config_1.improve_contrast = 1
motion_config_1.frame_height = 150
# motion_config_1.frame_alpha = 0.02
# motion_config_1.threshold = 30
# motion_config_1.contour_area = 10
motion_config_2 = MotionConfig()
motion_config_2.mask = np.zeros((height, width), np.uint8)
motion_config_2.mask[:] = mask
# motion_config_2.improve_contrast = 1
motion_config_2.frame_height = 150
# motion_config_2.frame_alpha = 0.01
motion_config_2.threshold = 20
# motion_config.contour_area = 10
save_images = True
improved_motion_detector_1 = ImprovedMotionDetector(
frame_shape=frame_shape,
config=motion_config_1,
fps=fps,
improve_contrast=mp.Value("i", motion_config_1.improve_contrast),
threshold=mp.Value("i", motion_config_1.threshold),
contour_area=mp.Value("i", motion_config_1.contour_area),
name="default",
)
improved_motion_detector_1.save_images = save_images
improved_motion_detector_2 = ImprovedMotionDetector(
frame_shape=frame_shape,
config=motion_config_2,
fps=fps,
improve_contrast=mp.Value("i", motion_config_2.improve_contrast),
threshold=mp.Value("i", motion_config_2.threshold),
contour_area=mp.Value("i", motion_config_2.contour_area),
name="compare",
)
improved_motion_detector_2.save_images = save_images
# read and process frames
ret, frame = cap.read()
frame_counter = 1
while ret:
yuv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2YUV_I420)
start_frame = datetime.datetime.now().timestamp()
improved_motion_detector_1.detect(yuv_frame)
start_frame = datetime.datetime.now().timestamp()
improved_motion_detector_2.detect(yuv_frame)
default_frame = f"debug/frames/default-{frame_counter}.jpg"
compare_frame = f"debug/frames/compare-{frame_counter}.jpg"
if os.path.exists(default_frame) and os.path.exists(compare_frame):
images = [
cv2.imread(default_frame),
cv2.imread(compare_frame),
]
cv2.imwrite(
f"debug/frames/all-{frame_counter}.jpg",
cv2.vconcat(images)
if frame_shape[0] > frame_shape[1]
else cv2.hconcat(images),
)
os.unlink(default_frame)
os.unlink(compare_frame)
frame_counter += 1
ret, frame = cap.read()
cap.release()

21
cspell.json Normal file
View File

@@ -0,0 +1,21 @@
{
"version": "0.2",
"ignorePaths": [
"Dockerfile",
"Dockerfile.*",
"CMakeLists.txt",
"*.db",
"node_modules",
"__pycache__",
"dist"
],
"language": "en",
"dictionaryDefinitions": [
{
"name": "frigate-dictionary",
"path": "./.cspell/frigate-dictionary.txt",
"addWords": true
}
],
"dictionaries": ["frigate-dictionary"]
}

View File

@@ -11,15 +11,19 @@ services:
shm_size: "256mb"
build:
context: .
dockerfile: docker/main/Dockerfile
# Use target devcontainer-trt for TensorRT dev
target: devcontainer
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
## Uncomment this block for nvidia gpu support
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: 1
# capabilities: [gpu]
environment:
YOLO_MODELS: yolov7-320
devices:
- /dev/bus/usb:/dev/bus/usb
# - /dev/dri:/dev/dri # for intel hwaccel, needs to be updated for your hardware
@@ -27,10 +31,8 @@ services:
- .:/workspace/frigate:cached
- ./web/dist:/opt/frigate/web:cached
- /etc/localtime:/etc/localtime:ro
- ./config/config.yml:/config/config.yml:ro
- ./config:/config
- ./debug:/media/frigate
# Create the trt-models folder using the documented method of generating TRT models
# - ./debug/trt-models:/trt-models
- /dev/bus/usb:/dev/bus/usb
mqtt:
container_name: mqtt

View File

@@ -1,92 +0,0 @@
#!/bin/bash
set -euxo pipefail
apt-get -qq update
apt-get -qq install --no-install-recommends -y \
apt-transport-https \
gnupg \
wget \
procps vainfo \
unzip locales tzdata libxml2 xz-utils \
python3-pip \
curl \
jq
mkdir -p -m 600 /root/.gnupg
# add coral repo
curl -fsSLo - https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-packages-archive-keyring.gpg
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | tee /etc/apt/sources.list.d/coral-edgetpu.list
echo "libedgetpu1-max libedgetpu/accepted-eula select true" | debconf-set-selections
# enable non-free repo
sed -i -e's/ main/ main contrib non-free/g' /etc/apt/sources.list
# coral drivers
apt-get -qq update
apt-get -qq install --no-install-recommends --no-install-suggests -y \
libedgetpu1-max python3-tflite-runtime python3-pycoral
# btbn-ffmpeg -> amd64
if [[ "${TARGETARCH}" == "amd64" ]]; then
mkdir -p /usr/lib/btbn-ffmpeg
wget -qO btbn-ffmpeg.tar.xz "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2022-07-31-12-37/ffmpeg-n5.1-2-g915ef932a3-linux64-gpl-5.1.tar.xz"
tar -xf btbn-ffmpeg.tar.xz -C /usr/lib/btbn-ffmpeg --strip-components 1
rm -rf btbn-ffmpeg.tar.xz /usr/lib/btbn-ffmpeg/doc /usr/lib/btbn-ffmpeg/bin/ffplay
fi
# ffmpeg -> arm32
if [[ "${TARGETARCH}" == "arm" ]]; then
# add raspberry pi repo
gpg --no-default-keyring --keyring /usr/share/keyrings/raspbian.gpg --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
echo "deb [signed-by=/usr/share/keyrings/raspbian.gpg] http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi" | tee /etc/apt/sources.list.d/raspi.list
apt-get -qq update
apt-get -qq install --no-install-recommends --no-install-suggests -y ffmpeg
fi
# ffmpeg -> arm64
if [[ "${TARGETARCH}" == "arm64" ]]; then
# add raspberry pi repo
gpg --no-default-keyring --keyring /usr/share/keyrings/raspbian.gpg --keyserver keyserver.ubuntu.com --recv-keys 82B129927FA3303E
echo "deb [signed-by=/usr/share/keyrings/raspbian.gpg] https://archive.raspberrypi.org/debian/ bullseye main" | tee /etc/apt/sources.list.d/raspi.list
apt-get -qq update
apt-get -qq install --no-install-recommends --no-install-suggests -y ffmpeg
fi
# arch specific packages
if [[ "${TARGETARCH}" == "amd64" ]]; then
# Use debian testing repo only for hwaccel packages
echo 'deb http://deb.debian.org/debian testing main non-free' >/etc/apt/sources.list.d/debian-testing.list
apt-get -qq update
# intel-opencl-icd specifically for GPU support in OpenVino
apt-get -qq install --no-install-recommends --no-install-suggests -y \
intel-opencl-icd \
mesa-va-drivers libva-drm2 intel-media-va-driver-non-free i965-va-driver libmfx1 radeontop intel-gpu-tools
# something about this dependency requires it to be installed in a separate call rather than in the line above
apt-get -qq install --no-install-recommends --no-install-suggests -y \
i965-va-driver-shaders
rm -f /etc/apt/sources.list.d/debian-testing.list
fi
if [[ "${TARGETARCH}" == "arm64" ]]; then
apt-get -qq install --no-install-recommends --no-install-suggests -y \
libva-drm2 mesa-va-drivers
fi
# not sure why 32bit arm requires all these
if [[ "${TARGETARCH}" == "arm" ]]; then
apt-get -qq install --no-install-recommends --no-install-suggests -y \
libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
gfortran openexr libatlas-base-dev libtbb-dev libdc1394-22-dev libopenexr-dev \
libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
fi
apt-get purge gnupg apt-transport-https wget xz-utils -y
apt-get clean autoclean -y
apt-get autoremove --purge -y
rm -rf /var/lib/apt/lists/*

View File

@@ -1,13 +1,16 @@
# syntax=docker/dockerfile:1.2
# syntax=docker/dockerfile:1.6
# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
ARG DEBIAN_FRONTEND=noninteractive
FROM debian:11 AS base
ARG BASE_IMAGE=debian:11
ARG SLIM_BASE=debian:11-slim
FROM --platform=linux/amd64 debian:11 AS base_amd64
FROM ${BASE_IMAGE} AS base
FROM debian:11-slim AS slim-base
FROM --platform=${BUILDPLATFORM} debian:11 AS base_host
FROM ${SLIM_BASE} AS slim-base
FROM slim-base AS wget
ARG DEBIAN_FRONTEND
@@ -18,68 +21,82 @@ WORKDIR /rootfs
FROM base AS nginx
ARG DEBIAN_FRONTEND
ENV CCACHE_DIR /root/.ccache
ENV CCACHE_MAXSIZE 2G
# bind /var/cache/apt to tmpfs to speed up nginx build
RUN --mount=type=tmpfs,target=/tmp --mount=type=tmpfs,target=/var/cache/apt \
--mount=type=bind,source=docker/build_nginx.sh,target=/deps/build_nginx.sh \
--mount=type=bind,source=docker/main/build_nginx.sh,target=/deps/build_nginx.sh \
--mount=type=cache,target=/root/.ccache \
/deps/build_nginx.sh
FROM wget AS go2rtc
FROM scratch AS go2rtc
ARG TARGETARCH
WORKDIR /rootfs/usr/local/go2rtc/bin
RUN wget -qO go2rtc "https://github.com/AlexxIT/go2rtc/releases/download/v1.2.0/go2rtc_linux_${TARGETARCH}" \
&& chmod +x go2rtc
ADD --link --chmod=755 "https://github.com/AlexxIT/go2rtc/releases/download/v1.9.2/go2rtc_linux_${TARGETARCH}" go2rtc
FROM wget AS tempio
ARG TARGETARCH
RUN --mount=type=bind,source=docker/main/install_tempio.sh,target=/deps/install_tempio.sh \
/deps/install_tempio.sh
####
#
# OpenVino Support
#
# 1. Download and convert a model from Intel's Public Open Model Zoo
# 2. Build libUSB without udev to handle NCS2 enumeration
#
####
# Download and Convert OpenVino model
FROM base_amd64 AS ov-converter
FROM base_host AS ov-converter
ARG DEBIAN_FRONTEND
# Install OpenVino Runtime and Dev library
COPY requirements-ov.txt /requirements-ov.txt
COPY docker/main/requirements-ov.txt /requirements-ov.txt
RUN apt-get -qq update \
&& apt-get -qq install -y wget python3 python3-distutils \
&& apt-get -qq install -y wget python3 python3-dev python3-distutils gcc pkg-config libhdf5-dev \
&& wget -q https://bootstrap.pypa.io/get-pip.py -O get-pip.py \
&& python3 get-pip.py "pip" \
&& pip install -r /requirements-ov.txt
# Get OpenVino Model
RUN mkdir /models \
&& cd /models && omz_downloader --name ssdlite_mobilenet_v2 \
&& cd /models && omz_converter --name ssdlite_mobilenet_v2 --precision FP16
RUN --mount=type=bind,source=docker/main/build_ov_model.py,target=/build_ov_model.py \
mkdir /models && cd /models \
&& wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz \
&& tar -xvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz \
&& python3 /build_ov_model.py
####
#
# Coral Compatibility
#
# Builds libusb without udev. Needed for synology and other devices with USB coral
####
# libUSB - No Udev
FROM wget as libusb-build
ARG TARGETARCH
ARG DEBIAN_FRONTEND
ENV CCACHE_DIR /root/.ccache
ENV CCACHE_MAXSIZE 2G
# Build libUSB without udev. Needed for Openvino NCS2 support
WORKDIR /opt
RUN apt-get update && apt-get install -y unzip build-essential automake libtool
RUN wget -q https://github.com/libusb/libusb/archive/v1.0.25.zip -O v1.0.25.zip && \
unzip v1.0.25.zip && cd libusb-1.0.25 && \
RUN apt-get update && apt-get install -y unzip build-essential automake libtool ccache pkg-config
RUN --mount=type=cache,target=/root/.ccache wget -q https://github.com/libusb/libusb/archive/v1.0.26.zip -O v1.0.26.zip && \
unzip v1.0.26.zip && cd libusb-1.0.26 && \
./bootstrap.sh && \
./configure --disable-udev --enable-shared && \
./configure CC='ccache gcc' CCX='ccache g++' --disable-udev --enable-shared && \
make -j $(nproc --all)
RUN apt-get update && \
apt-get install -y --no-install-recommends libusb-1.0-0-dev && \
rm -rf /var/lib/apt/lists/*
WORKDIR /opt/libusb-1.0.25/libusb
WORKDIR /opt/libusb-1.0.26/libusb
RUN /bin/mkdir -p '/usr/local/lib' && \
/bin/bash ../libtool --mode=install /usr/bin/install -c libusb-1.0.la '/usr/local/lib' && \
/bin/mkdir -p '/usr/local/include/libusb-1.0' && \
/usr/bin/install -c -m 644 libusb.h '/usr/local/include/libusb-1.0' && \
/bin/mkdir -p '/usr/local/lib/pkgconfig' && \
cd /opt/libusb-1.0.25/ && \
cd /opt/libusb-1.0.26/ && \
/usr/bin/install -c -m 644 libusb-1.0.pc '/usr/local/lib/pkgconfig' && \
ldconfig
@@ -90,15 +107,18 @@ RUN wget -qO edgetpu_model.tflite https://github.com/google-coral/test_data/raw/
RUN wget -qO cpu_model.tflite https://github.com/google-coral/test_data/raw/release-frogfish/ssdlite_mobiledet_coco_qat_postprocess.tflite
COPY labelmap.txt .
# Copy OpenVino model
COPY --from=ov-converter /models/public/ssdlite_mobilenet_v2/FP16 openvino-model
COPY --from=ov-converter /models/ssdlite_mobilenet_v2.xml openvino-model/
COPY --from=ov-converter /models/ssdlite_mobilenet_v2.bin openvino-model/
RUN wget -q https://github.com/openvinotoolkit/open_model_zoo/raw/master/data/dataset_classes/coco_91cl_bkgr.txt -O openvino-model/coco_91cl_bkgr.txt && \
sed -i 's/truck/car/g' openvino-model/coco_91cl_bkgr.txt
# Get Audio Model and labels
RUN wget -qO - https://www.kaggle.com/api/v1/models/google/yamnet/tfLite/classification-tflite/1/download | tar xvz && mv 1.tflite cpu_audio_model.tflite
COPY audio-labelmap.txt .
FROM wget AS s6-overlay
ARG TARGETARCH
RUN --mount=type=bind,source=docker/install_s6_overlay.sh,target=/deps/install_s6_overlay.sh \
RUN --mount=type=bind,source=docker/main/install_s6_overlay.sh,target=/deps/install_s6_overlay.sh \
/deps/install_s6_overlay.sh
@@ -112,13 +132,15 @@ RUN apt-get -qq update \
apt-transport-https \
gnupg \
wget \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E \
&& echo "deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi" | tee /etc/apt/sources.list.d/raspi.list \
# the key fingerprint can be obtained from https://ftp-master.debian.org/keys.html
&& wget -qO- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xA4285295FC7B1A81600062A9605C66F00D6C9793" | \
gpg --dearmor > /usr/share/keyrings/debian-archive-bullseye-stable.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/debian-archive-bullseye-stable.gpg] http://deb.debian.org/debian bullseye main contrib non-free" | \
tee /etc/apt/sources.list.d/debian-bullseye-nonfree.list \
&& apt-get -qq update \
&& apt-get -qq install -y \
python3 \
python3-dev \
wget \
python3.9 \
python3.9-dev \
# opencv dependencies
build-essential cmake git pkg-config libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
@@ -130,28 +152,17 @@ RUN apt-get -qq update \
gcc gfortran libopenblas-dev liblapack-dev && \
rm -rf /var/lib/apt/lists/*
# Ensure python3 defaults to python3.9
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
RUN wget -q https://bootstrap.pypa.io/get-pip.py -O get-pip.py \
&& python3 get-pip.py "pip"
RUN if [ "${TARGETARCH}" = "arm" ]; \
then echo "[global]" > /etc/pip.conf \
&& echo "extra-index-url=https://www.piwheels.org/simple" >> /etc/pip.conf; \
fi
COPY docker/main/requirements.txt /requirements.txt
RUN pip3 install -r /requirements.txt
COPY requirements.txt /requirements.txt
RUN pip3 install -r requirements.txt
COPY requirements-wheels.txt /requirements-wheels.txt
RUN pip3 wheel --wheel-dir=/wheels -r requirements-wheels.txt
# Make this a separate target so it can be built/cached optionally
FROM wheels as trt-wheels
ARG DEBIAN_FRONTEND
ARG TARGETARCH
# Add TensorRT wheels to another folder
COPY requirements-tensorrt.txt /requirements-tensorrt.txt
RUN mkdir -p /trt-wheels && pip3 wheel --wheel-dir=/trt-wheels -r requirements-tensorrt.txt
COPY docker/main/requirements-wheels.txt /requirements-wheels.txt
RUN pip3 wheel --wheel-dir=/wheels -r /requirements-wheels.txt
# Collect deps in a single layer
@@ -159,9 +170,10 @@ FROM scratch AS deps-rootfs
COPY --from=nginx /usr/local/nginx/ /usr/local/nginx/
COPY --from=go2rtc /rootfs/ /
COPY --from=libusb-build /usr/local/lib /usr/local/lib
COPY --from=tempio /rootfs/ /
COPY --from=s6-overlay /rootfs/ /
COPY --from=models /rootfs/ /
COPY docker/rootfs/ /
COPY docker/main/rootfs/ /
# Frigate deps (ffmpeg, python, nginx, go2rtc, s6-overlay, etc)
@@ -176,13 +188,14 @@ ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
ENV PATH="/usr/lib/btbn-ffmpeg/bin:/usr/local/go2rtc/bin:/usr/local/nginx/sbin:${PATH}"
ENV PATH="/usr/lib/btbn-ffmpeg/bin:/usr/local/go2rtc/bin:/usr/local/tempio/bin:/usr/local/nginx/sbin:${PATH}"
# Install dependencies
RUN --mount=type=bind,source=docker/install_deps.sh,target=/deps/install_deps.sh \
RUN --mount=type=bind,source=docker/main/install_deps.sh,target=/deps/install_deps.sh \
/deps/install_deps.sh
RUN --mount=type=bind,from=wheels,source=/wheels,target=/deps/wheels \
python3 -m pip install --upgrade pip && \
pip3 install -U /deps/wheels/*.whl
COPY --from=deps-rootfs / /
@@ -190,34 +203,38 @@ COPY --from=deps-rootfs / /
RUN ldconfig
EXPOSE 5000
EXPOSE 1935
EXPOSE 8554
EXPOSE 8555/tcp 8555/udp
# Configure logging to prepend timestamps, log to stdout, keep 0 archives and rotate on 10MB
ENV S6_LOGGING_SCRIPT="T 1 n0 s10000000 T"
# Do not fail on long-running download scripts
ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
ENTRYPOINT ["/init"]
CMD []
HEALTHCHECK --start-period=120s --start-interval=5s --interval=15s --timeout=5s --retries=3 \
CMD curl --fail --silent --show-error http://127.0.0.1:5000/api/version || exit 1
# Frigate deps with Node.js and NPM for devcontainer
FROM deps AS devcontainer
# Do not start the actual Frigate service on devcontainer as it will be started by VSCode
# But start a fake service for simulating the logs
COPY docker/fake_frigate_run /etc/s6-overlay/s6-rc.d/frigate/run
COPY docker/main/fake_frigate_run /etc/s6-overlay/s6-rc.d/frigate/run
# Create symbolic link to the frigate source code, as go2rtc's create_config.sh uses it
RUN mkdir -p /opt/frigate \
&& ln -svf /workspace/frigate/frigate /opt/frigate/frigate
# Install Node 16
RUN apt-get update \
&& apt-get install wget -y \
&& wget -qO- https://deb.nodesource.com/setup_16.x | bash - \
&& apt-get install -y nodejs \
# Install Node 20
RUN curl -SLO https://deb.nodesource.com/nsolid_setup_deb.sh && \
chmod 500 nsolid_setup_deb.sh && \
./nsolid_setup_deb.sh 20 && \
apt-get install nodejs -y \
&& rm -rf /var/lib/apt/lists/* \
&& npm install -g npm@9
&& npm install -g npm@10
WORKDIR /workspace/frigate
@@ -225,15 +242,17 @@ RUN apt-get update \
&& apt-get install make -y \
&& rm -rf /var/lib/apt/lists/*
RUN --mount=type=bind,source=./requirements-dev.txt,target=/workspace/frigate/requirements-dev.txt \
RUN --mount=type=bind,source=./docker/main/requirements-dev.txt,target=/workspace/frigate/requirements-dev.txt \
pip3 install -r requirements-dev.txt
HEALTHCHECK NONE
CMD ["sleep", "infinity"]
# Frigate web build
# force this to run on amd64 because QEMU is painfully slow
FROM --platform=linux/amd64 node:16 AS web-build
# This should be architecture agnostic, so speed up the build on multiarch by not using QEMU.
FROM --platform=$BUILDPLATFORM node:20 AS web-build
WORKDIR /work
COPY web/package.json web/package-lock.json ./
@@ -257,16 +276,3 @@ FROM deps AS frigate
WORKDIR /opt/frigate/
COPY --from=rootfs / /
# Frigate w/ TensorRT Support as separate image
FROM frigate AS frigate-tensorrt
RUN --mount=type=bind,from=trt-wheels,source=/trt-wheels,target=/deps/trt-wheels \
pip3 install -U /deps/trt-wheels/*.whl && \
ln -s libnvrtc.so.11.2 /usr/local/lib/python3.9/dist-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so && \
ldconfig
# Dev Container w/ TRT
FROM devcontainer AS devcontainer-trt
RUN --mount=type=bind,from=trt-wheels,source=/trt-wheels,target=/deps/trt-wheels \
pip3 install -U /deps/trt-wheels/*.whl

View File

@@ -2,10 +2,11 @@
set -euxo pipefail
NGINX_VERSION="1.22.1"
VOD_MODULE_VERSION="1.30"
SECURE_TOKEN_MODULE_VERSION="1.4"
RTMP_MODULE_VERSION="1.2.1"
NGINX_VERSION="1.25.3"
VOD_MODULE_VERSION="1.31"
SECURE_TOKEN_MODULE_VERSION="1.5"
SET_MISC_MODULE_VERSION="v0.33"
NGX_DEVEL_KIT_VERSION="v0.3.3"
cp /etc/apt/sources.list /etc/apt/sources.list.d/sources-src.list
sed -i 's|deb http|deb-src http|g' /etc/apt/sources.list.d/sources-src.list
@@ -15,6 +16,10 @@ apt-get -yqq build-dep nginx
apt-get -yqq install --no-install-recommends ca-certificates wget
update-ca-certificates -f
apt install -y ccache
export PATH="/usr/lib/ccache:$PATH"
mkdir /tmp/nginx
wget -nv https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -zxf nginx-${NGINX_VERSION}.tar.gz -C /tmp/nginx --strip-components=1
@@ -45,10 +50,16 @@ mkdir /tmp/nginx-secure-token-module
wget https://github.com/kaltura/nginx-secure-token-module/archive/refs/tags/${SECURE_TOKEN_MODULE_VERSION}.tar.gz
tar -zxf ${SECURE_TOKEN_MODULE_VERSION}.tar.gz -C /tmp/nginx-secure-token-module --strip-components=1
rm ${SECURE_TOKEN_MODULE_VERSION}.tar.gz
mkdir /tmp/nginx-rtmp-module
wget -nv https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v${RTMP_MODULE_VERSION}.tar.gz
tar -zxf v${RTMP_MODULE_VERSION}.tar.gz -C /tmp/nginx-rtmp-module --strip-components=1
rm v${RTMP_MODULE_VERSION}.tar.gz
mkdir /tmp/ngx_devel_kit
wget https://github.com/vision5/ngx_devel_kit/archive/refs/tags/${NGX_DEVEL_KIT_VERSION}.tar.gz
tar -zxf ${NGX_DEVEL_KIT_VERSION}.tar.gz -C /tmp/ngx_devel_kit --strip-components=1
rm ${NGX_DEVEL_KIT_VERSION}.tar.gz
mkdir /tmp/nginx-set-misc-module
wget https://github.com/openresty/set-misc-nginx-module/archive/refs/tags/${SET_MISC_MODULE_VERSION}.tar.gz
tar -zxf ${SET_MISC_MODULE_VERSION}.tar.gz -C /tmp/nginx-set-misc-module --strip-components=1
rm ${SET_MISC_MODULE_VERSION}.tar.gz
cd /tmp/nginx
@@ -56,11 +67,14 @@ cd /tmp/nginx
--with-file-aio \
--with-http_sub_module \
--with-http_ssl_module \
--with-http_auth_request_module \
--with-http_realip_module \
--with-threads \
--add-module=../ngx_devel_kit \
--add-module=../nginx-set-misc-module \
--add-module=../nginx-vod-module \
--add-module=../nginx-secure-token-module \
--add-module=../nginx-rtmp-module \
--with-cc-opt="-O3 -Wno-error=implicit-fallthrough"
make -j$(nproc) && make install
make CC="ccache gcc" -j$(nproc) && make install
rm -rf /usr/local/nginx/html /usr/local/nginx/conf/*.default

View File

@@ -0,0 +1,11 @@
import openvino as ov
from openvino.tools import mo
ov_model = mo.convert_model(
"/models/ssdlite_mobilenet_v2_coco_2018_05_09/frozen_inference_graph.pb",
compress_to_fp16=True,
transformations_config="/usr/local/lib/python3.9/dist-packages/openvino/tools/mo/front/tf/ssd_v2_support.json",
tensorflow_object_detection_api_pipeline_config="/models/ssdlite_mobilenet_v2_coco_2018_05_09/pipeline.config",
reverse_input_channels=True,
)
ov.save_model(ov_model, "/models/ssdlite_mobilenet_v2.xml")

84
docker/main/install_deps.sh Executable file
View File

@@ -0,0 +1,84 @@
#!/bin/bash
set -euxo pipefail
apt-get -qq update
apt-get -qq install --no-install-recommends -y \
apt-transport-https \
gnupg \
wget \
procps vainfo \
unzip locales tzdata libxml2 xz-utils \
python3.9 \
python3-pip \
curl \
jq \
nethogs
# ensure python3 defaults to python3.9
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
mkdir -p -m 600 /root/.gnupg
# add coral repo
curl -fsSLo - https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-packages-archive-keyring.gpg
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | tee /etc/apt/sources.list.d/coral-edgetpu.list
echo "libedgetpu1-max libedgetpu/accepted-eula select true" | debconf-set-selections
# enable non-free repo in Debian
if grep -q "Debian" /etc/issue; then
sed -i -e's/ main/ main contrib non-free/g' /etc/apt/sources.list
fi
# coral drivers
apt-get -qq update
apt-get -qq install --no-install-recommends --no-install-suggests -y \
libedgetpu1-max python3-tflite-runtime python3-pycoral
# btbn-ffmpeg -> amd64
if [[ "${TARGETARCH}" == "amd64" ]]; then
mkdir -p /usr/lib/btbn-ffmpeg
wget -qO btbn-ffmpeg.tar.xz "https://github.com/NickM-27/FFmpeg-Builds/releases/download/autobuild-2022-07-31-12-37/ffmpeg-n5.1-2-g915ef932a3-linux64-gpl-5.1.tar.xz"
tar -xf btbn-ffmpeg.tar.xz -C /usr/lib/btbn-ffmpeg --strip-components 1
rm -rf btbn-ffmpeg.tar.xz /usr/lib/btbn-ffmpeg/doc /usr/lib/btbn-ffmpeg/bin/ffplay
fi
# ffmpeg -> arm64
if [[ "${TARGETARCH}" == "arm64" ]]; then
mkdir -p /usr/lib/btbn-ffmpeg
wget -qO btbn-ffmpeg.tar.xz "https://github.com/NickM-27/FFmpeg-Builds/releases/download/autobuild-2022-07-31-12-37/ffmpeg-n5.1-2-g915ef932a3-linuxarm64-gpl-5.1.tar.xz"
tar -xf btbn-ffmpeg.tar.xz -C /usr/lib/btbn-ffmpeg --strip-components 1
rm -rf btbn-ffmpeg.tar.xz /usr/lib/btbn-ffmpeg/doc /usr/lib/btbn-ffmpeg/bin/ffplay
fi
# arch specific packages
if [[ "${TARGETARCH}" == "amd64" ]]; then
# use debian bookworm for hwaccel packages
echo 'deb https://deb.debian.org/debian bookworm main contrib non-free' >/etc/apt/sources.list.d/debian-bookworm.list
apt-get -qq update
apt-get -qq install --no-install-recommends --no-install-suggests -y \
intel-opencl-icd \
mesa-va-drivers radeontop libva-drm2 intel-media-va-driver-non-free i965-va-driver libmfx1 intel-gpu-tools
# something about this dependency requires it to be installed in a separate call rather than in the line above
apt-get -qq install --no-install-recommends --no-install-suggests -y \
i965-va-driver-shaders
rm -f /etc/apt/sources.list.d/debian-bookworm.list
fi
if [[ "${TARGETARCH}" == "arm64" ]]; then
apt-get -qq install --no-install-recommends --no-install-suggests -y \
libva-drm2 mesa-va-drivers
fi
apt-get purge gnupg apt-transport-https xz-utils -y
apt-get clean autoclean -y
apt-get autoremove --purge -y
rm -rf /var/lib/apt/lists/*
# Install yq, for frigate-prepare and go2rtc echo source
curl -fsSL \
"https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_$(dpkg --print-architecture)" \
--output /usr/local/bin/yq
chmod +x /usr/local/bin/yq

View File

@@ -2,12 +2,10 @@
set -euxo pipefail
s6_version="3.1.4.1"
s6_version="3.1.5.0"
if [[ "${TARGETARCH}" == "amd64" ]]; then
s6_arch="x86_64"
elif [[ "${TARGETARCH}" == "arm" ]]; then
s6_arch="armhf"
elif [[ "${TARGETARCH}" == "arm64" ]]; then
s6_arch="aarch64"
fi

16
docker/main/install_tempio.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
set -euxo pipefail
tempio_version="2021.09.0"
if [[ "${TARGETARCH}" == "amd64" ]]; then
arch="amd64"
elif [[ "${TARGETARCH}" == "arm64" ]]; then
arch="aarch64"
fi
mkdir -p /rootfs/usr/local/tempio/bin
wget -q -O /rootfs/usr/local/tempio/bin/tempio "https://github.com/home-assistant/tempio/releases/download/${tempio_version}/tempio_${arch}"
chmod 755 /rootfs/usr/local/tempio/bin/tempio

View File

@@ -0,0 +1 @@
ruff

View File

@@ -0,0 +1,3 @@
numpy
tensorflow
openvino-dev>=2024.0.0

View File

@@ -0,0 +1,32 @@
click == 8.1.*
Flask == 3.0.*
Flask_Limiter == 3.7.*
imutils == 0.5.*
joserfc == 0.11.*
markupsafe == 2.1.*
mypy == 1.6.1
numpy == 1.26.*
onvif_zeep == 0.2.12
opencv-python-headless == 4.9.0.*
paho-mqtt == 2.1.*
pandas == 2.2.*
peewee == 3.17.*
peewee_migrate == 1.12.*
psutil == 5.9.*
pydantic == 2.7.*
git+https://github.com/fbcotter/py3nvml#egg=py3nvml
PyYAML == 6.0.*
pytz == 2024.1
pyzmq == 26.0.*
ruamel.yaml == 0.18.*
tzlocal == 5.2
types-PyYAML == 6.0.*
requests == 2.32.*
types-requests == 2.32.*
scipy == 1.13.*
norfair == 2.2.*
setproctitle == 1.3.*
ws4py == 0.5.*
unidecode == 1.3.*
onnxruntime == 1.18.*
openvino == 2024.1.*

View File

@@ -0,0 +1,2 @@
scikit-build == 0.17.*
nvidia-pyindex

View File

@@ -0,0 +1 @@
certsync

View File

@@ -0,0 +1 @@
certsync-pipeline

View File

@@ -0,0 +1,4 @@
#!/command/with-contenv bash
# shellcheck shell=bash
exec logutil-service /dev/shm/logs/certsync

View File

@@ -0,0 +1,30 @@
#!/command/with-contenv bash
# shellcheck shell=bash
# Take down the S6 supervision tree when the service fails
set -o errexit -o nounset -o pipefail
# Logs should be sent to stdout so that s6 can collect them
declare exit_code_container
exit_code_container=$(cat /run/s6-linux-init-container-results/exitcode)
readonly exit_code_container
readonly exit_code_service="${1}"
readonly exit_code_signal="${2}"
readonly service="CERTSYNC"
echo "[INFO] Service ${service} exited with code ${exit_code_service} (by signal ${exit_code_signal})"
if [[ "${exit_code_service}" -eq 256 ]]; then
if [[ "${exit_code_container}" -eq 0 ]]; then
echo $((128 + exit_code_signal)) >/run/s6-linux-init-container-results/exitcode
fi
if [[ "${exit_code_signal}" -eq 15 ]]; then
exec /run/s6/basedir/bin/halt
fi
elif [[ "${exit_code_service}" -ne 0 ]]; then
if [[ "${exit_code_container}" -eq 0 ]]; then
echo "${exit_code_service}" >/run/s6-linux-init-container-results/exitcode
fi
exec /run/s6/basedir/bin/halt
fi

View File

@@ -0,0 +1 @@
certsync-log

View File

@@ -0,0 +1,58 @@
#!/command/with-contenv bash
# shellcheck shell=bash
# Start the CERTSYNC service
set -o errexit -o nounset -o pipefail
# Logs should be sent to stdout so that s6 can collect them
echo "[INFO] Starting certsync..."
lefile="/etc/letsencrypt/live/frigate/fullchain.pem"
tls_enabled=`python3 /usr/local/nginx/get_tls_settings.py | jq -r .enabled`
while true
do
if [[ "$tls_enabled" == 'false' ]]; then
sleep 9999
continue
fi
if [ ! -e $lefile ]
then
echo "[ERROR] TLS certificate does not exist: $lefile"
fi
leprint=`openssl x509 -in $lefile -fingerprint -noout 2>&1 || echo 'failed'`
case "$leprint" in
*Fingerprint*)
;;
*)
echo "[ERROR] Missing fingerprint from $lefile"
;;
esac
liveprint=`echo | openssl s_client -showcerts -connect 127.0.0.1:8971 2>&1 | openssl x509 -fingerprint 2>&1 | grep -i fingerprint || echo 'failed'`
case "$liveprint" in
*Fingerprint*)
;;
*)
echo "[ERROR] Missing fingerprint from current nginx TLS cert"
;;
esac
if [[ "$leprint" != "failed" && "$liveprint" != "failed" && "$leprint" != "$liveprint" ]]
then
echo "[INFO] Reloading nginx to refresh TLS certificate"
echo "$lefile: $leprint"
/usr/local/nginx/sbin/nginx -s reload
fi
sleep 60
done
exit 0

View File

@@ -0,0 +1,55 @@
#!/command/with-contenv bash
# shellcheck shell=bash
# Start the Frigate service
set -o errexit -o nounset -o pipefail
# Logs should be sent to stdout so that s6 can collect them
# Tell S6-Overlay not to restart this service
s6-svc -O .
function migrate_db_path() {
# Find config file in yaml or yml, but prefer yaml
local config_file="${CONFIG_FILE:-"/config/config.yml"}"
local config_file_yaml="${config_file//.yml/.yaml}"
if [[ -f "${config_file_yaml}" ]]; then
config_file="${config_file_yaml}"
elif [[ ! -f "${config_file}" ]]; then
# Frigate will create the config file on startup
return 0
fi
unset config_file_yaml
# Use yq to check if database.path is set
local user_db_path
user_db_path=$(yq eval '.database.path' "${config_file}")
if [[ "${user_db_path}" == "null" ]]; then
local previous_db_path="/media/frigate/frigate.db"
local new_db_dir="/config"
if [[ -f "${previous_db_path}" ]]; then
if mountpoint --quiet "${new_db_dir}"; then
# /config is a mount point, move the db
echo "[INFO] Moving db from '${previous_db_path}' to the '${new_db_dir}' dir..."
# Move all files that starts with frigate.db to the new directory
mv -vf "${previous_db_path}"* "${new_db_dir}"
else
echo "[ERROR] Trying to migrate the db path from '${previous_db_path}' to the '${new_db_dir}' dir, but '${new_db_dir}' is not a mountpoint, please mount the '${new_db_dir}' dir"
return 1
fi
fi
fi
}
echo "[INFO] Preparing Frigate..."
migrate_db_path
export LIBAVFORMAT_VERSION_MAJOR=$(ffmpeg -version | grep -Po 'libavformat\W+\K\d+')
echo "[INFO] Starting Frigate..."
cd /opt/frigate || echo "[ERROR] Failed to change working directory to /opt/frigate"
# Replace the bash process with the Frigate process, redirecting stderr to stdout
exec 2>&1
exec python3 -u -m frigate

View File

@@ -43,8 +43,15 @@ function get_ip_and_port_from_supervisor() {
export FRIGATE_GO2RTC_WEBRTC_CANDIDATE_INTERNAL="${ip_address}:${webrtc_port}"
}
export LIBAVFORMAT_VERSION_MAJOR=$(ffmpeg -version | grep -Po 'libavformat\W+\K\d+')
if [[ -f "/dev/shm/go2rtc.yaml" ]]; then
echo "[INFO] Removing stale config from last run..."
rm /dev/shm/go2rtc.yaml
fi
if [[ ! -f "/dev/shm/go2rtc.yaml" ]]; then
echo "[INFO] Preparing go2rtc config..."
echo "[INFO] Preparing new go2rtc config..."
if [[ -n "${SUPERVISOR_TOKEN:-}" ]]; then
# Running as a Home Assistant add-on, infer the IP address and port
@@ -52,6 +59,8 @@ if [[ ! -f "/dev/shm/go2rtc.yaml" ]]; then
fi
python3 /usr/local/go2rtc/create_config.py
else
echo "[WARNING] Unable to remove existing go2rtc config. Changes made to your frigate config file may not be recognized. Please remove the /dev/shm/go2rtc.yaml from your docker host manually."
fi
readonly config_path="/config"

View File

@@ -4,7 +4,7 @@
set -o errexit -o nounset -o pipefail
dirs=(/dev/shm/logs/frigate /dev/shm/logs/go2rtc /dev/shm/logs/nginx)
dirs=(/dev/shm/logs/frigate /dev/shm/logs/go2rtc /dev/shm/logs/nginx /dev/shm/logs/certsync)
mkdir -p "${dirs[@]}"
chown nobody:nogroup "${dirs[@]}"

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -e
# Wait for PID file to exist.
while ! test -f /run/nginx.pid; do sleep 1; done

View File

@@ -0,0 +1 @@
3

View File

@@ -0,0 +1,91 @@
#!/command/with-contenv bash
# shellcheck shell=bash
# Start the NGINX service
set -o errexit -o nounset -o pipefail
# Logs should be sent to stdout so that s6 can collect them
echo "[INFO] Starting NGINX..."
# Taken from https://github.com/felipecrs/cgroup-scripts/commits/master/get_cpus.sh
function get_cpus() {
local quota=""
local period=""
if [ -f /sys/fs/cgroup/cgroup.controllers ]; then
if [ -f /sys/fs/cgroup/cpu.max ]; then
read -r quota period </sys/fs/cgroup/cpu.max
if [ "$quota" = "max" ]; then
quota=""
period=""
fi
else
echo "[WARN] /sys/fs/cgroup/cpu.max not found. Falling back to /proc/cpuinfo." >&2
fi
else
if [ -f /sys/fs/cgroup/cpu/cpu.cfs_quota_us ] && [ -f /sys/fs/cgroup/cpu/cpu.cfs_period_us ]; then
quota=$(cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us)
period=$(cat /sys/fs/cgroup/cpu/cpu.cfs_period_us)
if [ "$quota" = "-1" ]; then
quota=""
period=""
fi
else
echo "[WARN] /sys/fs/cgroup/cpu/cpu.cfs_quota_us or /sys/fs/cgroup/cpu/cpu.cfs_period_us not found. Falling back to /proc/cpuinfo." >&2
fi
fi
local cpus
if [ "${period}" != "0" ] && [ -n "${quota}" ] && [ -n "${period}" ]; then
cpus=$((quota / period))
if [ "$cpus" -eq 0 ]; then
cpus=1
fi
else
cpus=$(grep -c ^processor /proc/cpuinfo)
fi
printf '%s' "$cpus"
}
function set_worker_processes() {
# Capture number of assigned CPUs to calculate worker processes
local cpus
cpus=$(get_cpus)
if [[ "${cpus}" -gt 4 ]]; then
cpus=4
fi
# we need to catch any errors because sed will fail if user has bind mounted a custom nginx file
sed -i "s/worker_processes auto;/worker_processes ${cpus};/" /usr/local/nginx/conf/nginx.conf || true
}
set_worker_processes
# ensure the directory for ACME challenges exists
mkdir -p /etc/letsencrypt/www
# Create self signed certs if needed
letsencrypt_path=/etc/letsencrypt/live/frigate
mkdir -p $letsencrypt_path
if [ ! \( -f "$letsencrypt_path/privkey.pem" -a -f "$letsencrypt_path/fullchain.pem" \) ]; then
echo "[INFO] No TLS certificate found. Generating a self signed certificate..."
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
-subj "/O=FRIGATE DEFAULT CERT/CN=*" \
-keyout "$letsencrypt_path/privkey.pem" -out "$letsencrypt_path/fullchain.pem" 2>/dev/null
fi
# build templates for optional TLS support
python3 /usr/local/nginx/get_tls_settings.py | \
tempio -template /usr/local/nginx/templates/listen.gotmpl \
-out /usr/local/nginx/conf/listen.conf
# Replace the bash process with the NGINX process, redirecting stderr to stdout
exec 2>&1
exec \
s6-notifyoncheck -t 30000 -n 1 \
nginx

View File

@@ -0,0 +1 @@
30000

Some files were not shown because too many files have changed in this diff Show More