Compare commits

...

81 Commits

Author SHA1 Message Date
Josh Hawkins
9ed7ccab75
Embeddings maintainer should start if bird classification is enabled (#19576) 2025-08-17 19:48:21 -06:00
harry
ceced7cc91
Install non-free i965 driver (#19571) 2025-08-17 18:45:21 -06:00
Josh Hawkins
1db26cb41e
Ensure birdseye is enabled before trying to grab a frame from it (#19573) 2025-08-17 17:26:18 -06:00
Josh Hawkins
6840415b6c
Fix content type for latest image API endpoint (#19555)
* Fix content type for latest image API endpoint

Extension is an enum and .value needed to be appended. Additionally, fastapi's Response() automatically sets the content type when media_type is specified, so a Content-Type in the headers was redundant.

* Remove another unneeded Content-Type
2025-08-16 21:20:21 -06:00
Nicolas Mowen
06539c925c
Pull sqlite3 from mirror (#19540)
* Pull sqlite3 from mirror

* Remove extra wget

* Adjust folder name

* Use pre-built sqlite

* Include unzip
2025-08-16 09:30:24 -05:00
Josh Hawkins
addb4e6891
Fix percentage in recording cleanup log (#19525)
* Fix percentage in recording cleanup log

* fix

* update reference config
2025-08-16 07:10:08 -06:00
Nicolas Mowen
fb290c411b
HLS Playback Startup Time Optimization (#19503)
* Include preferred startTime in source so that the playlist does not need to seek

* Compatibility

* Cleanup

* Adjust based on inpoint

* Don't set start position if it is not valid

* Handle firefox buggy behavior
2025-08-16 07:09:15 -06:00
Josh Hawkins
89db960c05
Remove score sorting constraint (#19501)
Do not require a score filter to be applied in order to sort by object score.
2025-08-16 07:08:11 -06:00
Josh Hawkins
2cde58037d
Improve recognized license plate filter (#19491)
* Fetch all license plates outside of filter component

If the swr call took a long time, the entire select component may not display. This change moves the fetch to the parent component (like sub labels).

* add loading indicator

* improve query
2025-08-16 07:05:50 -06:00
Josh Hawkins
d1be614a10
Bump makefile version (#19539) 2025-08-16 07:05:15 -06:00
Josh Hawkins
93c7c8c518
Bump version in docs (#19538) 2025-08-16 07:47:42 -05:00
Blake Blackshear
c83a35d090
Merge pull request #16390 from blakeblackshear/dev
0.16 Release
2025-08-16 07:34:45 -05:00
Blake Blackshear
d31a4e3443 Merge remote-tracking branch 'origin/master' into dev 2025-08-16 07:32:44 -05:00
Josh Hawkins
c2f8de94e8
Add languages (#19447) 2025-08-10 06:27:47 -06:00
Hosted Weblate
f46560d2bf Translated using Weblate (Dutch)
Currently translated at 100.0% (352 of 352 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marijn <168113859+Marijn0@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/
Translation: Frigate NVR/views-settings
2025-08-10 06:24:00 -06:00
Hosted Weblate
a1acb504ee Translated using Weblate (Hungarian)
Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Zsolt Fojtyik <zsozso830316@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hu/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-settings
2025-08-10 06:24:00 -06:00
Hosted Weblate
3d79eef227 Translated using Weblate (Romanian)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (427 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lukasig <lukasig@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ro/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-10 06:24:00 -06:00
Hosted Weblate
efe0d2a931 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (48 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (427 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.5% (378 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.5% (340 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.5% (378 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 59.3% (209 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 59.3% (209 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.5% (216 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.5% (216 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Rogério Mendes <rogeriomendes.mg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-10 06:24:00 -06:00
Hosted Weblate
cbd5bdfd88 Translated using Weblate (Galician)
Currently translated at 6.1% (7 of 114 strings)

Translated using Weblate (Galician)

Currently translated at 6.1% (7 of 114 strings)

Translated using Weblate (Galician)

Currently translated at 1.9% (7 of 352 strings)

Translated using Weblate (Galician)

Currently translated at 1.9% (7 of 352 strings)

Translated using Weblate (Galician)

Currently translated at 14.5% (7 of 48 strings)

Translated using Weblate (Galician)

Currently translated at 14.5% (7 of 48 strings)

Translated using Weblate (Galician)

Currently translated at 83.3% (5 of 6 strings)

Translated using Weblate (Galician)

Currently translated at 8.0% (5 of 62 strings)

Translated using Weblate (Galician)

Currently translated at 8.0% (5 of 62 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (Galician)

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (Galician)

Currently translated at 24.0% (6 of 25 strings)

Translated using Weblate (Galician)

Currently translated at 24.0% (6 of 25 strings)

Translated using Weblate (Galician)

Currently translated at 9.0% (6 of 66 strings)

Translated using Weblate (Galician)

Currently translated at 9.0% (6 of 66 strings)

Translated using Weblate (Galician)

Currently translated at 14.0% (7 of 50 strings)

Translated using Weblate (Galician)

Currently translated at 14.0% (7 of 50 strings)

Translated using Weblate (Galician)

Currently translated at 25.0% (6 of 24 strings)

Translated using Weblate (Galician)

Currently translated at 25.0% (6 of 24 strings)

Translated using Weblate (Galician)

Currently translated at 13.5% (16 of 118 strings)

Translated using Weblate (Galician)

Currently translated at 13.5% (16 of 118 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 8.7% (7 of 80 strings)

Translated using Weblate (Galician)

Currently translated at 8.7% (7 of 80 strings)

Translated using Weblate (Galician)

Currently translated at 3.9% (17 of 427 strings)

Translated using Weblate (Galician)

Currently translated at 3.9% (17 of 427 strings)

Translated using Weblate (Galician)

Currently translated at 5.2% (6 of 115 strings)

Translated using Weblate (Galician)

Currently translated at 5.2% (6 of 115 strings)

Translated using Weblate (Galician)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Galician)

Currently translated at 17.3% (8 of 46 strings)

Translated using Weblate (Galician)

Currently translated at 17.3% (8 of 46 strings)

Translated using Weblate (Galician)

Currently translated at 4.9% (9 of 183 strings)

Translated using Weblate (Galician)

Currently translated at 4.9% (9 of 183 strings)

Translated using Weblate (Galician)

Currently translated at 0.8% (1 of 114 strings)

Translated using Weblate (Galician)

Currently translated at 0.2% (1 of 352 strings)

Translated using Weblate (Galician)

Currently translated at 4.1% (2 of 48 strings)

Translated using Weblate (Galician)

Currently translated at 50.0% (3 of 6 strings)

Translated using Weblate (Galician)

Currently translated at 3.2% (2 of 62 strings)

Translated using Weblate (Galician)

Currently translated at 22.2% (2 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 25.0% (2 of 8 strings)

Translated using Weblate (Galician)

Currently translated at 8.0% (2 of 25 strings)

Translated using Weblate (Galician)

Currently translated at 3.0% (2 of 66 strings)

Translated using Weblate (Galician)

Currently translated at 4.0% (2 of 50 strings)

Translated using Weblate (Galician)

Currently translated at 8.3% (2 of 24 strings)

Translated using Weblate (Galician)

Currently translated at 1.6% (2 of 118 strings)

Translated using Weblate (Galician)

Currently translated at 22.2% (2 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 2.5% (2 of 80 strings)

Translated using Weblate (Galician)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Galician)

Currently translated at 0.7% (3 of 427 strings)

Translated using Weblate (Galician)

Currently translated at 1.7% (2 of 115 strings)

Translated using Weblate (Galician)

Currently translated at 50.0% (1 of 2 strings)

Translated using Weblate (Galician)

Currently translated at 4.3% (2 of 46 strings)

Translated using Weblate (Galician)

Currently translated at 1.0% (2 of 183 strings)

Added translation using Weblate (Galician)

Added translation using Weblate (Galician)

Added translation using Weblate (Galician)

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Co-authored-by: Alexandre Espinosa Menor <aemenor@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: seryeb - <seryeb@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/gl/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-recording
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-10 06:24:00 -06:00
GuoQing Liu
6f2e6c4cb2
Fix if search word is number will be crash (#19426)
* fix: fix if filterValues is number will be crash

* chore: use String function cover filterValues
2025-08-08 09:22:08 -06:00
Josh Hawkins
84f48ee3eb
Ensure arrayKeys remains a stable array reference (#19428)
fixes infinite loop and react crash from changes in #19406
2025-08-08 05:54:03 -06:00
Nicolas Mowen
49793aa655
Don't use memo on subscribable (#19424) 2025-08-07 22:28:53 -05:00
Nicolas Mowen
4869f46ab6
Fixes (#19420)
* Remove torch install

* notification fixes

the pubkey was not being returned if notifications was not enabled at the global level

* Put back

* single condition check for fetching and disabling button

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-08-07 15:34:25 -06:00
Nicolas Mowen
5e5beb9837
Fixes (#19414)
* Don't assume video is 16 / 9

* Don't apply docker constraints for rockchp toolkit
2025-08-07 12:08:33 -05:00
Hosted Weblate
f7184c8ed5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lâm Lê <silamle6@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/vi/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-system
2025-08-07 04:43:37 -06:00
Hosted Weblate
2e1b81b380 Translated using Weblate (Finnish)
Currently translated at 31.5% (36 of 114 strings)

Translated using Weblate (Finnish)

Currently translated at 56.4% (35 of 62 strings)

Translated using Weblate (Finnish)

Currently translated at 51.5% (34 of 66 strings)

Translated using Weblate (Finnish)

Currently translated at 68.0% (34 of 50 strings)

Translated using Weblate (Finnish)

Currently translated at 13.8% (59 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Toni Liski <nacree@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/fi/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-system
2025-08-07 04:40:46 -06:00
Hosted Weblate
30cf274815 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lâm Lê <silamle6@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/vi/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-system
2025-08-07 04:40:46 -06:00
Hosted Weblate
b15c799d8c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 42.0% (148 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 81.4% (149 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 38.6% (165 of 427 strings)

Co-authored-by: Deilson Peres <deilson.peres@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-07 04:40:46 -06:00
Josh Hawkins
b6b3178e3d
Fixes (#19406)
* Fix api filter hook

cameras, labels, sub labels, plates, and zones could be parsed as numeric values rather than strings, which would break the explore filter. This change adds an optional param to the useApiFilterArgs hook to always parse keys as string[]

* fix notifications register button from being incorrectly disabled
2025-08-06 22:09:43 -05:00
Nicolas Mowen
334b6670e1
Add note for Gemini base url (#19399) 2025-08-06 07:02:40 -06:00
Hosted Weblate
5fc030c3f6 Translated using Weblate (Finnish)
Currently translated at 83.3% (40 of 48 strings)

Translated using Weblate (Finnish)

Currently translated at 53.2% (33 of 62 strings)

Translated using Weblate (Finnish)

Currently translated at 46.0% (53 of 115 strings)

Translated using Weblate (Finnish)

Currently translated at 50.0% (33 of 66 strings)

Translated using Weblate (Finnish)

Currently translated at 64.0% (32 of 50 strings)

Translated using Weblate (Finnish)

Currently translated at 13.5% (58 of 427 strings)

Translated using Weblate (Finnish)

Currently translated at 77.0% (37 of 48 strings)

Translated using Weblate (Finnish)

Currently translated at 48.3% (30 of 62 strings)

Translated using Weblate (Finnish)

Currently translated at 45.2% (52 of 115 strings)

Translated using Weblate (Finnish)

Currently translated at 46.9% (31 of 66 strings)

Translated using Weblate (Finnish)

Currently translated at 13.3% (57 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Julius Hyvönen <julius.hyvonen@gmail.com>
Co-authored-by: Risto Toivanen <risto.toivanen@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/fi/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-search
2025-08-05 16:35:12 -06:00
Hosted Weblate
ca3afa8ac4 Translated using Weblate (Swedish)
Currently translated at 28.9% (33 of 114 strings)

Translated using Weblate (Swedish)

Currently translated at 21.0% (24 of 114 strings)

Translated using Weblate (Swedish)

Currently translated at 14.9% (17 of 114 strings)

Translated using Weblate (Swedish)

Currently translated at 57.5% (38 of 66 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lars Gustavsson <lars@textalk.se>
Co-authored-by: Oscar Haraldsson <oscar.haraldsson@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sv/
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-system
2025-08-05 16:35:12 -06:00
Hosted Weblate
878f401ad2 Translated using Weblate (Indonesian)
Currently translated at 18.7% (9 of 48 strings)

Translated using Weblate (Indonesian)

Currently translated at 8.6% (10 of 115 strings)

Translated using Weblate (Indonesian)

Currently translated at 41.6% (10 of 24 strings)

Translated using Weblate (Indonesian)

Currently translated at 18.0% (9 of 50 strings)

Co-authored-by: Fikry Budi Hasbillah <fikrybudih@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/id/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-search
2025-08-05 16:35:12 -06:00
Hosted Weblate
99f9c1529d Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.9% (98 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 27.8% (98 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 85.2% (98 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 83.8% (99 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 54.0% (99 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 27.4% (117 of 427 strings)

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.3% (87 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 24.7% (87 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (80 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.5% (88 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 48.6% (89 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 65.7% (75 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 65.7% (75 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 21.3% (75 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (48 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (75 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (61 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (61 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 66.0% (76 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 65.2% (77 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 41.5% (76 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.6% (88 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Rogério Mendes <rogeriomendes.mg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-05 16:35:12 -06:00
Hosted Weblate
369e6ba2c2 Translated using Weblate (Lithuanian)
Currently translated at 7.8% (9 of 114 strings)

Translated using Weblate (Lithuanian)

Currently translated at 2.2% (8 of 352 strings)

Translated using Weblate (Lithuanian)

Currently translated at 20.8% (10 of 48 strings)

Translated using Weblate (Lithuanian)

Currently translated at 8.7% (7 of 80 strings)

Translated using Weblate (Lithuanian)

Currently translated at 11.2% (7 of 62 strings)

Translated using Weblate (Lithuanian)

Currently translated at 5.2% (6 of 115 strings)

Translated using Weblate (Lithuanian)

Currently translated at 13.6% (9 of 66 strings)

Translated using Weblate (Lithuanian)

Currently translated at 18.0% (9 of 50 strings)

Translated using Weblate (Lithuanian)

Currently translated at 21.7% (10 of 46 strings)

Translated using Weblate (Lithuanian)

Currently translated at 8.4% (36 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Povilas Arlauskas <povilas.arl@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/lt/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-05 16:35:12 -06:00
Nicolas Mowen
8254602449
Fix not deleting thumbnails (#19371)
* Fix not deleting thumbnails

* Consoldiate langauge tags
2025-08-04 00:56:23 -05:00
Hosted Weblate
a0a5aad3c2 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 8.6% (37 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: fascinate722 <fascinate722@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/zh_Hant/
Translation: Frigate NVR/audio
Translation: Frigate NVR/objects
2025-08-02 07:55:35 -06:00
Hosted Weblate
f107aa3cea Added translation using Weblate (Korean)
Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: 김민성 <noom0290@gmail.com>
2025-08-02 07:55:35 -06:00
Hosted Weblate
cd7b9b604e Translated using Weblate (Serbian)
Currently translated at 5.2% (6 of 114 strings)

Translated using Weblate (Serbian)

Currently translated at 6.0% (7 of 115 strings)

Translated using Weblate (Serbian)

Currently translated at 29.1% (7 of 24 strings)

Translated using Weblate (Serbian)

Currently translated at 87.5% (7 of 8 strings)

Translated using Weblate (Serbian)

Currently translated at 28.0% (7 of 25 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Serbian)

Currently translated at 10.6% (7 of 66 strings)

Translated using Weblate (Serbian)

Currently translated at 15.2% (7 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 77.7% (7 of 9 strings)

Translated using Weblate (Serbian)

Currently translated at 5.9% (7 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 13.6% (25 of 183 strings)

Translated using Weblate (Serbian)

Currently translated at 3.0% (13 of 427 strings)

Co-authored-by: Dalibor Radovanović <darkobg@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sr/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-system
2025-08-02 07:55:35 -06:00
Hosted Weblate
1bbc8823da Translated using Weblate (Polish)
Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Łukasz Jernaś <deejay1@srem.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pl/
Translation: Frigate NVR/common
2025-08-02 07:55:35 -06:00
Hosted Weblate
30de45a6f4 Translated using Weblate (Hungarian)
Currently translated at 100.0% (352 of 352 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Zsolt Fojtyik <zsozso830316@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hu/
Translation: Frigate NVR/views-settings
2025-08-02 07:55:35 -06:00
Hosted Weblate
f9e5350d5a Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Tiago Krüger <tiagokruger404@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt/
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-02 07:55:35 -06:00
Hosted Weblate
1471491124 Translated using Weblate (Romanian)
Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (50 of 50 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lukasig <lukasig@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ro/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
2025-08-02 07:55:35 -06:00
Hosted Weblate
c1da7128da Translated using Weblate (Russian)
Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Артём Владимиров <artyomka71@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ru/
Translation: Frigate NVR/common
2025-08-02 07:55:35 -06:00
Hosted Weblate
f33468767e Translated using Weblate (Portuguese (Brazil))
Currently translated at 39.4% (45 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.4% (45 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (45 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (45 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 57.5% (46 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 57.5% (46 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 74.1% (46 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 74.1% (46 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.1% (45 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.1% (45 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 63.6% (42 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 63.6% (42 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (46 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (46 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.6% (44 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.6% (44 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.7% (41 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.7% (41 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.4% (41 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 12.4% (53 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 29.8% (34 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 70.8% (34 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 42.5% (34 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 31.3% (36 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 53.0% (35 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 70.0% (35 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.0% (35 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 29.6% (35 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.6% (36 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 11.0% (47 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 26.3% (30 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 62.5% (30 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 37.5% (30 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 69.3% (43 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 26.9% (31 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.4% (30 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 60.0% (30 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 67.3% (31 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 26.2% (31 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 17.4% (32 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.0% (43 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.8% (26 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 54.1% (26 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 32.5% (26 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 66.1% (41 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 23.4% (27 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.3% (26 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 52.0% (26 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 56.5% (26 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.8% (27 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 15.3% (28 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.1% (39 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.2% (22 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 15.6% (55 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.8% (22 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.8% (22 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 28.7% (23 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 28.7% (23 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 62.9% (39 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.8% (24 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.8% (24 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.8% (23 of 24 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (23 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (23 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.8% (23 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.8% (23 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 46.0% (23 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 46.0% (23 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.0% (23 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.4% (23 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 13.1% (24 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 8.1% (35 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 8.1% (35 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 15.3% (54 of 352 strings)

Co-authored-by: Cleiton Carvalho <cleitonsilvacarvalho@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Rogério Mendes <rogeriomendes.mg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-02 07:55:35 -06:00
Hosted Weblate
76fbc103b0 Translated using Weblate (Lithuanian)
Currently translated at 1.7% (2 of 114 strings)

Translated using Weblate (Lithuanian)

Currently translated at 0.5% (2 of 352 strings)

Translated using Weblate (Lithuanian)

Currently translated at 4.1% (2 of 48 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (6 of 6 strings)

Translated using Weblate (Lithuanian)

Currently translated at 3.7% (3 of 80 strings)

Translated using Weblate (Lithuanian)

Currently translated at 4.8% (3 of 62 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Lithuanian)

Currently translated at 2.6% (3 of 115 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Lithuanian)

Currently translated at 4.5% (3 of 66 strings)

Translated using Weblate (Lithuanian)

Currently translated at 6.0% (3 of 50 strings)

Translated using Weblate (Lithuanian)

Currently translated at 6.5% (3 of 46 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Lithuanian)

Currently translated at 89.8% (106 of 118 strings)

Translated using Weblate (Lithuanian)

Currently translated at 80.3% (147 of 183 strings)

Translated using Weblate (Lithuanian)

Currently translated at 6.7% (29 of 427 strings)

Translated using Weblate (Lithuanian)

Currently translated at 28.8% (34 of 118 strings)

Translated using Weblate (Lithuanian)

Currently translated at 3.0% (13 of 427 strings)

Translated using Weblate (Lithuanian)

Currently translated at 2.0% (1 of 48 strings)

Translated using Weblate (Lithuanian)

Currently translated at 1.2% (1 of 80 strings)

Translated using Weblate (Lithuanian)

Currently translated at 11.1% (1 of 9 strings)

Translated using Weblate (Lithuanian)

Currently translated at 45.8% (11 of 24 strings)

Translated using Weblate (Lithuanian)

Currently translated at 0.8% (1 of 118 strings)

Translated using Weblate (Lithuanian)

Currently translated at 0.4% (2 of 427 strings)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: MaBeniu <runnerm@gmail.com>
Co-authored-by: PovilasID <povilas.sidaravicius@gmail.com>
Co-authored-by: boxstep <evaldas.blauzdziunas@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/lt/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-recording
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-02 07:55:35 -06:00
Hosted Weblate
972206eb0f Translated using Weblate (Turkish)
Currently translated at 100.0% (62 of 62 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: pcislocked <git@pcislocked.net>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/tr/
Translation: Frigate NVR/views-facelibrary
2025-08-02 07:55:35 -06:00
boc-the-git
b5067c07f8
Remove deprecated 'version' attribute (#19347) 2025-08-01 05:51:18 -06:00
Nicolas Mowen
c3410cd13e
Revamp RF-DETR Export Docs (#19341)
* Revamp RFDETR docs

* Clarify model size

* Specify model size
2025-07-31 09:11:46 -05:00
Nicolas Mowen
d18f2282c8
Update tensorrt inference time docs (#19338)
* Update tensorrt inference times

* Update hardware.md
2025-07-31 08:21:41 -05:00
Jack
23b32cbacf
Update object_detectors.md (#19328)
Minor documentation clarity
2025-07-30 07:08:44 -06:00
Nicolas Mowen
21e9b2f2ce
Add docs for planning a setup (#19326)
* Add docs for planning a setup

* Add more granularity

* Improve title

* Add storage section

* Fix level

* Change named hardware

* link to section

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

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-07-30 07:06:39 -06:00
Josh Hawkins
92a0dad2c2
Catch json decode exception (#19323)
* Catch json decode exception when semantic search stats file is corrupted

* clear stats file if corrupted
2025-07-29 13:38:13 -05:00
Nicolas Mowen
4f4c8a4fb9
Center camera in layout when only one camera is filtered (#19319) 2025-07-29 09:15:37 -05:00
Josh Hawkins
898d1de875
Timezone fix (#19293)
* Frontend timezone fixes

Last recording date timezone was being applied twice, so it displayed the wrong date
Also, TZDate from react-day-picker could have been behaving incorrectly at times without a full date string

* Ensure returned day is parsed as midnight in specified timezone
2025-07-26 18:24:08 -06:00
Hosted Weblate
0b7a33d670 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 7.3% (26 of 352 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (48 of 48 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (80 of 80 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 9.6% (11 of 114 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 3.1% (11 of 352 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 22.9% (11 of 48 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (6 of 6 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 13.7% (11 of 80 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 16.1% (10 of 62 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 10.4% (12 of 115 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 8.4% (10 of 118 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 22.0% (11 of 50 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 54.0% (99 of 183 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 3.5% (15 of 427 strings)

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Added translation using Weblate (Chinese (Traditional Han script))

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: forward-jt <juitse.huang@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/zh_Hant/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-recording
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-07-26 08:15:36 -04:00
Hosted Weblate
d697e4f354 Translated using Weblate (Slovak)
Currently translated at 28.0% (32 of 114 strings)

Translated using Weblate (Slovak)

Currently translated at 9.0% (32 of 352 strings)

Translated using Weblate (Slovak)

Currently translated at 66.6% (32 of 48 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Slovak)

Currently translated at 28.6% (33 of 115 strings)

Translated using Weblate (Slovak)

Currently translated at 40.0% (32 of 80 strings)

Translated using Weblate (Slovak)

Currently translated at 50.0% (33 of 66 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Slovak)

Currently translated at 27.9% (33 of 118 strings)

Translated using Weblate (Slovak)

Currently translated at 71.7% (33 of 46 strings)

Translated using Weblate (Slovak)

Currently translated at 64.0% (32 of 50 strings)

Translated using Weblate (Slovak)

Currently translated at 18.0% (33 of 183 strings)

Translated using Weblate (Slovak)

Currently translated at 11.4% (49 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jakub K <klacanjakub0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sk/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-07-26 08:15:36 -04:00
Hosted Weblate
4ad1f6e610 Translated using Weblate (Serbian)
Currently translated at 5.2% (6 of 114 strings)

Translated using Weblate (Serbian)

Currently translated at 1.7% (6 of 352 strings)

Translated using Weblate (Serbian)

Currently translated at 12.5% (6 of 48 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (6 of 6 strings)

Translated using Weblate (Serbian)

Currently translated at 7.5% (6 of 80 strings)

Translated using Weblate (Serbian)

Currently translated at 9.6% (6 of 62 strings)

Translated using Weblate (Serbian)

Currently translated at 77.7% (7 of 9 strings)

Translated using Weblate (Serbian)

Currently translated at 6.0% (7 of 115 strings)

Translated using Weblate (Serbian)

Currently translated at 29.1% (7 of 24 strings)

Translated using Weblate (Serbian)

Currently translated at 87.5% (7 of 8 strings)

Translated using Weblate (Serbian)

Currently translated at 28.0% (7 of 25 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Serbian)

Currently translated at 10.6% (7 of 66 strings)

Translated using Weblate (Serbian)

Currently translated at 14.0% (7 of 50 strings)

Translated using Weblate (Serbian)

Currently translated at 15.2% (7 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 77.7% (7 of 9 strings)

Translated using Weblate (Serbian)

Currently translated at 5.9% (7 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 3.8% (7 of 183 strings)

Translated using Weblate (Serbian)

Currently translated at 3.0% (13 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: muki71 <exyusat71@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sr/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-recording
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-07-26 08:15:36 -04:00
Hosted Weblate
072d9fc111 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lâm Lê <silamle6@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/vi/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-07-26 08:15:36 -04:00
Hosted Weblate
9653aead10 Translated using Weblate (Bulgarian)
Currently translated at 16.9% (20 of 118 strings)

Translated using Weblate (Bulgarian)

Currently translated at 45.6% (21 of 46 strings)

Translated using Weblate (Bulgarian)

Currently translated at 42.0% (77 of 183 strings)

Translated using Weblate (Bulgarian)

Currently translated at 62.2% (266 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Plamen Stoyanov <fireto@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/bg/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/objects
2025-07-26 08:15:36 -04:00
Hosted Weblate
e910f5c97c Translated using Weblate (Romanian)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (48 of 48 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (80 of 80 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (427 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lukasig <lukasig@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ro/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-07-26 08:15:36 -04:00
Hosted Weblate
146de123b9 Translated using Weblate (Danish)
Currently translated at 1.6% (1 of 62 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (183 of 183 strings)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Added translation using Weblate (Danish)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rene-Olskjaer <rene@olskjaer.dk>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/da/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
2025-07-26 08:15:36 -04:00
Hosted Weblate
2586b8d299 Translated using Weblate (Portuguese (Brazil))
Currently translated at 18.4% (21 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 5.1% (18 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 37.5% (18 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 23.7% (19 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 59.6% (37 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 17.3% (20 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 75.0% (18 of 24 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 80.0% (20 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 30.3% (20 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 40.0% (20 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 43.4% (20 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 18.6% (22 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 12.5% (23 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 6.7% (29 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.6% (11 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 3.1% (11 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.9% (11 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 13.7% (11 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 48.3% (30 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 11.3% (13 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.0% (12 of 24 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 48.0% (12 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 18.1% (12 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 24.0% (12 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 26.0% (12 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.1% (12 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 7.1% (13 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 8.7% (10 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 2.8% (10 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.8% (10 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 12.5% (10 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.1% (28 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.5% (11 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.8% (11 of 24 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 44.0% (11 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 16.6% (11 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.0% (11 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 23.9% (11 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.3% (11 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 6.5% (12 of 183 strings)

Co-authored-by: Cleiton Carvalho <cleitonsilvacarvalho@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Paulo Daltro <paulinhopcm15@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-07-26 08:15:36 -04:00
Hosted Weblate
24fd95cff4 Translated using Weblate (Turkish)
Currently translated at 100.0% (352 of 352 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: pcislocked <git@pcislocked.net>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/tr/
Translation: Frigate NVR/views-settings
2025-07-26 08:15:36 -04:00
Blake Blackshear
7aa57ebcae Merge remote-tracking branch 'origin/master' into dev 2025-07-26 07:11:31 -05:00
Nicolas Mowen
d5ce0ba73e
Update intel supported hardware docs (#19282)
* Update intel supported hardware

* Update naming

* Make docs more consistent

* Apply suggestion from @hawkeye217

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

* Apply suggestion from @hawkeye217

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

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-07-25 10:22:53 -05:00
Josh Hawkins
0c92c3ccfa
Add more notification debug logs (#19252) 2025-07-22 08:20:42 -06:00
Josh Hawkins
480072b22d
Fix storage graph (#19230)
Recordings usage was not being subtracted from "Other" storage usage stats
2025-07-22 06:24:15 -06:00
Marc Altmann
455423e7f2
Rockchip: add FFmpeg 7.1 to image (#19227)
* Rockchip: add FFmpeg 7.1 to image

* RKMPP: Update presets
2025-07-21 06:07:51 -06:00
Felipe Santos
6d5fb65a68
Revamp YOLOv9 export guide (#19224)
* Revamp YOLOv9 export guide

* Make variant a build arg

* Change VARIANT to MODEL_SIZE

* Mention available models
2025-07-20 09:19:23 -06:00
rossfoss
eb8eee038f
Fix typo in annotating doc (#19225) 2025-07-20 06:33:43 -06:00
Nicolas Mowen
7680b050b4
Correctly set the snapPoints (#19206) 2025-07-18 08:28:52 -06:00
Marc Altmann
60923ac1e3
RKNN: Fix broken models for Toolkit v2.3.2 (#19189)
* update models

* don't set input_dtype: float for yolov9 (rknn)
2025-07-18 06:26:41 -06:00
Nicolas Mowen
1763dba9c2
Fix motion timeline offset (#19185) 2025-07-17 08:17:58 -06:00
Josh Hawkins
ca1c98eab8
Fixes (#19125)
* fix embeddings reindex

- always increment processed objects to prevent division by zero
- ensure description still gets processed even if there is no thumbnail

* clean up

* Add newer labels to default attribute map

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2025-07-17 07:29:50 -06:00
Nicolas Mowen
3eb3797bc5
Update API schema to latest (#19156)
* Add description to snapshot api

* Update API schema
2025-07-15 21:53:21 -05:00
Blake Blackshear
4a94b43e52
update supported labels (#19159) 2025-07-15 16:38:20 -06:00
Nicolas Mowen
f81ac43be6
Move tensorrt onnxruntime in line with other build variants (#19150) 2025-07-15 08:55:41 -05:00
Manu Wallner
4c8f4ef9fa
Replaces sriov flag with explicit path to the Intel GPU device (#19136)
* Replaces `sriov` flag with an explicit path to the GPU device for intel GPUs

* Sort imports
2025-07-14 07:11:25 -05:00
Nicholas Cook
4b72c86e77
Fix IPv6 addresses with IPv4 trusted proxies (#19134)
When an IPv6 address that doesn't map to an IPv4 address was checked
against an IPv4 trusted proxy, we'd hit an exception because
ip.ipv4_mapped was None. Fix this by verifying ipv4_mapped is not None

Co-authored-by: me <me@me>
2025-07-13 20:43:25 -06:00
Biniam Bekele
d574d1edae
Use X-Forwarded-Groups instead of -Role in example (#19121)
X-Forwarded-For is not among the list of allowlisted headers, so using it in an example may lead others astray. 

See this discussion: https://github.com/blakeblackshear/frigate/discussions/19120
2025-07-12 16:13:34 -05:00
262 changed files with 7311 additions and 742 deletions

View File

@ -1,7 +1,7 @@
default_target: local
COMMIT_HASH := $(shell git log -1 --pretty=format:"%h"|tail -1)
VERSION = 0.16.0
VERSION = 0.16.1
IMAGE_REPO ?= ghcr.io/blakeblackshear/frigate
GITHUB_REF_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
BOARDS= #Initialized empty

View File

@ -152,7 +152,7 @@ ARG TARGETARCH
# Use a separate container to build wheels to prevent build dependencies in final image
RUN apt-get -qq update \
&& apt-get -qq install -y \
apt-transport-https wget \
apt-transport-https wget unzip \
&& apt-get -qq update \
&& apt-get -qq install -y \
python3.11 \

View File

@ -2,18 +2,25 @@
set -euxo pipefail
SQLITE3_VERSION="96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" # 3.46.0
SQLITE3_VERSION="3.46.1"
PYSQLITE3_VERSION="0.5.3"
# Fetch the source code for the latest release of Sqlite.
# Fetch the pre-built sqlite amalgamation instead of building from source
if [[ ! -d "sqlite" ]]; then
wget https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=${SQLITE3_VERSION} -O sqlite.tar.gz
tar xzf sqlite.tar.gz
cd sqlite/
LIBS="-lm" ./configure --disable-tcl --enable-tempstore=always
make sqlite3.c
mkdir sqlite
cd sqlite
# Download the pre-built amalgamation from sqlite.org
# For SQLite 3.46.1, the amalgamation version is 3460100
SQLITE_AMALGAMATION_VERSION="3460100"
wget https://www.sqlite.org/2024/sqlite-amalgamation-${SQLITE_AMALGAMATION_VERSION}.zip -O sqlite-amalgamation.zip
unzip sqlite-amalgamation.zip
mv sqlite-amalgamation-${SQLITE_AMALGAMATION_VERSION}/* .
rmdir sqlite-amalgamation-${SQLITE_AMALGAMATION_VERSION}
rm sqlite-amalgamation.zip
cd ../
rm sqlite.tar.gz
fi
# Grab the pysqlite3 source code.

View File

@ -57,9 +57,17 @@ fi
# arch specific packages
if [[ "${TARGETARCH}" == "amd64" ]]; then
# Install non-free version of i965 driver
CODENAME=$(grep VERSION_CODENAME= /etc/os-release | cut -d= -f2) \
&& sed -i -E "s/^(deb http:\/\/deb\.debian\.org\/debian ${CODENAME} main)(.*)$/\1 contrib non-free non-free-firmware\2/" /etc/apt/sources.list \
&& apt-get -qq update \
&& apt-get install --no-install-recommends --no-install-suggests -y i965-va-driver-shaders \
&& sed -i -E "s/(deb http:\/\/deb\.debian\.org\/debian ${CODENAME} main) contrib non-free non-free-firmware/\1/" /etc/apt/sources.list \
&& apt-get update
# install amd / intel-i965 driver packages
apt-get -qq install --no-install-recommends --no-install-suggests -y \
i965-va-driver intel-gpu-tools onevpl-tools \
intel-gpu-tools onevpl-tools \
libva-drm2 \
mesa-va-drivers radeontop

View File

@ -13,6 +13,7 @@ RUN sed -i "/https:\/\//d" /requirements-wheels.txt
RUN sed -i "/onnxruntime/d" /requirements-wheels.txt
RUN pip3 wheel --wheel-dir=/rk-wheels -c /requirements-wheels.txt -r /requirements-wheels-rk.txt
RUN rm -rf /rk-wheels/opencv_python-*
RUN rm -rf /rk-wheels/torch-*
FROM deps AS rk-frigate
ARG TARGETARCH
@ -30,5 +31,7 @@ ADD https://github.com/MarcA711/rknn-toolkit2/releases/download/v2.3.2/librknnrt
ADD --chmod=111 https://github.com/MarcA711/Rockchip-FFmpeg-Builds/releases/download/6.1-11/ffmpeg /usr/lib/ffmpeg/6.0/bin/
ADD --chmod=111 https://github.com/MarcA711/Rockchip-FFmpeg-Builds/releases/download/6.1-11/ffprobe /usr/lib/ffmpeg/6.0/bin/
ADD --chmod=111 https://github.com/MarcA711/Rockchip-FFmpeg-Builds/releases/download/7.1-1/ffmpeg /usr/lib/ffmpeg/7.0/bin/
ADD --chmod=111 https://github.com/MarcA711/Rockchip-FFmpeg-Builds/releases/download/7.1-1/ffprobe /usr/lib/ffmpeg/7.0/bin/
ENV DEFAULT_FFMPEG_VERSION="6.0"
ENV INCLUDED_FFMPEG_VERSIONS="${DEFAULT_FFMPEG_VERSION}:${INCLUDED_FFMPEG_VERSIONS}"

View File

@ -14,5 +14,5 @@ nvidia_cusparse_cu12==12.5.1.*; platform_machine == 'x86_64'
nvidia_nccl_cu12==2.23.4; platform_machine == 'x86_64'
nvidia_nvjitlink_cu12==12.5.82; platform_machine == 'x86_64'
onnx==1.16.*; platform_machine == 'x86_64'
onnxruntime-gpu==1.22.*; platform_machine == 'x86_64'
onnxruntime-gpu==1.20.*; platform_machine == 'x86_64'
protobuf==3.20.3; platform_machine == 'x86_64'

View File

@ -112,7 +112,7 @@ python3 -c 'import secrets; print(secrets.token_hex(64))'
### Header mapping
If you have disabled Frigate's authentication and your proxy supports passing a header with authenticated usernames and/or roles, you can use the `header_map` config to specify the header name so it is passed to Frigate. For example, the following will map the `X-Forwarded-User` and `X-Forwarded-Role` values. Header names are not case sensitive. Multiple values can be included in the role header. Frigate expects that the character separating the roles is a comma, but this can be specified using the `separator` config entry.
If you have disabled Frigate's authentication and your proxy supports passing a header with authenticated usernames and/or roles, you can use the `header_map` config to specify the header name so it is passed to Frigate. For example, the following will map the `X-Forwarded-User` and `X-Forwarded-Groups` values. Header names are not case sensitive. Multiple values can be included in the role header. Frigate expects that the character separating the roles is a comma, but this can be specified using the `separator` config entry.
```yaml
proxy:
@ -120,7 +120,7 @@ proxy:
separator: "|" # This value defaults to a comma, but Authentik uses a pipe, for example.
header_map:
user: x-forwarded-user
role: x-forwarded-role
role: x-forwarded-groups
```
Frigate supports both `admin` and `viewer` roles (see below). When using port `8971`, Frigate validates these headers and subsequent requests use the headers `remote-user` and `remote-role` for authorization.

View File

@ -99,6 +99,12 @@ genai:
model: gemini-1.5-flash
```
:::note
To use a different Gemini-compatible API endpoint, set the `GEMINI_BASE_URL` environment variable to your provider's API URL.
:::
## OpenAI
OpenAI does not have a free tier for their API. With the release of gpt-4o, pricing has been reduced and each generation should cost fractions of a cent if you choose to go this route.

View File

@ -176,16 +176,26 @@ For more information on the various values across different distributions, see h
Depending on your OS and kernel configuration, you may need to change the `/proc/sys/kernel/perf_event_paranoid` kernel tunable. You can test the change by running `sudo sh -c 'echo 2 >/proc/sys/kernel/perf_event_paranoid'` which will persist until a reboot. Make it permanent by running `sudo sh -c 'echo kernel.perf_event_paranoid=2 >> /etc/sysctl.d/local.conf'`
#### Stats for SR-IOV devices
#### Stats for SR-IOV or other devices
When using virtualized GPUs via SR-IOV, additional args are needed for GPU stats to function. This can be enabled with the following config:
When using virtualized GPUs via SR-IOV, you need to specify the device path to use to gather stats from `intel_gpu_top`. This example may work for some systems using SR-IOV:
```yaml
telemetry:
stats:
sriov: True
intel_gpu_device: "sriov"
```
For other virtualized GPUs, try specifying the direct path to the device instead:
```yaml
telemetry:
stats:
intel_gpu_device: "drm:/dev/dri/card0"
```
If you are passing in a device path, make sure you've passed the device through to the container.
## AMD/ATI GPUs (Radeon HD 2000 and newer GPUs) via libva-mesa-driver
VAAPI supports automatic profile selection so it will work automatically with both H.264 and H.265 streams.
@ -376,13 +386,8 @@ Make sure to follow the [Rockchip specific installation instructions](/frigate/i
Add one of the following FFmpeg presets to your `config.yml` to enable hardware video processing:
```yaml
# if you try to decode a h264 encoded stream
ffmpeg:
hwaccel_args: preset-rk-h264
# if you try to decode a h265 (hevc) encoded stream
ffmpeg:
hwaccel_args: preset-rk-h265
hwaccel_args: preset-rkmpp
```
:::note
@ -390,3 +395,36 @@ ffmpeg:
Make sure that your SoC supports hardware acceleration for your input stream. For example, if your camera streams with h265 encoding and a 4k resolution, your SoC must be able to de- and encode h265 with a 4k resolution or higher. If you are unsure whether your SoC meets the requirements, take a look at the datasheet.
:::
:::warning
If one or more of your cameras are not properly processed and this error is shown in the logs:
```
[segment @ 0xaaaaff694790] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[Parsed_scale_rkrga_0 @ 0xaaaaff819070] No hw context provided on input
[Parsed_scale_rkrga_0 @ 0xaaaaff819070] Failed to configure output pad on Parsed_scale_rkrga_0
Error initializing filters!
Error marking filters as finished
[out#1/rawvideo @ 0xaaaaff3d8730] Nothing was written into output file, because at least one of its streams received no packets.
Restarting ffmpeg...
```
you should try to uprade to FFmpeg 7. This can be done using this config option:
```
ffmpeg:
path: "7.0"
```
You can set this option globally to use FFmpeg 7 for all cameras or on camera level to use it only for specific cameras. Do not confuse this option with:
```
cameras:
name:
ffmpeg:
inputs:
- path: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
```
:::

View File

@ -365,8 +365,8 @@ detectors:
model:
model_type: rfdetr
width: 560
height: 560
width: 320
height: 320
input_tensor: nchw
input_dtype: float
path: /config/model_cache/rfdetr.onnx
@ -616,8 +616,8 @@ detectors:
model:
model_type: rfdetr
width: 560
height: 560
width: 320
height: 320
input_tensor: nchw
input_dtype: float
path: /config/model_cache/rfdetr.onnx
@ -777,8 +777,8 @@ model:
labelmap_path: /labelmap/coco-80.txt
input_tensor: nchw
input_pixel_format: rgb
width: 320
height: 320
width: 320 # MUST match the chosen model i.e yolov7-320 -> 320, yolov4-416 -> 416
height: 320 # MUST match the chosen model i.e yolov7-320 -> 320 yolov4-416 -> 416
```
## Rockchip platform
@ -894,7 +894,6 @@ model: # required
width: 320
height: 320
input_tensor: nhwc
input_dtype: float
labelmap_path: /labelmap/coco-80.txt
```
@ -984,22 +983,21 @@ Make sure you change the batch size to 1 before exporting.
### Download RF-DETR Model
To export as ONNX:
RF-DETR can be exported as ONNX by running the command below. You can copy and paste the whole thing to your terminal and execute, altering `MODEL_SIZE=Nano` in the first line to `Nano`, `Small`, or `Medium` size.
1. `pip3 install rfdetr`
2. `python3`
3. `from rfdetr import RFDETRBase`
4. `x = RFDETRBase()`
5. `x.export()`
#### Additional Configuration
The input tensor resolution can be customized:
```python
from rfdetr import RFDETRBase
x = RFDETRBase(resolution=560) # resolution must be a multiple of 56
x.export()
```sh
docker build . --build-arg MODEL_SIZE=Nano --output . -f- <<'EOF'
FROM python:3.11 AS build
RUN apt-get update && apt-get install --no-install-recommends -y libgl1 && rm -rf /var/lib/apt/lists/*
COPY --from=ghcr.io/astral-sh/uv:0.8.0 /uv /bin/
WORKDIR /rfdetr
RUN uv pip install --system rfdetr onnx onnxruntime onnxsim onnx-graphsurgeon
ARG MODEL_SIZE
RUN python3 -c "from rfdetr import RFDETR${MODEL_SIZE}; x = RFDETR${MODEL_SIZE}(resolution=320); x.export()"
FROM scratch
ARG MODEL_SIZE
COPY --from=build /rfdetr/output/inference_model.onnx /rfdetr-${MODEL_SIZE}.onnx
EOF
```
### Downloading YOLO-NAS Model
@ -1033,22 +1031,23 @@ python3 yolo_to_onnx.py -m yolov7-320
#### YOLOv9
YOLOv9 models can be exported using the below code
YOLOv9 model can be exported as ONNX using the command below. You can copy and paste the whole thing to your terminal and execute, altering `MODEL_SIZE=t` in the first line to the [model size](https://github.com/WongKinYiu/yolov9#performance) you would like to convert (available sizes are `t`, `s`, `m`, `c`, and `e`).
```sh
git clone https://github.com/WongKinYiu/yolov9
cd yolov9
# setup the virtual environment so installation doesn't affect main system
# NOTE: Virtual environment must be using Python 3.11 or older.
python3 -m venv ./
bin/pip install -r requirements.txt
bin/pip install onnx onnxruntime onnx-simplifier>=0.4.1
# download the weights
wget -O yolov9-t.pt "https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-t-converted.pt" # download the weights
# prepare and run export script
sed -i "s/ckpt = torch.load(attempt_download(w), map_location='cpu')/ckpt = torch.load(attempt_download(w), map_location='cpu', weights_only=False)/g" ./models/experimental.py
bin/python3 export.py --weights ./yolov9-t.pt --imgsz 320 --simplify --include onnx
docker build . --build-arg MODEL_SIZE=t --output . -f- <<'EOF'
FROM python:3.11 AS build
RUN apt-get update && apt-get install --no-install-recommends -y libgl1 && rm -rf /var/lib/apt/lists/*
COPY --from=ghcr.io/astral-sh/uv:0.8.0 /uv /bin/
WORKDIR /yolov9
ADD https://github.com/WongKinYiu/yolov9.git .
RUN uv pip install --system -r requirements.txt
RUN uv pip install --system onnx onnxruntime onnx-simplifier>=0.4.1
ARG MODEL_SIZE
ADD https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-${MODEL_SIZE}-converted.pt yolov9-${MODEL_SIZE}.pt
RUN sed -i "s/ckpt = torch.load(attempt_download(w), map_location='cpu')/ckpt = torch.load(attempt_download(w), map_location='cpu', weights_only=False)/g" models/experimental.py
RUN python3 export.py --weights ./yolov9-${MODEL_SIZE}.pt --imgsz 320 --simplify --include onnx
FROM scratch
ARG MODEL_SIZE
COPY --from=build /yolov9/yolov9-${MODEL_SIZE}.onnx /
EOF
```

View File

@ -438,7 +438,7 @@ record:
# Optional: Number of minutes to wait between cleanup runs (default: shown below)
# This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
expire_interval: 60
# Optional: Sync recordings with disk on startup and once a day (default: shown below).
# Optional: Two-way sync recordings database with disk on startup and once a day (default: shown below).
sync_recordings: False
# Optional: Retention settings for recording
retain:
@ -903,7 +903,7 @@ telemetry:
# Optional: Enable Intel GPU stats (default: shown below)
intel_gpu_stats: True
# Optional: Treat GPU as SR-IOV to fix GPU stats (default: shown below)
sriov: False
intel_gpu_device: None
# Optional: Enable network bandwidth stats monitoring for camera ffmpeg processes, go2rtc, and object detectors. (default: shown below)
# NOTE: The container must either be privileged or have cap_net_admin, cap_net_raw capabilities enabled.
network_bandwidth: False

View File

@ -60,13 +60,13 @@ Frigate supports multiple different detectors that work on different types of ha
**AMD**
- [ROCm](#amd-gpus): ROCm can run on AMD Discrete GPUs to provide efficient object detection
- [ROCm](#rocm---amd-gpu): ROCm can run on AMD Discrete GPUs to provide efficient object detection
- [Supports limited model architectures](../../configuration/object_detectors#supported-models-1)
- Runs best on discrete AMD GPUs
**Intel**
- [OpenVino](#openvino): OpenVino can run on Intel Arc GPUs, Intel integrated GPUs, and Intel CPUs to provide efficient object detection.
- [OpenVino](#openvino---intel): OpenVino can run on Intel Arc GPUs, Intel integrated GPUs, and Intel CPUs to provide efficient object detection.
- [Supports majority of model architectures](../../configuration/object_detectors#supported-models)
- Runs best with tiny, small, or medium models
@ -110,13 +110,22 @@ Frigate supports both the USB and M.2 versions of the Google Coral.
A single Coral can handle many cameras using the default model and will be sufficient for the majority of users. You can calculate the maximum performance of your Coral based on the inference speed reported by Frigate. With an inference speed of 10, your Coral will top out at `1000/10=100`, or 100 frames per second. If your detection fps is regularly getting close to that, you should first consider tuning motion masks. If those are already properly configured, a second Coral may be needed.
### OpenVINO
### OpenVINO - Intel
The OpenVINO detector type is able to run on:
- 6th Gen Intel Platforms and newer that have an iGPU
- x86 & Arm64 hosts with VPU Hardware (ex: Intel NCS2)
- x86 hosts with an Intel Arc GPU
- Most modern AMD CPUs (though this is officially not supported by Intel)
- x86 & Arm64 hosts via CPU (generally not recommended)
:::note
Intel NPUs have seen [limited success in community deployments](https://github.com/blakeblackshear/frigate/discussions/13248#discussioncomment-12347357), although they remain officially unsupported.
In testing, the NPU delivered performance that was only comparable to — or in some cases worse than — the integrated GPU.
:::
More information is available [in the detector docs](/configuration/object_detectors#openvino-detector)
@ -138,7 +147,7 @@ Inference speeds vary greatly depending on the CPU or GPU used, some known examp
Frigate is able to utilize an Nvidia GPU which supports the 12.x series of CUDA libraries.
### Minimum Hardware Support
#### Minimum Hardware Support
12.x series of CUDA libraries are used which have minor version compatibility. The minimum driver version on the host system must be `>=545`. Also the GPU must support a Compute Capability of `5.0` or greater. This generally correlates to a Maxwell-era GPU or newer, check the NVIDIA GPU Compute Capability table linked below.
@ -157,18 +166,14 @@ There are improved capabilities in newer GPU architectures that TensorRT can ben
Inference speeds will vary greatly depending on the GPU and the model used.
`tiny` variants are faster than the equivalent non-tiny model, some known examples are below:
| Name | YOLOv7 Inference Time | YOLO-NAS Inference Time | RF-DETR Inference Time |
| --------------- | --------------------- | ------------------------- | ------------------------- |
| GTX 1060 6GB | ~ 7 ms | | |
| GTX 1070 | ~ 6 ms | | |
| GTX 1660 SUPER | ~ 4 ms | | |
| RTX 3050 | 5 - 7 ms | 320: ~ 10 ms 640: ~ 16 ms | 336: ~ 16 ms 560: ~ 40 ms |
| RTX 3070 Mobile | ~ 5 ms | | |
| RTX 3070 | 4 - 6 ms | 320: ~ 6 ms 640: ~ 12 ms | 336: ~ 14 ms 560: ~ 36 ms |
| Quadro P400 2GB | 20 - 25 ms | | |
| Quadro P2000 | ~ 12 ms | | |
| Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | RF-DETR Inference Time |
| --------------- | --------------------- | ------------------------- | ---------------------- |
| RTX 3050 | t-320: 15 ms | 320: ~ 10 ms 640: ~ 16 ms | Nano-320: ~ 12 ms |
| RTX 3070 | t-320: 11 ms | 320: ~ 8 ms 640: ~ 14 ms | Nano-320: ~ 9 ms |
| RTX A4000 | | 320: ~ 15 ms | |
| Tesla P40 | | 320: ~ 105 ms | |
### AMD GPUs
### ROCm - AMD GPU
With the [rocm](../configuration/object_detectors.md#amdrocm-gpu-detector) detector Frigate can take advantage of many discrete AMD GPUs.

View File

@ -0,0 +1,74 @@
---
id: planning_setup
title: Planning a New Installation
---
Choosing the right hardware for your Frigate NVR setup is important for optimal performance and a smooth experience. This guide will walk you through the key considerations, focusing on the number of cameras and the hardware required for efficient object detection.
## Key Considerations
### Number of Cameras and Simultaneous Activity
The most fundamental factor in your hardware decision is the number of cameras you plan to use. However, it's not just about the raw count; it's also about how many of those cameras are likely to see activity and require object detection simultaneously.
When motion is detected in a camera's feed, regions of that frame are sent to your chosen [object detection hardware](/configuration/object_detectors).
- **Low Simultaneous Activity (1-6 cameras with occasional motion)**: If you have a few cameras in areas with infrequent activity (e.g., a seldom-used backyard, a quiet interior), the demand on your object detection hardware will be lower. A single, entry-level AI accelerator will suffice.
- **Moderate Simultaneous Activity (6-12 cameras with some overlapping motion)**: For setups with more cameras, especially in areas like a busy street or a property with multiple access points, it's more likely that several cameras will capture activity at the same time. This increases the load on your object detection hardware, requiring more processing power.
- **High Simultaneous Activity (12+ cameras or highly active zones)**: Large installations or scenarios where many cameras frequently capture activity (e.g., busy street with overview, identification, dedicated LPR cameras, etc.) will necessitate robust object detection capabilities. You'll likely need multiple entry-level AI accelerators or a more powerful single unit such as a discrete GPU.
- **Commercial Installations (40+ cameras)**: Commercial installations or scenarios where a substantial number of cameras capture activity (e.g., a commercial property, an active public space) will necessitate robust object detection capabilities. You'll likely need a modern discrete GPU.
### Video Decoding
Modern CPUs with integrated GPUs (Intel Quick Sync, AMD VCN) or dedicated GPUs can significantly offload video decoding from the main CPU, freeing up resources. This is highly recommended, especially for multiple cameras.
:::tip
For commercial installations it is important to verify the number of supported concurrent streams on your GPU, many consumer GPUs max out at ~20 concurrent camera streams.
:::
## Hardware Considerations
### Object Detection
There are many different hardware options for object detection depending on priorities and available hardware. See [the recommended hardware page](./hardware.md#detectors) for more specifics on what hardware is recommended for object detection.
### Storage
Storage is an important consideration when planning a new installation. To get a more precise estimate of your storage requirements, you can use an IP camera storage calculator. Websites like [IPConfigure Storage Calculator](https://calculator.ipconfigure.com/) can help you determine the necessary disk space based on your camera settings.
#### SSDs (Solid State Drives)
SSDs are an excellent choice for Frigate, offering high speed and responsiveness. The older concern that SSDs would quickly "wear out" from constant video recording is largely no longer valid for modern consumer and enterprise-grade SSDs.
- Longevity: Modern SSDs are designed with advanced wear-leveling algorithms and significantly higher "Terabytes Written" (TBW) ratings than earlier models. For typical home NVR use, a good quality SSD will likely outlast the useful life of your NVR hardware itself.
- Performance: SSDs excel at handling the numerous small write operations that occur during continuous video recording and can significantly improve the responsiveness of the Frigate UI and clip retrieval.
- Silence and Efficiency: SSDs produce no noise and consume less power than traditional HDDs.
#### HDDs (Hard Disk Drives)
Traditional Hard Disk Drives (HDDs) remain a great and often more cost-effective option for long-term video storage, especially for larger setups where raw capacity is prioritized.
- Cost-Effectiveness: HDDs offer the best cost per gigabyte, making them ideal for storing many days, weeks, or months of continuous footage.
- Capacity: HDDs are available in much larger capacities than most consumer SSDs, which is beneficial for extensive video archives.
- NVR-Rated Drives: If choosing an HDD, consider drives specifically designed for surveillance (NVR) use, such as Western Digital Purple or Seagate SkyHawk. These drives are engineered for 24/7 operation and continuous write workloads, offering improved reliability compared to standard desktop drives.
Determining Your Storage Needs
The amount of storage you need will depend on several factors:
- Number of Cameras: More cameras naturally require more space.
- Resolution and Framerate: Higher resolution (e.g., 4K) and higher framerate (e.g., 30fps) streams consume significantly more storage.
- Recording Method: Continuous recording uses the most space. motion-only recording or object-triggered recording can save space, but may miss some footage.
- Retention Period: How many days, weeks, or months of footage do you want to keep?
#### Network Storage (NFS/SMB)
While supported, using network-attached storage (NAS) for recordings can introduce latency and network dependency considerations. For optimal performance and reliability, it is generally recommended to have local storage for your Frigate recordings. If using a NAS, ensure your network connection to it is robust and fast (Gigabit Ethernet at minimum) and that the NAS itself can handle the continuous write load.
### RAM (Memory)
- **Basic Minimum: 4GB RAM**: This is generally sufficient for a very basic Frigate setup with a few cameras and a dedicated object detection accelerator, without running any enrichments. Performance might be tight, especially with higher resolution streams or numerous detections.
- **Minimum for Enrichments: 8GB RAM**: If you plan to utilize Frigate's enrichment features (e.g., facial recognition, license plate recognition, or other AI models that run alongside standard object detection), 8GB of RAM should be considered the minimum. Enrichments require additional memory to load and process their respective models and data.
- **Recommended: 16GB RAM**: For most users, especially those with many cameras (8+) or who plan to heavily leverage enrichments, 16GB of RAM is highly recommended. This provides ample headroom for smooth operation, reduces the likelihood of swapping to disk (which can impact performance), and allows for future expansion.

View File

@ -5,7 +5,7 @@ title: Updating
# Updating Frigate
The current stable version of Frigate is **0.15.0**. The release notes and any breaking changes for this version can be found on the [Frigate GitHub releases page](https://github.com/blakeblackshear/frigate/releases/tag/v0.15.0).
The current stable version of Frigate is **0.16.0**. The release notes and any breaking changes for this version can be found on the [Frigate GitHub releases page](https://github.com/blakeblackshear/frigate/releases/tag/v0.16.0).
Keeping Frigate up to date ensures you benefit from the latest features, performance improvements, and bug fixes. The update process varies slightly depending on your installation method (Docker, Home Assistant Addon, etc.). Below are instructions for the most common setups.
@ -33,21 +33,21 @@ If youre running Frigate via Docker (recommended method), follow these steps:
2. **Update and Pull the Latest Image**:
- If using Docker Compose:
- Edit your `docker-compose.yml` file to specify the desired version tag (e.g., `0.15.0` instead of `0.14.1`). For example:
- Edit your `docker-compose.yml` file to specify the desired version tag (e.g., `0.16.0` instead of `0.15.2`). For example:
```yaml
services:
frigate:
image: ghcr.io/blakeblackshear/frigate:0.15.0
image: ghcr.io/blakeblackshear/frigate:0.16.0
```
- Then pull the image:
```bash
docker pull ghcr.io/blakeblackshear/frigate:0.15.0
docker pull ghcr.io/blakeblackshear/frigate:0.16.0
```
- **Note for `stable` Tag Users**: If your `docker-compose.yml` uses the `stable` tag (e.g., `ghcr.io/blakeblackshear/frigate:stable`), you dont need to update the tag manually. The `stable` tag always points to the latest stable release after pulling.
- If using `docker run`:
- Pull the image with the appropriate tag (e.g., `0.15.0`, `0.15.0-tensorrt`, or `stable`):
- Pull the image with the appropriate tag (e.g., `0.16.0`, `0.16.0-tensorrt`, or `stable`):
```bash
docker pull ghcr.io/blakeblackshear/frigate:0.15.0
docker pull ghcr.io/blakeblackshear/frigate:0.16.0
```
3. **Start the Container**:
@ -105,8 +105,8 @@ If an update causes issues:
1. Stop Frigate.
2. Restore your backed-up config file and database.
3. Revert to the previous image version:
- For Docker: Specify an older tag (e.g., `ghcr.io/blakeblackshear/frigate:0.14.1`) in your `docker run` command.
- For Docker Compose: Edit your `docker-compose.yml`, specify the older version tag (e.g., `ghcr.io/blakeblackshear/frigate:0.14.1`), and re-run `docker compose up -d`.
- For Docker: Specify an older tag (e.g., `ghcr.io/blakeblackshear/frigate:0.15.2`) in your `docker run` command.
- For Docker Compose: Edit your `docker-compose.yml`, specify the older version tag (e.g., `ghcr.io/blakeblackshear/frigate:0.15.2`), and re-run `docker compose up -d`.
- For Home Assistant: Reinstall the previous addon version manually via the repository if needed and restart the addon.
4. Verify the old version is running again.

View File

@ -27,7 +27,7 @@ Suggestions are converted to labels when saving, so you should remove any errant
## False positive labels
False positives will be shown with a read box and the label will have a strike through. These can't be adjusted, but they can be deleted if you accidentally submit a true positive as a false positive from Frigate.
False positives will be shown with a red box and the label will have a strike through. These can't be adjusted, but they can be deleted if you accidentally submit a true positive as a false positive from Frigate.
![false positive](/img/plus/false-positive.jpg)
Misidentified objects should have a correct label added. For example, if a person was mistakenly detected as a cat, you should submit it as a false positive in Frigate and add a label for the person. The boxes will overlap.

View File

@ -53,9 +53,9 @@ Some users may find that Frigate+ models result in more false positives initiall
Frigate+ models support a more relevant set of objects for security cameras. The labels for annotation in Frigate+ are configurable by editing the camera in the Cameras section of Frigate+. Currently, the following objects are supported:
- **People**: `person`, `face`
- **Vehicles**: `car`, `motorcycle`, `bicycle`, `boat`, `license_plate`
- **Delivery Logos**: `amazon`, `usps`, `ups`, `fedex`, `dhl`, `an_post`, `purolator`, `postnl`, `nzpost`, `postnord`, `gls`, `dpd`
- **Animals**: `dog`, `cat`, `deer`, `horse`, `bird`, `raccoon`, `fox`, `bear`, `cow`, `squirrel`, `goat`, `rabbit`
- **Vehicles**: `car`, `motorcycle`, `bicycle`, `boat`, `school_bus`, `license_plate`
- **Delivery Logos**: `amazon`, `usps`, `ups`, `fedex`, `dhl`, `an_post`, `purolator`, `postnl`, `nzpost`, `postnord`, `gls`, `dpd`, `canada_post`, `royal_mail`
- **Animals**: `dog`, `cat`, `deer`, `horse`, `bird`, `raccoon`, `fox`, `bear`, `cow`, `squirrel`, `goat`, `rabbit`, `skunk`, `kangaroo`
- **Other**: `package`, `waste_bin`, `bbq_grill`, `robot_lawnmower`, `umbrella`
Other object types available in the default Frigate model are not available. Additional object types will be added in future releases.
@ -66,7 +66,7 @@ Candidate labels are also available for annotation. These labels don't have enou
Where possible, these labels are mapped to existing labels during training. For example, any `baby` labels are mapped to `person` until support for new labels is added.
The candidate labels are: `baby`, `royal mail`, `canada post`, `bpost`, `skunk`, `badger`, `possum`, `rodent`, `kangaroo`, `chicken`, `groundhog`, `boar`, `hedgehog`, `school bus`, `tractor`, `golf cart`, `garbage truck`, `bus`, `sports ball`
The candidate labels are: `baby`, `bpost`, `badger`, `possum`, `rodent`, `chicken`, `groundhog`, `boar`, `hedgehog`, `tractor`, `golf cart`, `garbage truck`, `bus`, `sports ball`
Candidate labels are not available for automatic suggestions.

View File

@ -7,6 +7,7 @@ const sidebars: SidebarsConfig = {
Frigate: [
'frigate/index',
'frigate/hardware',
'frigate/planning_setup',
'frigate/installation',
'frigate/updating',
'frigate/camera_setup',

View File

@ -105,7 +105,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/users/{username}":
/users/{username}:
delete:
tags:
- Auth
@ -130,7 +130,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/users/{username}/password":
/users/{username}/password:
put:
tags:
- Auth
@ -161,7 +161,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/users/{username}/role":
/users/{username}/role:
put:
tags:
- Auth
@ -228,7 +228,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/faces/train/{name}/classify":
/faces/train/{name}/classify:
post:
tags:
- Events
@ -259,7 +259,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/faces/{name}/create":
/faces/{name}/create:
post:
tags:
- Events
@ -284,7 +284,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/faces/{name}/register":
/faces/{name}/register:
post:
tags:
- Events
@ -340,7 +340,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/faces/{name}/delete":
/faces/{name}/delete:
post:
tags:
- Events
@ -371,6 +371,37 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
/faces/{old_name}/rename:
put:
tags:
- Events
summary: Rename Face
operationId: rename_face_faces__old_name__rename_put
parameters:
- name: old_name
in: path
required: true
schema:
type: string
title: Old Name
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/RenameFaceBody"
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
/lpr/reprocess:
put:
tags:
@ -659,7 +690,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/review/event/{event_id}":
/review/event/{event_id}:
get:
tags:
- Review
@ -685,7 +716,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/review/{review_id}":
/review/{review_id}:
get:
tags:
- Review
@ -711,7 +742,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/review/{review_id}/viewed":
/review/{review_id}/viewed:
delete:
tags:
- Review
@ -774,7 +805,7 @@ paths:
content:
application/json:
schema: {}
"/go2rtc/streams/{camera_name}":
/go2rtc/streams/{camera_name}:
get:
tags:
- App
@ -991,7 +1022,7 @@ paths:
content:
application/json:
schema: {}
"/logs/{service}":
/logs/{service}:
get:
tags:
- App
@ -1287,7 +1318,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/preview/{camera_name}/start/{start_ts}/end/{end_ts}":
/preview/{camera_name}/start/{start_ts}/end/{end_ts}:
get:
tags:
- Preview
@ -1325,7 +1356,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/preview/{year_month}/{day}/{hour}/{camera_name}/{tz_name}":
/preview/{year_month}/{day}/{hour}/{camera_name}/{tz_name}:
get:
tags:
- Preview
@ -1376,7 +1407,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/preview/{camera_name}/start/{start_ts}/end/{end_ts}/frames":
/preview/{camera_name}/start/{start_ts}/end/{end_ts}/frames:
get:
tags:
- Preview
@ -1463,7 +1494,7 @@ paths:
content:
application/json:
schema: {}
"/export/{camera_name}/start/{start_time}/end/{end_time}":
/export/{camera_name}/start/{start_time}/end/{end_time}:
post:
tags:
- Export
@ -1507,7 +1538,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/export/{event_id}/rename":
/export/{event_id}/rename:
patch:
tags:
- Export
@ -1538,7 +1569,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/export/{event_id}":
/export/{event_id}:
delete:
tags:
- Export
@ -1563,7 +1594,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/exports/{export_id}":
/exports/{export_id}:
get:
tags:
- Export
@ -1699,7 +1730,7 @@ paths:
anyOf:
- type: string
- type: "null"
default: "00:00,24:00"
default: 00:00,24:00
title: Time Range
- name: has_clip
in: query
@ -2007,7 +2038,7 @@ paths:
anyOf:
- type: string
- type: "null"
default: "00:00,24:00"
default: 00:00,24:00
title: Time Range
- name: has_clip
in: query
@ -2147,7 +2178,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}":
/events/{event_id}:
get:
tags:
- Events
@ -2198,7 +2229,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/retain":
/events/{event_id}/retain:
post:
tags:
- Events
@ -2249,7 +2280,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/plus":
/events/{event_id}/plus:
post:
tags:
- Events
@ -2280,7 +2311,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/false_positive":
/events/{event_id}/false_positive:
put:
tags:
- Events
@ -2306,7 +2337,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/sub_label":
/events/{event_id}/sub_label:
post:
tags:
- Events
@ -2338,7 +2369,39 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/description":
/events/{event_id}/recognized_license_plate:
post:
tags:
- Events
summary: Set Plate
operationId: set_plate_events__event_id__recognized_license_plate_post
parameters:
- name: event_id
in: path
required: true
schema:
type: string
title: Event Id
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/EventsLPRBody"
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/GenericResponse"
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
/events/{event_id}/description:
post:
tags:
- Events
@ -2370,7 +2433,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/description/regenerate":
/events/{event_id}/description/regenerate:
put:
tags:
- Events
@ -2430,7 +2493,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{camera_name}/{label}/create":
/events/{camera_name}/{label}/create:
post:
tags:
- Events
@ -2473,7 +2536,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/end":
/events/{event_id}/end:
put:
tags:
- Events
@ -2505,7 +2568,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}":
/{camera_name}:
get:
tags:
- Media
@ -2592,7 +2655,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/ptz/info":
/{camera_name}/ptz/info:
get:
tags:
- Media
@ -2617,7 +2680,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/latest.{extension}":
/{camera_name}/latest.{extension}:
get:
tags:
- Media
@ -2720,7 +2783,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/recordings/{frame_time}/snapshot.{format}":
/{camera_name}/recordings/{frame_time}/snapshot.{format}:
get:
tags:
- Media
@ -2767,7 +2830,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/plus/{frame_time}":
/{camera_name}/plus/{frame_time}:
post:
tags:
- Media
@ -2846,7 +2909,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/recordings/summary":
/{camera_name}/recordings/summary:
get:
tags:
- Media
@ -2879,13 +2942,13 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/recordings":
/{camera_name}/recordings:
get:
tags:
- Media
summary: Recordings
description: >-
Return specific camera recordings between the given 'after'/'end' times.
Return specific camera recordings between the given "after"/"end" times.
If not provided the last hour will be used
operationId: recordings__camera_name__recordings_get
parameters:
@ -2900,14 +2963,14 @@ paths:
required: false
schema:
type: number
default: 1744227965.180043
default: 1752611870.43948
title: After
- name: before
in: query
required: false
schema:
type: number
default: 1744231565.180048
default: 1752615470.43949
title: Before
responses:
"200":
@ -2921,13 +2984,14 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/start/{start_ts}/end/{end_ts}/clip.mp4":
/{camera_name}/start/{start_ts}/end/{end_ts}/clip.mp4:
get:
tags:
- Media
summary: Recording Clip
description: >-
For iOS devices, use the master.m3u8 HLS link instead of clip.mp4. Safari does not reliably process progressive mp4 files.
For iOS devices, use the master.m3u8 HLS link instead of clip.mp4.
Safari does not reliably process progressive mp4 files.
operationId: recording_clip__camera_name__start__start_ts__end__end_ts__clip_mp4_get
parameters:
- name: camera_name
@ -2960,11 +3024,14 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/vod/{camera_name}/start/{start_ts}/end/{end_ts}":
/vod/{camera_name}/start/{start_ts}/end/{end_ts}:
get:
tags:
- Media
summary: Vod Ts
description: >-
Returns an HLS playlist for the specified timestamp-range on the
specified camera. Append /master.m3u8 or /index.m3u8 for HLS playback.
operationId: vod_ts_vod__camera_name__start__start_ts__end__end_ts__get
parameters:
- name: camera_name
@ -2997,12 +3064,14 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/vod/{year_month}/{day}/{hour}/{camera_name}":
/vod/{year_month}/{day}/{hour}/{camera_name}:
get:
tags:
- Media
summary: Vod Hour No Timezone
description: VOD for specific hour. Uses the default timezone (UTC).
description: >-
Returns an HLS playlist for the specified date-time on the specified
camera. Append /master.m3u8 or /index.m3u8 for HLS playback.
operationId: vod_hour_no_timezone_vod__year_month___day___hour___camera_name__get
parameters:
- name: year_month
@ -3041,11 +3110,15 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/vod/{year_month}/{day}/{hour}/{camera_name}/{tz_name}":
/vod/{year_month}/{day}/{hour}/{camera_name}/{tz_name}:
get:
tags:
- Media
summary: Vod Hour
description: >-
Returns an HLS playlist for the specified date-time (with timezone) on
the specified camera. Append /master.m3u8 or /index.m3u8 for HLS
playback.
operationId: vod_hour_vod__year_month___day___hour___camera_name___tz_name__get
parameters:
- name: year_month
@ -3090,11 +3163,14 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/vod/event/{event_id}":
/vod/event/{event_id}:
get:
tags:
- Media
summary: Vod Event
description: >-
Returns an HLS playlist for the specified object. Append /master.m3u8 or
/index.m3u8 for HLS playback.
operationId: vod_event_vod_event__event_id__get
parameters:
- name: event_id
@ -3115,11 +3191,15 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/snapshot.jpg":
/events/{event_id}/snapshot.jpg:
get:
tags:
- Media
summary: Event Snapshot
description: >-
Returns a snapshot image for the specified object id. NOTE: The query
params only take affect while the event is in-progress. Once the event
has ended the snapshot configuration is used.
operationId: event_snapshot_events__event_id__snapshot_jpg_get
parameters:
- name: event_id
@ -3190,7 +3270,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/thumbnail.{extension}":
/events/{event_id}/thumbnail.{extension}:
get:
tags:
- Media
@ -3240,7 +3320,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/grid.jpg":
/{camera_name}/grid.jpg:
get:
tags:
- Media
@ -3279,7 +3359,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/snapshot-clean.png":
/events/{event_id}/snapshot-clean.png:
get:
tags:
- Media
@ -3311,7 +3391,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/clip.mp4":
/events/{event_id}/clip.mp4:
get:
tags:
- Media
@ -3336,7 +3416,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/preview.gif":
/events/{event_id}/preview.gif:
get:
tags:
- Media
@ -3361,7 +3441,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/start/{start_ts}/end/{end_ts}/preview.gif":
/{camera_name}/start/{start_ts}/end/{end_ts}/preview.gif:
get:
tags:
- Media
@ -3407,7 +3487,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/start/{start_ts}/end/{end_ts}/preview.mp4":
/{camera_name}/start/{start_ts}/end/{end_ts}/preview.mp4:
get:
tags:
- Media
@ -3453,7 +3533,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/review/{event_id}/preview":
/review/{event_id}/preview:
get:
tags:
- Media
@ -3488,7 +3568,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/preview/{file_name}/thumbnail.webp":
/preview/{file_name}/thumbnail.webp:
get:
tags:
- Media
@ -3514,7 +3594,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/preview/{file_name}/thumbnail.jpg":
/preview/{file_name}/thumbnail.jpg:
get:
tags:
- Media
@ -3540,7 +3620,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/{label}/thumbnail.jpg":
/{camera_name}/{label}/thumbnail.jpg:
get:
tags:
- Media
@ -3571,7 +3651,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/{label}/best.jpg":
/{camera_name}/{label}/best.jpg:
get:
tags:
- Media
@ -3602,7 +3682,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/{label}/clip.mp4":
/{camera_name}/{label}/clip.mp4:
get:
tags:
- Media
@ -3633,7 +3713,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/{label}/snapshot.jpg":
/{camera_name}/{label}/snapshot.jpg:
get:
tags:
- Media
@ -3985,6 +4065,23 @@ components:
title: End Time
type: object
title: EventsEndBody
EventsLPRBody:
properties:
recognizedLicensePlate:
type: string
maxLength: 100
title: Recognized License Plate
recognizedLicensePlateScore:
anyOf:
- type: number
maximum: 1
exclusiveMinimum: 0
- type: "null"
title: Score for recognized license plate
type: object
required:
- recognizedLicensePlate
title: EventsLPRBody
EventsSubLabelBody:
properties:
subLabel:
@ -4105,6 +4202,15 @@ components:
- thumbnails
- snapshot
title: RegenerateDescriptionEnum
RenameFaceBody:
properties:
new_name:
type: string
title: New Name
type: object
required:
- new_name
title: RenameFaceBody
ReviewActivityMotionResponse:
properties:
start_time:

View File

@ -20,7 +20,7 @@ from fastapi.encoders import jsonable_encoder
from fastapi.params import Depends
from fastapi.responses import JSONResponse, PlainTextResponse, StreamingResponse
from markupsafe import escape
from peewee import operator
from peewee import SQL, operator
from pydantic import ValidationError
from frigate.api.auth import require_role
@ -685,7 +685,14 @@ def plusModels(request: Request, filterByCurrentModelDetector: bool = False):
@router.get("/recognized_license_plates")
def get_recognized_license_plates(split_joined: Optional[int] = None):
try:
events = Event.select(Event.data).distinct()
query = (
Event.select(
SQL("json_extract(data, '$.recognized_license_plate') AS plate")
)
.where(SQL("json_extract(data, '$.recognized_license_plate') IS NOT NULL"))
.distinct()
)
recognized_license_plates = [row[0] for row in query.tuples()]
except Exception:
return JSONResponse(
content=(
@ -694,14 +701,6 @@ def get_recognized_license_plates(split_joined: Optional[int] = None):
status_code=404,
)
recognized_license_plates = []
for e in events:
if e.data is not None and "recognized_license_plate" in e.data:
recognized_license_plates.append(e.data["recognized_license_plate"])
while None in recognized_license_plates:
recognized_license_plates.remove(None)
if split_joined:
original_recognized_license_plates = recognized_license_plates.copy()
for recognized_license_plate in original_recognized_license_plates:

View File

@ -71,7 +71,7 @@ def get_remote_addr(request: Request):
)
if trusted_proxy.version == 4:
ipv4 = ip.ipv4_mapped if ip.version == 6 else ip
if ipv4 in trusted_proxy:
if ipv4 is not None and ipv4 in trusted_proxy:
trusted = True
logger.debug(f"Trusted: {str(ip)} by {str(trusted_proxy)}")
break

View File

@ -724,15 +724,24 @@ def events_search(request: Request, params: EventsSearchQueryParams = Depends())
if (sort is None or sort == "relevance") and search_results:
processed_events.sort(key=lambda x: x.get("search_distance", float("inf")))
elif min_score is not None and max_score is not None and sort == "score_asc":
elif sort == "score_asc":
processed_events.sort(key=lambda x: x["data"]["score"])
elif min_score is not None and max_score is not None and sort == "score_desc":
elif sort == "score_desc":
processed_events.sort(key=lambda x: x["data"]["score"], reverse=True)
elif min_speed is not None and max_speed is not None and sort == "speed_asc":
processed_events.sort(key=lambda x: x["data"]["average_estimated_speed"])
elif min_speed is not None and max_speed is not None and sort == "speed_desc":
elif sort == "speed_asc":
processed_events.sort(
key=lambda x: x["data"]["average_estimated_speed"], reverse=True
key=lambda x: (
x["data"].get("average_estimated_speed") is None,
x["data"].get("average_estimated_speed"),
)
)
elif sort == "speed_desc":
processed_events.sort(
key=lambda x: (
x["data"].get("average_estimated_speed") is None,
x["data"].get("average_estimated_speed", float("-inf")),
),
reverse=True,
)
elif sort == "date_asc":
processed_events.sort(key=lambda x: x["start_time"])

View File

@ -142,15 +142,13 @@ def latest_frame(
"regions": params.regions,
}
quality = params.quality
mime_type = extension
if extension == "png":
if extension == Extension.png:
quality_params = None
elif extension == "webp":
elif extension == Extension.webp:
quality_params = [int(cv2.IMWRITE_WEBP_QUALITY), quality]
else:
else: # jpg or jpeg
quality_params = [int(cv2.IMWRITE_JPEG_QUALITY), quality]
mime_type = "jpeg"
if camera_name in request.app.frigate_config.cameras:
frame = frame_processor.get_current_frame(camera_name, draw_options)
@ -193,18 +191,21 @@ def latest_frame(
frame = cv2.resize(frame, dsize=(width, height), interpolation=cv2.INTER_AREA)
_, img = cv2.imencode(f".{extension}", frame, quality_params)
_, img = cv2.imencode(f".{extension.value}", frame, quality_params)
return Response(
content=img.tobytes(),
media_type=f"image/{mime_type}",
media_type=f"image/{extension.value}",
headers={
"Content-Type": f"image/{mime_type}",
"Cache-Control": "no-store"
if not params.store
else "private, max-age=60",
},
)
elif camera_name == "birdseye" and request.app.frigate_config.birdseye.restream:
elif (
camera_name == "birdseye"
and request.app.frigate_config.birdseye.enabled
and request.app.frigate_config.birdseye.restream
):
frame = cv2.cvtColor(
frame_processor.get_current_frame(camera_name),
cv2.COLOR_YUV2BGR_I420,
@ -215,12 +216,11 @@ def latest_frame(
frame = cv2.resize(frame, dsize=(width, height), interpolation=cv2.INTER_AREA)
_, img = cv2.imencode(f".{extension}", frame, quality_params)
_, img = cv2.imencode(f".{extension.value}", frame, quality_params)
return Response(
content=img.tobytes(),
media_type=f"image/{mime_type}",
media_type=f"image/{extension.value}",
headers={
"Content-Type": f"image/{mime_type}",
"Cache-Control": "no-store"
if not params.store
else "private, max-age=60",
@ -800,7 +800,10 @@ def vod_event(event_id: str):
)
@router.get("/events/{event_id}/snapshot.jpg")
@router.get(
"/events/{event_id}/snapshot.jpg",
description="Returns a snapshot image for the specified object id. NOTE: The query params only take affect while the event is in-progress. Once the event has ended the snapshot configuration is used.",
)
def event_snapshot(
request: Request,
event_id: str,

View File

@ -21,7 +21,12 @@ router = APIRouter(tags=[Tags.notifications])
@router.get("/notifications/pubkey")
def get_vapid_pub_key(request: Request):
if not request.app.frigate_config.notifications.enabled:
config = request.app.frigate_config
notifications_enabled = config.notifications.enabled
camera_notifications_enabled = [
c for c in config.cameras.values() if c.enabled and c.notifications.enabled
]
if not (notifications_enabled or camera_notifications_enabled):
return JSONResponse(
content=({"success": False, "message": "Notifications are not enabled."}),
status_code=400,

View File

@ -250,6 +250,7 @@ class FrigateApp:
and not genai_cameras
and not self.config.lpr.enabled
and not self.config.face_recognition.enabled
and not self.config.classification.bird.enabled
):
return

View File

@ -241,6 +241,9 @@ class WebPushClient(Communicator): # type: ignore[misc]
self.expired_subs.setdefault(notification.user, []).append(
endpoint
)
logger.debug(
f"Notification endpoint expired for {notification.user}, received {resp.status_code}"
)
elif resp.status_code != 201:
logger.warning(
f"Failed to send notification to {notification.user} :: {resp.status_code}"
@ -257,6 +260,8 @@ class WebPushClient(Communicator): # type: ignore[misc]
self.check_registrations()
logger.debug("Sending test notification")
for user in self.web_pushers:
self.send_push_notification(
user=user,

View File

@ -1,3 +1,5 @@
from typing import Optional
from pydantic import Field
from .base import FrigateBaseModel
@ -11,8 +13,8 @@ class StatsConfig(FrigateBaseModel):
network_bandwidth: bool = Field(
default=False, title="Enable network bandwidth for ffmpeg processes."
)
sriov: bool = Field(
default=False, title="Treat device as SR-IOV to support GPU stats."
intel_gpu_device: Optional[str] = Field(
default=None, title="Define the device to use when gathering SR-IOV stats."
)

View File

@ -26,6 +26,7 @@ DEFAULT_ATTRIBUTE_LABEL_MAP = {
"car": [
"amazon",
"an_post",
"canada_post",
"dhl",
"dpd",
"fedex",
@ -35,6 +36,7 @@ DEFAULT_ATTRIBUTE_LABEL_MAP = {
"postnl",
"postnord",
"purolator",
"royal_mail",
"ups",
"usps",
],
@ -70,6 +72,7 @@ LIBAVFORMAT_VERSION_MAJOR = int(os.environ.get("LIBAVFORMAT_VERSION_MAJOR", "59"
FFMPEG_HWACCEL_NVIDIA = "preset-nvidia"
FFMPEG_HWACCEL_VAAPI = "preset-vaapi"
FFMPEG_HWACCEL_VULKAN = "preset-vulkan"
FFMPEG_HWACCEL_RKMPP = "preset-rkmpp"
FFMPEG_HVC1_ARGS = ["-tag:v", "hvc1"]
# Regex constants

View File

@ -119,7 +119,7 @@ class Rknn(DetectionApi):
model_props["model_type"] = model_type
if model_matched:
model_props["filename"] = model_path + f"-{soc}-v2.3.2-1.rknn"
model_props["filename"] = model_path + f"-{soc}-v2.3.2-2.rknn"
model_props["path"] = model_cache_dir + model_props["filename"]
@ -140,26 +140,10 @@ class Rknn(DetectionApi):
os.mkdir(model_cache_dir)
urllib.request.urlretrieve(
f"https://github.com/MarcA711/rknn-models/releases/download/v2.3.2/{filename}",
f"https://github.com/MarcA711/rknn-models/releases/download/v2.3.2-2/{filename}",
model_cache_dir + filename,
)
def check_config(self, config):
if (config.model.width != 320) or (config.model.height != 320):
raise Exception(
"Make sure to set the model width and height to 320 in your config."
)
if config.model.input_pixel_format != "bgr":
raise Exception(
'Make sure to set the model input_pixel_format to "bgr" in your config.'
)
if config.model.input_tensor != "nhwc":
raise Exception(
'Make sure to set the model input_tensor to "nhwc" in your config.'
)
def post_process_yolonas(self, output: list[np.ndarray]):
"""
@param output: output of inference

View File

@ -7,6 +7,7 @@ import multiprocessing as mp
import os
import signal
import threading
from json.decoder import JSONDecodeError
from types import FrameType
from typing import Any, Optional, Union
@ -73,13 +74,21 @@ class EmbeddingsContext:
self.requestor = EmbeddingsRequestor()
# load stats from disk
stats_file = os.path.join(CONFIG_DIR, ".search_stats.json")
try:
with open(os.path.join(CONFIG_DIR, ".search_stats.json"), "r") as f:
with open(stats_file, "r") as f:
data = json.loads(f.read())
self.thumb_stats.from_dict(data["thumb_stats"])
self.desc_stats.from_dict(data["desc_stats"])
except FileNotFoundError:
pass
except JSONDecodeError:
logger.warning("Failed to decode semantic search stats, clearing file")
try:
with open(stats_file, "w") as f:
f.write("")
except OSError as e:
logger.error(f"Failed to clear corrupted stats file: {e}")
def stop(self):
"""Write the stats to disk as JSON on exit."""

View File

@ -334,27 +334,24 @@ class Embeddings:
.paginate(current_page, batch_size)
)
while len(events) > 0:
while events:
event: Event
batch_thumbs = {}
batch_descs = {}
for event in events:
thumbnail = get_event_thumbnail_bytes(event)
if thumbnail is None:
continue
batch_thumbs[event.id] = thumbnail
totals["thumbnails"] += 1
totals["processed_objects"] += 1
if description := event.data.get("description", "").strip():
batch_descs[event.id] = description
totals["descriptions"] += 1
totals["processed_objects"] += 1
if thumbnail := get_event_thumbnail_bytes(event):
batch_thumbs[event.id] = thumbnail
totals["thumbnails"] += 1
# run batch embedding
self.batch_embed_thumbnail(batch_thumbs)
if batch_thumbs:
self.batch_embed_thumbnail(batch_thumbs)
if batch_descs:
self.batch_embed_description(batch_descs)

View File

@ -340,21 +340,22 @@ class EventCleanup(threading.Thread):
.where(Event.has_clip == False, Event.has_snapshot == False)
.iterator()
)
events_to_delete = [e.id for e in events]
events_to_delete: list[Event] = [e for e in events]
for e in events:
for e in events_to_delete:
delete_event_thumbnail(e)
logger.debug(f"Found {len(events_to_delete)} events that can be expired")
if len(events_to_delete) > 0:
for i in range(0, len(events_to_delete), CHUNK_SIZE):
chunk = events_to_delete[i : i + CHUNK_SIZE]
ids_to_delete = [e.id for e in events_to_delete]
for i in range(0, len(ids_to_delete), CHUNK_SIZE):
chunk = ids_to_delete[i : i + CHUNK_SIZE]
logger.debug(f"Deleting {len(chunk)} events from the database")
Event.delete().where(Event.id << chunk).execute()
if self.config.semantic_search.enabled:
self.db.delete_embeddings_description(event_ids=chunk)
self.db.delete_embeddings_thumbnail(event_ids=chunk)
logger.debug(f"Deleted {len(events_to_delete)} embeddings")
logger.debug(f"Deleted {len(ids_to_delete)} embeddings")
logger.info("Exiting event cleanup...")

View File

@ -8,6 +8,7 @@ from typing import Any
from frigate.const import (
FFMPEG_HVC1_ARGS,
FFMPEG_HWACCEL_NVIDIA,
FFMPEG_HWACCEL_RKMPP,
FFMPEG_HWACCEL_VAAPI,
FFMPEG_HWACCEL_VULKAN,
LIBAVFORMAT_VERSION_MAJOR,
@ -70,8 +71,7 @@ PRESETS_HW_ACCEL_DECODE = {
FFMPEG_HWACCEL_NVIDIA: "-hwaccel cuda -hwaccel_output_format cuda",
"preset-jetson-h264": "-c:v h264_nvmpi -resize {1}x{2}",
"preset-jetson-h265": "-c:v hevc_nvmpi -resize {1}x{2}",
"preset-rk-h264": "-hwaccel rkmpp -hwaccel_output_format drm_prime",
"preset-rk-h265": "-hwaccel rkmpp -hwaccel_output_format drm_prime",
f"{FFMPEG_HWACCEL_RKMPP}-no-dump_extra": "-hwaccel rkmpp -hwaccel_output_format drm_prime",
# experimental presets
FFMPEG_HWACCEL_VULKAN: "-hwaccel vulkan -init_hw_device vulkan=gpu:0 -filter_hw_device gpu -hwaccel_output_format vulkan",
}
@ -85,6 +85,16 @@ PRESETS_HW_ACCEL_DECODE["preset-nvidia-mjpeg"] = PRESETS_HW_ACCEL_DECODE[
FFMPEG_HWACCEL_NVIDIA
]
PRESETS_HW_ACCEL_DECODE[FFMPEG_HWACCEL_RKMPP] = (
f"{PRESETS_HW_ACCEL_DECODE[f'{FFMPEG_HWACCEL_RKMPP}-no-dump_extra']}{' -bsf:v dump_extra' if LIBAVFORMAT_VERSION_MAJOR >= 61 else ''}"
)
PRESETS_HW_ACCEL_DECODE["preset-rk-h264"] = PRESETS_HW_ACCEL_DECODE[
FFMPEG_HWACCEL_RKMPP
]
PRESETS_HW_ACCEL_DECODE["preset-rk-h265"] = PRESETS_HW_ACCEL_DECODE[
FFMPEG_HWACCEL_RKMPP
]
PRESETS_HW_ACCEL_SCALE = {
"preset-rpi-64-h264": "-r {0} -vf fps={0},scale={1}:{2}",
"preset-rpi-64-h265": "-r {0} -vf fps={0},scale={1}:{2}",
@ -94,8 +104,7 @@ PRESETS_HW_ACCEL_SCALE = {
FFMPEG_HWACCEL_NVIDIA: "-r {0} -vf fps={0},scale_cuda=w={1}:h={2},hwdownload,format=nv12,eq=gamma=1.4:gamma_weight=0.5",
"preset-jetson-h264": "-r {0}", # scaled in decoder
"preset-jetson-h265": "-r {0}", # scaled in decoder
"preset-rk-h264": "-r {0} -vf scale_rkrga=w={1}:h={2}:format=yuv420p:force_original_aspect_ratio=0,hwmap=mode=read,format=yuv420p",
"preset-rk-h265": "-r {0} -vf scale_rkrga=w={1}:h={2}:format=yuv420p:force_original_aspect_ratio=0,hwmap=mode=read,format=yuv420p",
FFMPEG_HWACCEL_RKMPP: "-r {0} -vf scale_rkrga=w={1}:h={2}:format=yuv420p:force_original_aspect_ratio=0,hwmap=mode=read,format=yuv420p",
"default": "-r {0} -vf fps={0},scale={1}:{2}",
# experimental presets
FFMPEG_HWACCEL_VULKAN: "-r {0} -vf fps={0},hwupload,scale_vulkan=w={1}:h={2},hwdownload",
@ -107,6 +116,12 @@ PRESETS_HW_ACCEL_SCALE["preset-nvidia-h265"] = PRESETS_HW_ACCEL_SCALE[
FFMPEG_HWACCEL_NVIDIA
]
PRESETS_HW_ACCEL_SCALE[f"{FFMPEG_HWACCEL_RKMPP}-no-dump_extra"] = (
PRESETS_HW_ACCEL_SCALE[FFMPEG_HWACCEL_RKMPP]
)
PRESETS_HW_ACCEL_SCALE["preset-rk-h264"] = PRESETS_HW_ACCEL_SCALE[FFMPEG_HWACCEL_RKMPP]
PRESETS_HW_ACCEL_SCALE["preset-rk-h265"] = PRESETS_HW_ACCEL_SCALE[FFMPEG_HWACCEL_RKMPP]
PRESETS_HW_ACCEL_ENCODE_BIRDSEYE = {
"preset-rpi-64-h264": "{0} -hide_banner {1} -c:v h264_v4l2m2m {2}",
"preset-rpi-64-h265": "{0} -hide_banner {1} -c:v hevc_v4l2m2m {2}",
@ -116,7 +131,7 @@ PRESETS_HW_ACCEL_ENCODE_BIRDSEYE = {
FFMPEG_HWACCEL_NVIDIA: "{0} -hide_banner {1} -c:v h264_nvenc -g 50 -profile:v high -level:v auto -preset:v p2 -tune:v ll {2}",
"preset-jetson-h264": "{0} -hide_banner {1} -c:v h264_nvmpi -profile high {2}",
"preset-jetson-h265": "{0} -hide_banner {1} -c:v h264_nvmpi -profile main {2}",
"preset-rk-h264": "{0} -hide_banner {1} -c:v h264_rkmpp -profile:v high {2}",
FFMPEG_HWACCEL_RKMPP: "{0} -hide_banner {1} -c:v h264_rkmpp -profile:v high {2}",
"preset-rk-h265": "{0} -hide_banner {1} -c:v hevc_rkmpp -profile:v main {2}",
"default": "{0} -hide_banner {1} -c:v libx264 -g 50 -profile:v high -level:v 4.1 -preset:v superfast -tune:v zerolatency {2}",
}
@ -127,6 +142,13 @@ PRESETS_HW_ACCEL_ENCODE_BIRDSEYE["preset-nvidia-h265"] = (
PRESETS_HW_ACCEL_ENCODE_BIRDSEYE[FFMPEG_HWACCEL_NVIDIA]
)
PRESETS_HW_ACCEL_ENCODE_BIRDSEYE[f"{FFMPEG_HWACCEL_RKMPP}-no-dump_extra"] = (
PRESETS_HW_ACCEL_ENCODE_BIRDSEYE[FFMPEG_HWACCEL_RKMPP]
)
PRESETS_HW_ACCEL_ENCODE_BIRDSEYE["preset-rk-h264"] = PRESETS_HW_ACCEL_ENCODE_BIRDSEYE[
FFMPEG_HWACCEL_RKMPP
]
PRESETS_HW_ACCEL_ENCODE_TIMELAPSE = {
"preset-rpi-64-h264": "{0} -hide_banner {1} -c:v h264_v4l2m2m -pix_fmt yuv420p {2}",
"preset-rpi-64-h265": "{0} -hide_banner {1} -c:v hevc_v4l2m2m -pix_fmt yuv420p {2}",
@ -137,7 +159,7 @@ PRESETS_HW_ACCEL_ENCODE_TIMELAPSE = {
"preset-nvidia-h265": "{0} -hide_banner -hwaccel cuda -hwaccel_output_format cuda -extra_hw_frames 8 {1} -c:v hevc_nvenc {2}",
"preset-jetson-h264": "{0} -hide_banner {1} -c:v h264_nvmpi -profile high {2}",
"preset-jetson-h265": "{0} -hide_banner {1} -c:v hevc_nvmpi -profile main {2}",
"preset-rk-h264": "{0} -hide_banner {1} -c:v h264_rkmpp -profile:v high {2}",
FFMPEG_HWACCEL_RKMPP: "{0} -hide_banner {1} -c:v h264_rkmpp -profile:v high {2}",
"preset-rk-h265": "{0} -hide_banner {1} -c:v hevc_rkmpp -profile:v main {2}",
"default": "{0} -hide_banner {1} -c:v libx264 -preset:v ultrafast -tune:v zerolatency {2}",
}
@ -145,6 +167,13 @@ PRESETS_HW_ACCEL_ENCODE_TIMELAPSE["preset-nvidia-h264"] = (
PRESETS_HW_ACCEL_ENCODE_TIMELAPSE[FFMPEG_HWACCEL_NVIDIA]
)
PRESETS_HW_ACCEL_ENCODE_TIMELAPSE[f"{FFMPEG_HWACCEL_RKMPP}-no-dump_extra"] = (
PRESETS_HW_ACCEL_ENCODE_TIMELAPSE[FFMPEG_HWACCEL_RKMPP]
)
PRESETS_HW_ACCEL_ENCODE_TIMELAPSE["preset-rk-h264"] = PRESETS_HW_ACCEL_ENCODE_TIMELAPSE[
FFMPEG_HWACCEL_RKMPP
]
# encoding of previews is only done on CPU due to comparable encode times and better quality from libx264
PRESETS_HW_ACCEL_ENCODE_PREVIEW = {
"default": "{0} -hide_banner {1} -c:v libx264 -profile:v baseline -preset:v ultrafast {2}",

View File

@ -66,7 +66,7 @@ def sync_recordings(limited: bool) -> None:
if float(len(recordings_to_delete)) / max(1, recordings.count()) > 0.5:
logger.warning(
f"Deleting {(float(len(recordings_to_delete)) / recordings.count()):2f}% of recordings DB entries, could be due to configuration error. Aborting..."
f"Deleting {(len(recordings_to_delete) / max(1, recordings.count()) * 100):.2f}% of recordings DB entries, could be due to configuration error. Aborting..."
)
return False
@ -106,7 +106,7 @@ def sync_recordings(limited: bool) -> None:
if float(len(files_to_delete)) / max(1, len(files_on_disk)) > 0.5:
logger.debug(
f"Deleting {(float(len(files_to_delete)) / len(files_on_disk)):2f}% of recordings DB entries, could be due to configuration error. Aborting..."
f"Deleting {(len(files_to_delete) / max(1, len(files_on_disk)) * 100):.2f}% of recordings DB entries, could be due to configuration error. Aborting..."
)
return False

View File

@ -201,7 +201,7 @@ async def set_gpu_stats(
continue
# intel QSV GPU
intel_usage = get_intel_gpu_stats(config.telemetry.stats.sriov)
intel_usage = get_intel_gpu_stats(config.telemetry.stats.intel_gpu_device)
if intel_usage is not None:
stats["intel-qsv"] = intel_usage or {"gpu": "", "mem": ""}
@ -226,7 +226,9 @@ async def set_gpu_stats(
continue
# intel VAAPI GPU
intel_usage = get_intel_gpu_stats(config.telemetry.stats.sriov)
intel_usage = get_intel_gpu_stats(
config.telemetry.stats.intel_gpu_device
)
if intel_usage is not None:
stats["intel-vaapi"] = intel_usage or {"gpu": "", "mem": ""}

View File

@ -257,7 +257,7 @@ def get_amd_gpu_stats() -> Optional[dict[str, str]]:
return results
def get_intel_gpu_stats(sriov: bool) -> Optional[dict[str, str]]:
def get_intel_gpu_stats(intel_gpu_device: Optional[str]) -> Optional[dict[str, str]]:
"""Get stats using intel_gpu_top."""
def get_stats_manually(output: str) -> dict[str, str]:
@ -304,8 +304,8 @@ def get_intel_gpu_stats(sriov: bool) -> Optional[dict[str, str]]:
"1",
]
if sriov:
intel_gpu_top_command += ["-d", "sriov"]
if intel_gpu_device:
intel_gpu_top_command += ["-d", intel_gpu_device]
try:
p = sp.run(

View File

@ -1,3 +1,268 @@
{
"babbling": "Бърборене"
"babbling": "Бърборене",
"whispering": "Шепнене",
"laughter": "Смях",
"crying": "Плача",
"sigh": "Въздишка",
"singing": "Подписвам",
"choir": "Хор",
"yodeling": "Йоделинг",
"mantra": "Мантра",
"child_singing": "Дете пее",
"rapping": "Рапиране",
"humming": "Тананикане",
"groan": "Пъшкане",
"whistling": "Подсвиркване",
"breathing": "Дишане",
"snoring": "Хъркане",
"cough": "Кашлица",
"throat_clearing": "Прокашляне",
"sneeze": "Кихане",
"sniff": "Подсмърчане",
"run": "Бяг",
"shuffle": "Разбъркване",
"footsteps": "Стъпки",
"chewing": "Дъвчене",
"biting": "Хапане",
"gargling": "Гаргара",
"burping": "Оригване",
"hiccup": "Хълцане",
"fart": "Пръдня",
"hands": "Ръце",
"finger_snapping": "Щтракане с пръсти",
"clapping": "Ръкопляскане",
"applause": "Овации",
"chatter": "Говорене",
"crowd": "Тълпа",
"children_playing": "Деца си играят",
"animal": "Животно",
"pets": "Домашен любимец",
"dog": "Куче",
"bark": "Лай",
"cat": "Котка",
"purr": "Мър",
"meow": "Мял",
"hiss": "Съскане",
"livestock": "Добитък",
"horse": "Кон",
"neigh": "Иииааа",
"moo": "Муу",
"cowbell": "Хлопка",
"pig": "Прасе",
"oink": "Грух",
"goat": "Коза",
"sheep": "Овца",
"chicken": "Пиле",
"cluck": "Ко-ко",
"cock_a_doodle_doo": "Кукуригу",
"turkey": "Пуйка",
"gobble": "Пулюпулю",
"duck": "Патка",
"quack": "Ква",
"goose": "Гъска",
"wild_animals": "Диви животни",
"roaring_cats": "Ревящи котки",
"roar": "Рев",
"bird": "Птица",
"pigeon": "Гълъб",
"coo": "Гуу",
"crow": "Гарван",
"caw": "Га",
"owl": "Сова",
"hoot": "Бухуу",
"flapping_wings": "Плясък на крила",
"dogs": "Кучета",
"rats": "Плъхове",
"mouse": "Мишка",
"insect": "Насекомо",
"cricket": "Щурец",
"mosquito": "Комар",
"fly": "Муха",
"buzz": "Бръм",
"frog": "Жаба",
"croak": "Квак",
"snake": "Змия",
"whale_vocalization": "Вик на кит",
"music": "Музика",
"musical_instrument": "Музикален инструмент",
"plucked_string_instrument": "Струнен инструмент",
"guitar": "Китара",
"electric_guitar": "Електрическа китара",
"bass_guitar": "Бас китара",
"acoustic_guitar": "Акустична китара",
"steel_guitar": "Метална китара",
"banjo": "Банджо",
"sitar": "Ситар",
"mandolin": "Мандолина",
"ukulele": "Укулеле",
"keyboard": "Клавир",
"piano": "Пиано",
"electric_piano": "Електрическо пиано",
"organ": "Орган",
"electronic_organ": "Електрически орган",
"hammond_organ": "Хамонд орган",
"synthesizer": "Синтезатор",
"sampler": "Семплър",
"percussion": "Перкуции",
"drum_kit": "Сет барабани",
"drum_machine": "Дръм машина",
"drum": "Барабан",
"drum_roll": "Туш",
"timpani": "Тимпани",
"tabla": "Табла",
"cymbal": "Цимбал",
"tambourine": "Тамбура",
"maraca": "Маракас",
"gong": "Гонг",
"vibraphone": "Вибрафон",
"orchestra": "Оркестър",
"brass_instrument": "Брас инструмент",
"french_horn": "Валдхорна",
"trumpet": "Тромпет",
"trombone": "Тромбон",
"bowed_string_instrument": "Струнен инструмент с лък",
"violin": "Цигулка",
"pizzicato": "Пицикато",
"cello": "Чело",
"double_bass": "Контрабас",
"wind_instrument": "Духов инструмент",
"flute": "Флейта",
"saxophone": "Саксофон",
"clarinet": "Кларинет",
"harp": "Арфа",
"bell": "Камбана",
"church_bell": "Църковна камбана",
"bicycle_bell": "Вело звънец",
"tuning_fork": "Камертон",
"harmonica": "Хармоника",
"accordion": "Акордеон",
"bagpipes": "Гайда",
"didgeridoo": "Диджириду",
"theremin": "Теремин",
"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": "Електроника",
"trance_music": "Транс музика",
"music_of_latin_america": "Латино музика",
"salsa_music": "Салса музика",
"flamenco": "Фламенко",
"blues": "Блус",
"music_for_children": "Детска музика",
"a_capella": "Акапела",
"music_of_africa": "Африканска музика",
"afrobeat": "Афроритъм",
"gospel_music": "Госпел",
"music_of_asia": "Азиатска музика",
"ska": "Ска",
"song": "Песен",
"background_music": "Фонова музика",
"jingle": "Джингъл",
"thunderstorm": "Гръмотевична буря",
"thunder": "Гръмотевица",
"water": "Вода",
"rain": "Дъжд",
"raindrop": "Дъждовна капка",
"stream": "Поток",
"waterfall": "Водопад",
"ocean": "Океан",
"waves": "Вълни",
"steam": "Пара",
"fire": "Огън",
"vehicle": "Превозно средство",
"boat": "Лодка",
"sailboat": "Ветроходна лодка",
"rowboat": "Гребна лодка",
"motorboat": "Моторна лодка",
"ship": "Кораб",
"motor_vehicle": "МПС",
"car": "Кола",
"car_alarm": "Аларма на кола",
"skidding": "Поднасяне",
"tire_squeal": "Скърцане на гуми",
"car_passing_by": "Преминаваща кола",
"race_car": "Състезателна кола",
"truck": "Камион",
"air_brake": "Въздушна спирачка",
"air_horn": "Тромба",
"reversing_beeps": "Звуков сигнал за задна скорост",
"ice_cream_truck": "Камион за сладолед",
"bus": "Автобус",
"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": "Двигател",
"dental_drill's_drill": "Зълболекарско борче",
"lawn_mower": "Косачка",
"chainsaw": "Моторен трион",
"engine_starting": "Стартиране на двигател",
"idling": "Празен ход",
"accelerating": "Ускорение",
"door": "Врата",
"doorbell": "Звънец",
"ding-dong": "Динг-донг",
"sliding_door": "Плъзгаща врата",
"slam": "Затръшване",
"knock": "Чук",
"tap": "Почукване",
"squeak": "Скръц",
"drawer_open_or_close": "Чекмедже отвори или затвори",
"dishes": "Чинии",
"cutlery": "Прибори за хранене",
"chopping": "Рязане",
"frying": "Пържене",
"microwave_oven": "Микровълнова фурна",
"blender": "Блендер",
"water_tap": "Кран за вода",
"speech": "Реч",
"yell": "Викане",
"bellow": "Под",
"whoop": "Уупс",
"pant": "Здъхване",
"stomach_rumble": "Къркорене на стомах",
"heartbeat": "Сърцебиене",
"scream": "Вик"
}

View File

@ -13,7 +13,50 @@
"second_one": "{{time}} секунда",
"second_other": "{{time}} секунди",
"year_one": "{{time}} година",
"year_other": "{{time}} години"
"year_other": "{{time}} години",
"justNow": "Сега",
"last7": "Изминалите 7 дни",
"last14": "Изминалите 14 дни",
"last30": "Изминалите 30 дни",
"thisWeek": "Тази седмица",
"lastWeek": "Предходната седмица",
"thisMonth": "Този месец",
"lastMonth": "Предходния месец",
"5minutes": "5 минути",
"10minutes": "10 минути",
"30minutes": "30 минути",
"1hour": "1 час",
"12hours": "12 часа",
"24hours": "24 часа",
"pm": "pm",
"am": "am",
"yr": "г",
"d": "{{time}}д",
"h": "{{time}}ч",
"formattedTimestamp": {
"12hour": "МММ д, ч:мм:сс ааа",
"24hour": "МММ д, ЧЧ:мм:сс"
},
"formattedTimestamp2": {
"12hour": "ММ/дд ч:мм:сса",
"24hour": МММ ЧЧ:мм:сс"
},
"formattedTimestampHourMinute": {
"12hour": "ч:мм ааа",
"24hour": "ЧЧ:мм"
},
"formattedTimestampHourMinuteSecond": {
"12hour": "ч:мм:сс ааа",
"24hour": "ЧЧ:мм:сс"
},
"formattedTimestampMonthDayHourMinute": {
"12hour": "МММ д, ч:мм ааа",
"24hour": "МММ д, ЧЧ:мм"
},
"formattedTimestampMonthDayYear": {
"12hour": "МММ д, гггг",
"24hour": "МММ д, гггг"
}
},
"button": {
"apply": "Приложи",
@ -60,5 +103,8 @@
"count_other": "{{count}} камери"
}
}
},
"label": {
"back": "Върни се"
}
}

View File

@ -1 +1,45 @@
{}
{
"group": {
"add": "Добави група за камери",
"label": "Групи камери",
"edit": "Редактирай група за камери",
"delete": {
"label": "Изтрий група за камери",
"confirm": {
"title": "Потвърди изтриването",
"desc": "Сигурни ли сте, че искате да изтриете група </em>{{name}}</em>?"
}
},
"name": {
"label": "Име",
"placeholder": "Въведете име…",
"errorMessage": {
"mustLeastCharacters": "Името на групата камери трябва да е поне 2 символа.",
"exists": "Групата камери вече съществува.",
"nameMustNotPeriod": "Името на групата камери не трябва да съръжа точка.",
"invalid": "Невалидно име за група камери."
}
},
"cameras": {
"label": "Камери",
"desc": "Изберете камери за тази група."
},
"icon": "Икона",
"success": "Група камери ({{name}}) беше записана.",
"camera": {
"setting": {
"stream": "Поток",
"placeholder": "Изберете поток",
"streamMethod": {
"label": "Метод на стийминг",
"placeholder": "Избери метод на стрийминг",
"method": {
"noStreaming": {
"label": "Без стрийминг"
}
}
}
}
}
}
}

View File

@ -1 +1,22 @@
{}
{
"animal": "Животно",
"dog": "Куче",
"bark": "Лай",
"cat": "Котка",
"horse": "Кон",
"goat": "Коза",
"sheep": "Овца",
"bird": "Птица",
"mouse": "Мишка",
"keyboard": "Клавир",
"vehicle": "Превозно средство",
"boat": "Лодка",
"car": "Кола",
"bus": "Автобус",
"motorcycle": "Мотоциклет",
"train": "Влак",
"bicycle": "Велосипед",
"skateboard": "Скейтборд",
"door": "Врата",
"blender": "Блендер"
}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1,258 @@
{
"time": {
"untilForTime": "Indtil{{time}}",
"untilForRestart": "Indtil Frigate genstarter.",
"untilRestart": "Indtil genstart",
"ago": "{{timeAgo}} siden",
"justNow": "Lige nu",
"today": "I dag",
"yesterday": "I går",
"last7": "Sidste 7 dage",
"last14": "Sidste 14 dage",
"last30": "Sidste 30 dage",
"thisWeek": "Denne uge",
"lastWeek": "Sidste uge",
"thisMonth": "Denne måned",
"lastMonth": "Sidste måned",
"5minutes": "5 minutter",
"10minutes": "10 minutter",
"30minutes": "30 minutter",
"1hour": "1 time",
"12hours": "12 timer",
"24hours": "24 timer",
"pm": "pm",
"am": "am",
"year_one": "{{time}} år",
"year_other": "{{time}} år",
"mo": "{{time}}mo",
"month_one": "{{time}} måned",
"month_other": "{{time}} måneder",
"d": "{{time}}d",
"day_one": "{{time}} dag",
"day_other": "{{time}} dage",
"h": "{{time}}h",
"yr": "{{time}}yr",
"hour_one": "{{time}} time",
"hour_other": "{{time}} timer",
"m": "{{time}}m",
"minute_one": "{{time}} minut",
"minute_other": "{{time}} minutter",
"s": "{{time}}s",
"second_one": "{{time}} sekund",
"second_other": "{{time}} sekunder",
"formattedTimestamp": {
"12hour": "MMM d, h:mm:ss aaa",
"24hour": "MMM d, HH:mm:ss"
},
"formattedTimestamp2": {
"12hour": "MM/dd h:mm:ssa",
"24hour": "d MMM HH:mm:ss"
},
"formattedTimestampHourMinute": {
"12hour": "h:mm aaa",
"24hour": "HH:mm"
},
"formattedTimestampHourMinuteSecond": {
"12hour": "h:mm:ss aaa",
"24hour": "HH:mm:ss"
},
"formattedTimestampMonthDayHourMinute": {
"12hour": "MMM d, h:mm aaa",
"24hour": "MMM d, HH:mm"
},
"formattedTimestampMonthDayYear": {
"12hour": "MMM d, yyyy",
"24hour": "MMM d, yyyy"
},
"formattedTimestampMonthDayYearHourMinute": {
"12hour": "MMM d yyyy, h:mm aaa",
"24hour": "MMM d yyyy, HH:mm"
},
"formattedTimestampMonthDay": "MMM d",
"formattedTimestampFilename": {
"12hour": "MM-dd-yy-h-mm-ss-a",
"24hour": "MM-dd-yy-HH-mm-ss"
}
},
"unit": {
"speed": {
"mph": "mph",
"kph": "km/t"
},
"length": {
"feet": "fod",
"meters": "meter"
}
},
"label": {
"back": "Gå tilbage"
},
"button": {
"apply": "Anvend",
"reset": "Reset",
"done": "Udført",
"enabled": "Aktiveret",
"enable": "Aktiver",
"disabled": "Deaktiveret",
"disable": "Deaktiver",
"save": "Gem",
"saving": "Gemmer…",
"cancel": "Fortryd",
"close": "Luk",
"copy": "Kopier",
"back": "Tilbage",
"history": "Historik",
"fullscreen": "Fuldskærm",
"exitFullscreen": "Afslut Fludskærm",
"pictureInPicture": "Billede i Billede",
"twoWayTalk": "2 vejs samtale",
"cameraAudio": "Kamera Lyd",
"on": "ON",
"off": "OFF",
"edit": "Rediger",
"copyCoordinates": "Kopier koordinater",
"delete": "Slet",
"yes": "Ja",
"no": "Nej",
"download": "Download",
"info": "Info",
"suspended": "Suspenderet",
"unsuspended": "Ophæv suspendering",
"play": "Afspil",
"unselect": "Fravælg",
"export": "Eksporter",
"deleteNow": "Slet nu",
"next": "Næste"
},
"menu": {
"system": "System",
"systemMetrics": "System metrics",
"configuration": "Konfiguration",
"systemLogs": "System logs",
"settings": "Indstillinger",
"configurationEditor": "Konfiguratons Editor",
"languages": "Sprog",
"language": {
"en": "English (Engelsk)",
"es": "Español (Spansk)",
"zhCN": "简体中文 (Forsimplet Kinesisk)",
"hi": "हिन्दी (Hindi)",
"fr": "Français (Fransk)",
"ar": "العربية (Arabisk)",
"pt": "Português (Portugisisk)",
"ru": "Русский (Russisk)",
"de": "Deutsch (Tysk)",
"ja": "日本語 (Japansk)",
"tr": "Türkçe (Tyrkisk)",
"it": "Italiano (Italiensk)",
"nl": "Nederlands (Hollandsk)",
"sv": "Svenska (Svensk)",
"cs": "Čeština (Tjekkisk)",
"nb": "Norsk Bokmål (Norsk Bokmål)",
"ko": "한국어 (Koreansk)",
"vi": "Tiếng Việt (Vietnamesisk)",
"fa": "فارسی (Persisk)",
"pl": "Polski (Polsk)",
"uk": "Українська (Ukrainsk)",
"he": "עברית (Hebraisk)",
"el": "Ελληνικά (Græsk)",
"ro": "Română (Rumænsk)",
"hu": "Magyar (Ungarsk)",
"fi": "Suomi (Finsk)",
"da": "Dansk (Dansk)",
"sk": "Slovenčina (Slovakisk)",
"yue": "粵語 (Kantonesisk)",
"th": "ไทย (Thai)",
"ca": "Català (Katalansk)",
"withSystem": {
"label": "Brug system indstillinger for sprog"
}
},
"appearance": "Udseende",
"darkMode": {
"label": "Mørk tilstand",
"light": "Lys",
"dark": "Mørk",
"withSystem": {
"label": "Brug system indstillinger for mørk tilstand"
}
},
"withSystem": "System",
"theme": {
"label": "Tema",
"blue": "Blå",
"green": "Grøn",
"nord": "Nord",
"red": "Rød",
"highcontrast": "Høj Kontrast",
"default": "Default"
},
"help": "Hjælp",
"documentation": {
"title": "Dokumentation",
"label": "Frigate dokumentation"
},
"restart": "Genstart Frigate",
"live": {
"title": "Live",
"allCameras": "Alle kameraer",
"cameras": {
"title": "Kameraer",
"count_one": "{{count}} Kamera",
"count_other": "{{count}} Kameraer"
}
},
"review": "Review",
"explore": "Udforsk",
"export": "Eksporter",
"uiPlayground": "UI sandkasse",
"faceLibrary": "Face Library",
"user": {
"title": "Bruger",
"account": "Konto",
"current": "Aktiv bruger: {{user}}",
"anonymous": "anonym",
"logout": "Logout",
"setPassword": "Set Password"
}
},
"toast": {
"copyUrlToClipboard": "Kopieret URL til klippebord.",
"save": {
"title": "Gem",
"error": {
"title": "Ændringer kan ikke gemmes: {{errorMessage}}",
"noMessage": "Kan ikke gemme konfigurationsændringer"
}
}
},
"role": {
"title": "Rolle",
"admin": "Admin",
"viewer": "Viewer",
"desc": "Admins har fuld adgang til Frigate UI. Viewers er begrænset til at se kameraer, gennemse items, og historik i UI."
},
"pagination": {
"label": "paginering",
"previous": {
"title": "Forrige",
"label": "Gå til forrige side"
},
"next": {
"title": "Næste",
"label": "Gå til næste side"
},
"more": "Flere sider"
},
"accessDenied": {
"documentTitle": "Adgang forbudt - Frigate",
"title": "Adgang forbudt",
"desc": "Du har ikke tiiladelse til at se denne side."
},
"notFound": {
"documentTitle": "Ikke fundet - Frigate",
"title": "404",
"desc": "Side ikke fundet"
},
"selectItem": "Vælg {{item}}"
}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1,3 @@
{
"selectItem": "Vælg {{item}}"
}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -140,6 +140,7 @@
"fr": "Français (French)",
"ar": "العربية (Arabic)",
"pt": "Português (Portuguese)",
"ptBR": "Português brasileiro (Brazilian Portuguese)",
"ru": "Русский (Russian)",
"de": "Deutsch (German)",
"ja": "日本語 (Japanese)",
@ -164,6 +165,13 @@
"yue": "粵語 (Cantonese)",
"th": "ไทย (Thai)",
"ca": "Català (Catalan)",
"sr": "Српски (Serbian)",
"sl": "Slovenščina (Slovenian)",
"lt": "Lietuvių (Lithuanian)",
"bg": "Български (Bulgarian)",
"gl": "Galego (Galician)",
"id": "Bahasa Indonesia (Indonesian)",
"ur": "اردو (Urdu)",
"withSystem": {
"label": "Use the system settings for language"
}

View File

@ -54,5 +54,9 @@
"pant": "Huohottaa",
"snort": "Haukkua",
"cough": "Yskä",
"sneeze": "Niistää"
"sneeze": "Niistää",
"throat_clearing": "Kurkun selvittäminen",
"sniff": "Poimi",
"run": "Käynnistä",
"shuffle": "Sekoitus"
}

View File

@ -65,6 +65,13 @@
}
},
"streaming": {
"label": "Kuvavirta"
"label": "Kuvavirta",
"restreaming": {
"disabled": "Uudelleentoisto ei ole käytettävissä tällä kameralla.",
"desc": {
"title": "Määritä go2rtc saadaksesi lisäreaaliaikanäkymän vaihtoehtoja ja ääntä tälle kameralle.",
"readTheDocumentation": "Lue dokumentaatio"
}
}
}
}

View File

@ -38,7 +38,8 @@
"label": "Piirteet",
"hasVideoClip": "Videoleike löytyy",
"submittedToFrigatePlus": {
"label": "Lähetetty Frigate+:aan"
"label": "Lähetetty Frigate+:aan",
"tips": "Sinun on ensin suodatettava seuratut kohteet, joilla on tilannekuva.<br /><br />Kohteita, joilla ei ole tilannekuvaa, ei voida lähettää Frigate+:aan."
},
"hasSnapshot": "Tilannekuva löytyy"
},
@ -49,6 +50,13 @@
"scoreAsc": "Kohteen pisteet (Nouseva)",
"scoreDesc": "Kohteen pisteet (Laskeva)",
"speedAsc": "Arvioitu nopeus (Nouseva)",
"speedDesc": "Arvioitu nopeus (Laskeva)"
"speedDesc": "Arvioitu nopeus (Laskeva)",
"relevance": "Olennaisuus"
},
"cameras": {
"label": "Kameran suodattimet",
"all": {
"title": "Kaikki kamerat"
}
}
}

View File

@ -27,10 +27,12 @@
"context": "Frigate lataa semanttista hakua varten vaadittavat upotusmallit. Tämä saattaa viedä useamman minuutin, riippuen yhteytesi nopeudesta.",
"setup": {
"visionModel": "Vision-malli",
"textModel": "Tekstimalli"
"textModel": "Tekstimalli",
"textTokenizer": "Tekstin osioija"
},
"tips": {
"documentation": "Lue dokumentaatio"
"documentation": "Lue dokumentaatio",
"context": "Saatat haluta uudelleenindeksoida seurattavien kohteiden upotukset, kun mallit on ladattu."
},
"error": "Tapahtui virhe. Tarkista Frigaten lokit."
}
@ -74,7 +76,8 @@
"noImageFound": "Tältä aikaleimalta ei löytynyt kuvia.",
"createObjectMask": "Luo kohdemaski",
"scrollViewTips": "Vieritä katsoaksesi merkittäviä hetkiä kohteen elinkaarelta.",
"autoTrackingTips": "Kohteen rajojen sijainti on epätarkka automaattisesti seuraaville kameroille."
"autoTrackingTips": "Kohteen rajojen sijainti on epätarkka automaattisesti seuraaville kameroille.",
"adjustAnnotationSettings": "Säädä merkintäasetuksia"
},
"trackedObjectDetails": "Seurattavien kohteiden tiedot",
"type": {

View File

@ -14,7 +14,8 @@
"person": "Henkilö",
"timestamp": "Aikaleima",
"subLabelScore": "Alinimikkeen pisteet",
"face": "Kasvojen yksityiskohdat"
"face": "Kasvojen yksityiskohdat",
"scoreInfo": "Alatunnisteen pistemäärä on kaikkien tunnistettujen kasvojen varmuustasojen painotettu keskiarvo, joten se voi poiketa tilannekuvassa näkyvästä pistemäärästä."
},
"documentTitle": "Kasvokirjasto - Frigate",
"deleteFaceAttempts": {
@ -31,22 +32,34 @@
"selectItem": "Valitse {{item}}",
"train": {
"empty": "Ei viimeaikaisia kasvojentunnistusyrityksiä",
"title": "Koulutus"
"title": "Koulutus",
"aria": "Valitse kouluta"
},
"collections": "Kokoelmat",
"steps": {
"faceName": "Anna nimi kasvoille",
"uploadFace": "Lähetä kasvokuva",
"nextSteps": "Seuraavat vaiheet"
"nextSteps": "Seuraavat vaiheet",
"description": {
"uploadFace": "Lataa kuva henkilöstä {{name}}, jossa hänen kasvonsa näkyvät suoraan edestä päin. Kuvaa ei tarvitse rajata pelkkiin kasvoihin."
}
},
"createFaceLibrary": {
"title": "Luo kokoelma",
"desc": "Luo uusi kokoelma",
"new": "Luo uusi kasvo"
"new": "Luo uusi kasvo",
"nextSteps": "Hyvän perustan luomiseksi huomioitavaa:<li>Käytä koulutus-välilehteä valitaksesi opetukseen kuvia kustakin tunnistetusta henkilöstä</li><li>Panosta mahdollisimman suoraan otettuihin kuviin; vältä kouluttamista kulmassa kuvatuilla kuvilla.</li></ul>"
},
"selectFace": "Valitse kasvo",
"deleteFaceLibrary": {
"title": "Poista nimi",
"desc": "Haluatko varmasti poistaa kokoelman {{name}}? Tämä poistaa pysyvästi kaikki liitetyt kasvot."
},
"renameFace": {
"title": "Uudelleennimeä kasvot",
"desc": "Anna uusi nimi tälle {{name}}"
},
"button": {
"deleteFaceAttempts": "Poista kasvot"
}
}

View File

@ -37,8 +37,26 @@
"beforeDateBeLaterAfter": "'Ennen' ajan täytyy olla myöhemmin kun 'jälkeen' aika.",
"afterDatebeEarlierBefore": "'Jälkeen' ajan täytyy olla aiemmin kun 'ennen' aika.",
"minScoreMustBeLessOrEqualMaxScore": "Arvon 'min_score' täytyy olla pienempi tai yhtäsuuri kuin 'max_score'.",
"maxScoreMustBeGreaterOrEqualMinScore": "Arvon 'max_score' täytyy olla suurempi tai yhtäsuuri kuin 'min_score'."
"maxScoreMustBeGreaterOrEqualMinScore": "Arvon 'max_score' täytyy olla suurempi tai yhtäsuuri kuin 'min_score'.",
"minSpeedMustBeLessOrEqualMaxSpeed": "'Minimi nopeus' tulee olla pienempi tai yhtäsuuri kuin 'maksimi nopeus'.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "'Maksimi nopeus' tulee olla suurempi tai yhtä suuri kuin 'minimi nopeus'."
}
},
"tips": {
"desc": {
"exampleLabel": "Esimerkki:"
},
"title": "Tekstisuodattimien käyttö"
},
"header": {
"currentFilterType": "Suodata arvoja",
"noFilters": "Suodattimet",
"activeFilters": "Käytössä olevat suodattimet"
}
},
"similaritySearch": {
"title": "Samankaltaisten kohteiden haku",
"active": "Samankaltaisuushaku aktiivinen",
"clear": "Poista samankaltaisuushaku"
}
}

View File

@ -44,7 +44,8 @@
"gpuDecoder": "GPU-dekooderi",
"gpuInfo": {
"vainfoOutput": {
"title": "Vainfon tulostus"
"title": "Vainfon tulostus",
"returnCode": "Paluuarvo: {{code}}"
},
"toast": {
"success": "Kopioi GPU:n tiedot leikepöydälle"

View File

@ -0,0 +1,19 @@
{
"speech": "Fala",
"babbling": "Balbuxo",
"bicycle": "Bicicleta",
"yell": "Berro",
"car": "Coche",
"crying": "Chorando",
"sigh": "Suspiro",
"singing": "Cantando",
"motorcycle": "Motocicleta",
"bus": "Bus",
"train": "Tren",
"boat": "Bote",
"bird": "Paxaro",
"cat": "Gato",
"bellow": "Abaixo",
"whoop": "Ei carballeira",
"whispering": "Murmurando"
}

View File

@ -0,0 +1,13 @@
{
"time": {
"untilForTime": "Até {{time}}",
"untilForRestart": "Até que se reinicie Frigate.",
"justNow": "Xusto agora",
"last7": "Últimos 7 días",
"last14": "Últimos 14 días",
"thisWeek": "Esta semana",
"today": "Hoxe",
"untilRestart": "Ata o reinicio",
"ago": "Fai {{timeAgo}}"
}
}

View File

@ -0,0 +1,12 @@
{
"form": {
"user": "Usuario/a",
"password": "Contrasinal",
"errors": {
"passwordRequired": "Contrasinal obrigatorio",
"unknownError": "Erro descoñecido. Revisa os logs.",
"usernameRequired": "Usuario/a obrigatorio"
},
"login": "Iniciar sesión"
}
}

View File

@ -0,0 +1,20 @@
{
"group": {
"label": "Grupos de cámaras",
"add": "Engadir Grupo de cámaras",
"delete": {
"confirm": {
"title": "Confirma o borrado",
"desc": "Seguro/a que queres borrar o Grupo de cámaras <em>{{name}}</em>?"
},
"label": "Borrar o Grupo de Cámaras"
},
"name": {
"placeholder": "Introduce un nome…",
"errorMessage": {
"nameMustNotPeriod": "Grupo de Cámaras non debe conter un punto."
}
},
"edit": "Editar o Grupo de Cámaras"
}
}

View File

@ -0,0 +1,21 @@
{
"restart": {
"title": "Estás seguro/a que queres reiniciar Frigate?",
"button": "Reiniciar",
"restarting": {
"button": "Forzar reinicio",
"content": "Esta páxina recargarase en {{countdown}} segundos.",
"title": "Frigate está Reiniciando"
}
},
"explore": {
"plus": {
"review": {
"question": {
"label": "Confirma esta etiqueta para Frigate Plus",
"ask_an": "E isto un obxecto <code>{{label}}</code>?"
}
}
}
}
}

View File

@ -0,0 +1,16 @@
{
"filter": "Filtrar",
"labels": {
"label": "Etiquetas",
"count_one": "{{count}} Etiqueta",
"all": {
"short": "Etiquetas",
"title": "Todas as Etiquetas"
}
},
"zones": {
"all": {
"title": "Tódalas zonas"
}
}
}

View File

@ -0,0 +1,8 @@
{
"iconPicker": {
"selectIcon": "Selecciona unha icona",
"search": {
"placeholder": "Pesquisar unha icona…"
}
}
}

View File

@ -0,0 +1,10 @@
{
"button": {
"downloadVideo": {
"label": "Descargar vídeo",
"toast": {
"success": "O teu vídeo de revisión comezou a descargarse."
}
}
}
}

View File

@ -0,0 +1,14 @@
{
"noRecordingsFoundForThisTime": "Non se atoparon grabacións para ese período",
"noPreviewFound": "Non se atopou previsualización",
"submitFrigatePlus": {
"submit": "Enviar",
"title": "Enviar este frame a Frigate+?"
},
"stats": {
"streamType": {
"title": "Tipo de emisión:"
}
},
"noPreviewFoundFor": "Vista Previa non atopada para {{cameraName}}"
}

View File

@ -0,0 +1,18 @@
{
"person": "Persoa",
"bicycle": "Bicicleta",
"airplane": "Avión",
"motorcycle": "Motocicleta",
"bus": "Bus",
"train": "Tren",
"boat": "Bote",
"traffic_light": "Luces de tráfico",
"fire_hydrant": "Boca de incendio",
"street_sign": "Sinal de tráfico",
"stop_sign": "Sinal de Stop",
"parking_meter": "Parquímetro",
"bench": "Banco",
"bird": "Paxaro",
"cat": "Gato",
"car": "Coche"
}

View File

@ -0,0 +1,12 @@
{
"documentTitle": "Editor de configuración - Frigate",
"configEditor": "Editor de Preferencias",
"saveOnly": "Só gardar",
"toast": {
"error": {
"savingError": "Erro gardando configuración"
}
},
"saveAndRestart": "Gardar e Reiniciar",
"copyConfig": "Copiar Configuración"
}

View File

@ -0,0 +1,10 @@
{
"alerts": "Alertas",
"detections": "Deteccións",
"allCameras": "Tódalas cámaras",
"timeline.aria": "Selecciona liña de tempo",
"motion": {
"only": "Só movemento",
"label": "Movemento"
}
}

View File

@ -0,0 +1,12 @@
{
"documentTitle": "Explorar - Frigate",
"generativeAI": "IA xenerativa",
"exploreMore": "Explorar máis obxectos {{label}}",
"exploreIsUnavailable": {
"title": "Explorar non está Dispoñible",
"embeddingsReindexing": {
"finishingShortly": "Rematando ceo",
"startingUp": "Comezando…"
}
}
}

View File

@ -0,0 +1,10 @@
{
"documentTitle": "Exportar - Frigate",
"search": "Pesquisar",
"deleteExport.desc": "Seguro que queres borrar {{exportName}}?",
"editExport": {
"saveExport": "Garda exportación"
},
"deleteExport": "Borrar exportación",
"noExports": "Non se atoparon exportacións"
}

View File

@ -0,0 +1,11 @@
{
"description": {
"addFace": "Navegar para engadir unha nova colección á Libraría de Caras.",
"placeholder": "Introduce un nome para esta colección",
"invalidName": "Nome non válido. Os nomes só poden incluír letras, números, espazos, apóstrofes, guións baixos e guións."
},
"details": {
"unknown": "Descoñecido",
"person": "Persoa"
}
}

View File

@ -0,0 +1,19 @@
{
"documentTitle": "Directo - Frigate",
"documentTitle.withCamera": "{{camera}} - Directo - Frigate",
"twoWayTalk": {
"disable": "Deshabilita a Conversa de dous sentidos",
"enable": "Habilitar a Conversa de dous sentidos"
},
"ptz": {
"move": {
"clickMove": {
"label": "Pincha no frame para centrar a cámara"
}
}
},
"cameraAudio": {
"enable": "Habilitar Audio de cámara"
},
"lowBandwidthMode": "Modo de Baixa Banda Ancha"
}

View File

@ -0,0 +1,11 @@
{
"filter": "Filtrar",
"export": "Exportar",
"calendar": "Calendario",
"toast": {
"error": {
"noValidTimeSelected": "Rango de tempo inválido"
}
},
"filters": "Filtros"
}

View File

@ -0,0 +1,15 @@
{
"search": "Pesquisar",
"savedSearches": "Pesquisas gardadas",
"button": {
"save": "Gardar pesquisa",
"filterActive": "Filtros activos",
"clear": "Borrar pesquisa"
},
"filter": {
"label": {
"cameras": "Cámaras"
}
},
"searchFor": "Procurar por {{inputValue}}"
}

View File

@ -0,0 +1,11 @@
{
"documentTitle": {
"default": "Preferencias - Frigate",
"authentication": "Configuracións de Autenticación - Frigate",
"camera": "Configuracións da Cámara - Frigate",
"general": "Configuracións xerais - Frigate",
"notifications": "Configuración de Notificacións - Frigate",
"enrichments": "Configuración complementarias - Frigate",
"masksAndZones": "Editor de máscaras e zonas - Frigate"
}
}

View File

@ -0,0 +1,17 @@
{
"documentTitle": {
"cameras": "Estatísticas de cámaras - Frigate",
"storage": "Estatísticas de Almacenamento - Frigate",
"general": "Estatísticas Xerais - Frigate",
"enrichments": "Estatísticas complementarias - Frigate",
"logs": {
"frigate": "Rexistros de Frigate - Frigate"
}
},
"title": "Sistema",
"logs": {
"download": {
"label": "Descargar logs"
}
}
}

View File

@ -5,7 +5,7 @@
"untilForRestart": "Amíg a Frigate újraindul.",
"untilRestart": "Amíg újraindul",
"justNow": "Most",
"ago": "{{timeAgo}} ezelőtt",
"ago": "Ennyi ideje: {{timeAgo}}",
"today": "Ma",
"yesterday": "Tegnap",
"last7": "Elmúlt 7 nap",
@ -14,15 +14,15 @@
"thisWeek": "Ezen a héten",
"lastWeek": "Előző héten",
"thisMonth": "Ebben a hónapban",
"lastMonth": "Előző hónap",
"lastMonth": "Előző hónapban",
"5minutes": "5 perc",
"10minutes": "10 perc",
"30minutes": "30 perc",
"1hour": "1 óra",
"12hours": "12 óra",
"24hours": "24 óra",
"pm": "PM",
"am": "AM",
"pm": "du",
"am": "de",
"yr": "{{time}} év",
"mo": "{{time}} hónap",
"d": "{{time}} nap",
@ -41,38 +41,38 @@
"day_one": "{{time}} nap",
"day_other": "{{time}} napok",
"formattedTimestamp": {
"24hour": "HHH n, ÓÓ:pp:mm",
"12hour": "HHH d, ó:pp:mm aaa"
"24hour": "MMM d, HH:mm:ss",
"12hour": "MMM d, h:mm:ss aaa"
},
"formattedTimestampMonthDayYear": {
"12hour": "HHH d, éééé",
"24hour": "HHH n, éééé"
"12hour": "MMM d, yyyy",
"24hour": "MMM d, yyyy"
},
"formattedTimestampHourMinute": {
"24hour": "ÓÓ:pp",
"12hour": "ó:pp aaa"
"24hour": "HH:mm",
"12hour": "h:mm aaa"
},
"formattedTimestamp2": {
"24hour": "n HHH ÓÓ:pp:mm",
"12hour": "HH/NN ó:pp:mma"
"24hour": "d MMM HH:mm:ss",
"12hour": "MM/dd h:mm:ssa"
},
"formattedTimestampHourMinuteSecond": {
"24hour": "ÓÓ:pp:mm",
"12hour": "ó:pp:mm aaa"
"24hour": "HH:mm:ss",
"12hour": "h:mm:ss aaa"
},
"formattedTimestampMonthDayYearHourMinute": {
"24hour": "HHH n éééé, ÓÓ:pp",
"12hour": "HHH n éééé, ó:pp aaa"
"24hour": "MMM d yyyy, HH:mm",
"12hour": "MMM d yyyy, h:mm aaa"
},
"formattedTimestampFilename": {
"24hour": "HH-nn-éé-ÓÓ-pp-mm",
"12hour": "HH-nn-éé-ó-pp-mm-a"
"24hour": "yy-MM-dd-HH-mm-ss",
"12hour": "yy-MM-dd-h-mm-ss-a"
},
"formattedTimestampMonthDayHourMinute": {
"24hour": "HHH n, ÓÓ:pp",
"12hour": "HHH n, ó:pp aaa"
"24hour": "MMM d, HH:mm",
"12hour": "MMM d, h:mm aaa"
},
"formattedTimestampMonthDay": "HHH n"
"formattedTimestampMonthDay": "MMM d"
},
"menu": {
"darkMode": {

View File

@ -22,7 +22,7 @@
"ask_a": "Ez a tárgy egy <code>{{label}}</code>?",
"label": "Erősítse meg ezt a cimkét a Frigate plus felé",
"ask_an": "Ez a tárgy egy <code>{{label}}</code>?",
"ask_full": "Ez egy <code>{{untranslatedLabel}}</code>{{translatedLabel}} tárgy?"
"ask_full": "Ez a tárgy egy <code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
}
}
},

View File

@ -31,7 +31,7 @@
"recordings": {
"documentTitle": "Felvételek - Frigate"
},
"markTheseItemsAsReviewed": "Ezen elwmek megjelölése áttekintettként",
"markTheseItemsAsReviewed": "Ezen elemek megjelölése áttekintettként",
"markAsReviewed": "Megjelölés Áttekintettként",
"selected_one": "{{count}} kiválasztva",
"selected_other": "{{count}} kiválasztva"

View File

@ -6,7 +6,7 @@
"classification": "Osztályozási beállítások - Frigate",
"masksAndZones": "Maszk és zónaszerkesztő - Frigate",
"object": "Hibakeresés - Frigate",
"general": "Áltlános beállítások - Frigate",
"general": "Áltlános Beállítások - Frigate",
"frigatePlus": "Frigate+ beállítások - Frigate",
"notifications": "Értesítések beállítása - Frigate",
"motionTuner": "Mozgás Hangoló - Frigate",
@ -42,7 +42,7 @@
"desc": "Automatikusan váltson át a kamera élő nézetére, amikor aktivitást észlel. Ha ez az opció ki van kapcsolva, akkor az Élő irányítópulton a statikus kameraképek csak percenként egyszer frissülnek."
},
"playAlertVideos": {
"label": "Ria Videók Lejátszása",
"label": "Riasztási Videók Lejátszása",
"desc": "Alapértelmezetten az Élő irányítópulton a legutóbbi riasztások kis, ismétlődő videóként jelennek meg. Kapcsolja ki ezt az opciót, ha csak állóképet szeretne megjeleníteni a legutóbbi riasztásokról ezen az eszközön/böngészőben."
}
},
@ -143,7 +143,7 @@
"success": "A kiegészítő beállítások elmentésre kerültek. A módosítások alkalmazásához indítsa újra a Frigate-et."
},
"unsavedChanges": "Mentetlen gazdagítási beállítás változtatások",
"title": "Kiegészítés Beállítások",
"title": "Kiegészítők Beállítása",
"restart_required": "Újraindítás szükséges (a kiegészítő beállítások megváltoztak)"
},
"notification": {

View File

@ -16,7 +16,8 @@
},
"review": {
"question": {
"label": "Konfirmasi label ini untuk Frigate Plus"
"label": "Konfirmasi label ini untuk Frigate Plus",
"ask_a": "Apakah objek ini adalah sebuah<code>{{label}}</code>?"
}
}
}

View File

@ -11,5 +11,6 @@
"alert": "Tidak ada peringatan untuk ditinjau",
"motion": "Data gerakan tidak ditemukan"
},
"timeline.aria": "Pilih timeline"
"timeline.aria": "Pilih timeline",
"timeline": "Linimasa"
}

View File

@ -7,7 +7,10 @@
"context": "Jelajahi dapat digunakan setelah embedding objek yang dilacak selesai di-reindex.",
"startingUp": "Sedang memulai…",
"estimatedTime": "Perkiraan waktu tersisa:",
"finishingShortly": "Selesai sesaat lagi"
"finishingShortly": "Selesai sesaat lagi",
"step": {
"thumbnailsEmbedded": "Keluku dilampirkan "
}
}
},
"details": {

View File

@ -8,5 +8,6 @@
"delete": "Hapus pencarian yang disimpan",
"filterInformation": "Saring Informasi",
"filterActive": "Filter aktif"
}
},
"trackedObjectId": "Tracked Object ID"
}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

Some files were not shown because too many files have changed in this diff Show More