Sean Vig
80f8256422
Improve handling of object matching
...
Use `np.unique` to determine the correct set of row/col pairs to iterate
over when doing the object matching without needing to track which rows
or columns have already been seen. Add to some of the accompanying
documentation to clarify this algorithm.
Also fix what looks to be an erroneous early return, and change this to
a continue.
2021-05-22 08:04:38 -05:00
Sean Vig
57864f2be6
Wait on stop event when possible
...
Generally eliminate the `while True` loops while waiting for a stop
event and prefer to condition the loops on if the stop event is set,
blocking on that where it makes sense. This generally comes in 3
flavors. First and simplest, when there is a sleep and the stop event
is the only thing the loop blocks on, instead do a check using
`stop_event.wait(timeout)` to instead block on the stop event for the
designated amount of time. Second, when there is a different event that
is blocking in the loop, condition the loop on `stop_event.is_set()`
rather than breaking when it is set. Finally, when there is a separate
internal condition that requires a counter, have the loop iterate over
the counter and use `if stop_event.wait(timeout)` internal to the loop.
2021-05-22 07:54:16 -05:00
Jason Hunter
aab6a00e4c
Add support for NGINX VOD Module
2021-05-22 07:48:44 -05:00
Sean Vig
a4e6d9ed9a
Improve ffprobe executions
...
When running ffprobe, use `subprocess.run` rather than
`subprocess.Popen`. This simplifies the handling that is needed to run
and process the outputs. Here, filename parsing is also simplified by
explicitly removing the file extension with `os.path.splitext` and
forcing a single split into the camera name and the formatted date.
2021-05-22 07:48:00 -05:00
Mitch Ross
ebb6d348a3
feat(web): Delete events from Event page and API ( #991 )
...
Co-authored-by: Scott Roach <scott@thinkpivot.io>
Co-authored-by: Paul Armstrong <paul@spaceyak.com>
2021-05-12 08:19:02 -07:00
Jason Hunter
482399d82f
allow logger daemon process to be killed with the main thread, thus allowing us to continue logging during shutdown
2021-05-06 07:01:33 -05:00
Blake Blackshear
4252857e19
remove tmpfs_cache_size option
2021-02-25 07:01:59 -06:00
Blake Blackshear
6d12a34c40
remove thumbnail attribute if null
2021-02-25 07:01:59 -06:00
Blake Blackshear
9e126a4b91
style cleanup
2021-02-25 07:01:59 -06:00
Blake Blackshear
39ff49e054
formatting cleanup
2021-02-25 07:01:57 -06:00
Blake Blackshear
0344d61b26
use gevent sleep to prevent mjpeg from blocking
2021-02-25 06:34:36 -06:00
Paul Armstrong
e399790442
feat(web): mqtt for stats
2021-02-20 08:20:17 -06:00
Blake Blackshear
1a7853a47e
subscribe in the connect callback ( fixes #814 )
2021-02-20 08:20:17 -06:00
Blake Blackshear
b6572b7272
add some error handling to mqtt relay
2021-02-20 08:20:17 -06:00
Blake Blackshear
57ced2c284
constrain websockets to frigate topics
2021-02-20 08:20:17 -06:00
Blake Blackshear
26a3491466
revise log messages
2021-02-20 08:20:17 -06:00
Blake Blackshear
eed8463832
relay messages from sockets to mqtt
2021-02-20 08:20:17 -06:00
Blake Blackshear
718b4f3fd7
relay mqtt to clients
2021-02-20 08:20:17 -06:00
Blake Blackshear
22461d1728
simple echo websocket working
2021-02-20 08:20:17 -06:00
Blake Blackshear
a661fddaf3
fix cache cleanup for large full disks
2021-02-20 08:20:17 -06:00
Blake Blackshear
1b85e561b9
only save the event to the database if a snapshot or clip exists
2021-02-20 08:20:17 -06:00
Blake Blackshear
513a099c24
better error handling ( fixes #739 )
2021-02-20 08:20:17 -06:00
Blake Blackshear
e299e73a68
ignore detections that don't overlap with motion
2021-02-20 08:20:17 -06:00
Blake Blackshear
9550ac7422
fix intersection calculation
2021-02-20 08:20:17 -06:00
Blake Blackshear
01c3b4fa6e
try and ensure database closes cleanly
2021-02-20 08:20:17 -06:00
Blake Blackshear
165ca8fbc7
purge duplicate events during cleanup
2021-02-20 08:20:17 -06:00
Blake Blackshear
ce90ae343c
add global object mask
2021-02-20 08:20:17 -06:00
Blake Blackshear
d51e9446ff
add camera level ffmpeg params
2021-02-20 08:20:17 -06:00
Blake Blackshear
d3524ee46f
adjust jpg quality in other locations too
2021-02-20 08:20:17 -06:00
Blake Blackshear
121ea37825
allow defining required zones for snapshots/clips/mqtt
2021-02-20 08:20:17 -06:00
Blake Blackshear
9592d95599
proactively clean up cache when above 90% use
2021-02-20 08:20:17 -06:00
Blake Blackshear
d6faa18adb
increase default max_disappeared to 5x FPS
2021-02-20 08:20:17 -06:00
Blake Blackshear
1cbe6f77ee
only run detection on objects that intersect with motion
2021-02-20 08:20:17 -06:00
Blake Blackshear
4f5d4e36b7
add disk usage to stats
2021-02-20 08:20:17 -06:00
Paul Armstrong
163025c1f2
fix(app): reduce JPEG quality to drastically improve size
2021-02-20 08:20:17 -06:00
Paul Armstrong
e6516235fa
feat(web): auto-paginate events page
2021-01-31 06:18:35 -06:00
Blake Blackshear
40d5a9f890
change default log level
2021-01-31 06:18:35 -06:00
Blake Blackshear
ee3e744cc6
tail last 100 lines of ffmpeg logs and dump when failure detected
2021-01-31 06:18:35 -06:00
Blake Blackshear
b55bd1e027
add param to reduce response sizes by excluding thumbnails in api response
2021-01-31 06:18:35 -06:00
Blake Blackshear
630c2ee6f6
use sqlitequeuedb
2021-01-26 21:40:33 -06:00
Blake Blackshear
d31c295598
add debug log when cache is cleaned up
2021-01-26 21:40:33 -06:00
Blake Blackshear
a7bb0931c4
if detection stopped, assume the container needs a restart
2021-01-26 21:40:33 -06:00
Blake Blackshear
d315dbea22
rate limit tracked object updates to every 5 seconds
2021-01-26 21:40:33 -06:00
Blake Blackshear
8db7ab6724
add snapshot endpoint that works during the event fixes #575
2021-01-26 21:40:33 -06:00
Blake Blackshear
9a2c034ae8
get the thumbnail instead of the full frame
2021-01-26 21:40:33 -06:00
Blake Blackshear
2885b80a13
dont wait forever for the cache
2021-01-26 21:40:33 -06:00
Blake Blackshear
4a85156e87
fix initial switch state
2021-01-26 21:40:33 -06:00
Blake Blackshear
1785c69e1b
handle exception when frame isnt in cache
2021-01-26 21:40:33 -06:00
Blake Blackshear
11016b8486
ensure error message with missing config is printed
2021-01-26 21:40:33 -06:00
Blake Blackshear
1e84f08018
fix mqtt switch handling
2021-01-26 21:40:33 -06:00
Blake Blackshear
7f663328dc
initialize detection correctly from config
2021-01-26 21:40:33 -06:00
Blake Blackshear
70167a34b6
fix zone config
2021-01-26 21:40:33 -06:00
Blake Blackshear
eb0a5e1c55
rename snapshot endpoint to thumbnail
2021-01-26 21:40:33 -06:00
Blake Blackshear
47ac77dbb0
mqtt tweaks for switches
2021-01-26 21:40:33 -06:00
Blake Blackshear
ec84847be7
allow summary data to be filtered
2021-01-26 21:40:33 -06:00
Blake Blackshear
8762da627b
snapshots config typo
2021-01-26 21:40:33 -06:00
Blake Blackshear
3fab321045
update object filters to inherit like motion settings
2021-01-26 21:40:33 -06:00
Blake Blackshear
9451048574
remove support for image masks
2021-01-26 21:40:33 -06:00
Blake Blackshear
46c002038b
don't fallback to the CPU
...
fixes #381
2021-01-26 21:40:33 -06:00
Blake Blackshear
d1d833ea9a
add change type to events topic
...
#476
2021-01-26 21:40:33 -06:00
Blake Blackshear
c1f0750526
ensure each camera has a detect role set
2021-01-26 21:40:33 -06:00
Blake Blackshear
89e02b6956
add detection enable to config
...
fixes #482
2021-01-26 21:40:33 -06:00
Blake Blackshear
97e8258288
add env vars to config
...
fixes #509
2021-01-26 21:40:33 -06:00
Blake Blackshear
39040c1874
enable and disable detection via mqtt
2021-01-26 21:40:33 -06:00
Blake Blackshear
bca0531963
handle null thumbnail data
2021-01-26 21:40:33 -06:00
Blake Blackshear
b2c7fc8f5b
add mask as object filter
2021-01-26 21:40:33 -06:00
Blake Blackshear
96ac2c29d6
add object masks and move moton mask
2021-01-26 21:40:33 -06:00
Blake Blackshear
14a5118b4d
add missing global shapshots config
2021-01-26 21:40:33 -06:00
Paul Armstrong
c618867941
feat!: web user interface
2021-01-26 21:40:33 -06:00
Blake Blackshear
5ad4017510
try to cleanup some migration logging
2021-01-26 21:40:33 -06:00
Blake Blackshear
63e14a98f9
add retention settings for snapshots
2021-01-26 21:40:33 -06:00
Blake Blackshear
25e3fe8eab
init variables on camera state
2021-01-26 21:40:33 -06:00
Blake Blackshear
840f046572
handle process exit exceptions
2021-01-26 21:40:33 -06:00
Blake Blackshear
89e3c2e4b1
store has_clip and has_snapshot on events
2021-01-26 21:40:33 -06:00
Blake Blackshear
c770470b58
add database migrations
2021-01-26 21:40:33 -06:00
Nat Morris
4619836122
Set titles for forked processes
2021-01-26 21:40:33 -06:00
Nat Morris
76403bba8e
New stats module, refactor stats generation out of http module.
...
StatsEmitter thread to send stats to MQTT every 60 seconds by default, optional stats_interval config value.
New service stats attribute, containing uptime in seconds and version.
2021-01-26 21:40:33 -06:00
Blake Blackshear
a9afa303a2
turn off snapshots via mqtt
2021-01-26 21:40:33 -06:00
Blake Blackshear
e5399ae07a
enable turning clips on and off via mqtt
2021-01-26 21:40:33 -06:00
Blake Blackshear
80a5a7b129
cleanup save_Clips/clips inconsistency
2021-01-26 21:40:33 -06:00
Blake Blackshear
9dc97d4b6b
add jpg snapshots to disk and clean up config
2021-01-26 21:40:33 -06:00
Paul Armstrong
d8c9169af2
fix: ensure timestamp is drawn above mask
2021-01-26 21:40:33 -06:00
kluszczyn
b0b2d9d972
Recordings - fix expire_file
2021-01-26 21:40:33 -06:00
Blake Blackshear
fc04bc6046
better mask error handling
2021-01-26 21:40:33 -06:00
Blake Blackshear
9f504253fb
fix tmpfs
2021-01-26 21:40:33 -06:00
Blake Blackshear
961997e078
remove redundant error output
2021-01-26 21:40:33 -06:00
Blake Blackshear
363594a9a2
use CACHE_DIR constant
2021-01-26 21:40:33 -06:00
Blake Blackshear
247e2677f3
enable mounting tmpfs volume on start
2021-01-26 21:40:33 -06:00
Blake Blackshear
bc8b85860c
update process clip for latest changes
2021-01-26 21:40:33 -06:00
Blake Blackshear
44d45c5880
publish event updates on zone change
2021-01-26 21:40:33 -06:00
Blake Blackshear
2cc9a15f6a
handle scenario with empty cache
2021-01-26 21:40:33 -06:00
Blake Blackshear
32fb76b3d1
add num_threads fixes #322
2021-01-26 21:40:33 -06:00
Blake Blackshear
8d52e2635a
optimize clips fixes #299
2021-01-26 21:40:33 -06:00
Blake Blackshear
f20e1f20a6
add post_capture option
2021-01-26 21:40:33 -06:00
Blake Blackshear
af8594c5c6
re-crop to the object rather than the region
2021-01-26 21:40:33 -06:00
Blake Blackshear
899d41f361
allow runtime drawing settings for mjpeg and latest
2021-01-26 21:40:33 -06:00
Blake Blackshear
7dc6382c90
allow the mask to be a list of masks
2021-01-26 21:40:33 -06:00
Blake Blackshear
e8009c2d26
adding version endpoint
2021-01-26 21:40:33 -06:00
Blake Blackshear
3bc7cdaab6
configurable motion and detect settings
2021-01-26 21:40:33 -06:00
Blake Blackshear
8f68df60c7
fix test
2021-01-26 21:40:33 -06:00