mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-06-21 11:51:53 +03:00
Adds a per-camera ONVIF subscriber that lets cameras with native
hardware motion detection (e.g. OpenIPC firmware for HiSilicon,
Ingenic and SigmaStar SoCs; many ONVIF Profile-M devices) replace
Frigate's per-frame CPU motion analysis. Two standard ONVIF
transports are consumed in parallel:
- WS-BaseNotification PullPoint for the binary motion state
(tns1:RuleEngine/CellMotionDetector/Motion IsMotion=true|false,
with tns1:VideoSource/MotionAlarm State=true|false accepted as
a fallback for cameras that only publish the legacy topic).
- RTSP analytics metadata stream (application/vnd.onvif.metadata)
for the per-frame cell grid (tt:MotionInCells, base64 + PackBits
bit-packed bitmap). Cell layout is discovered once at startup via
AnalyticsService.GetAnalyticsModules and the camera's CellLayout
transformation is used to map cells to detect-frame pixel
rectangles via connected-components.
New config:
onvif.events.{enabled, subscription_timeout, use_metadata_stream}
motion.source: internal (default) | onvif
When motion.source: onvif, ImprovedMotionDetector is skipped and
motion_boxes come from the camera. Internal motion remains the
default; the new path is fully opt-in.
|
||
|---|---|---|
| .. | ||
| api | ||
| camera | ||
| comms | ||
| config | ||
| data_processing | ||
| db | ||
| detectors | ||
| embeddings | ||
| events | ||
| genai | ||
| images | ||
| jobs | ||
| motion | ||
| object_detection | ||
| output | ||
| ptz | ||
| record | ||
| review | ||
| service_manager | ||
| stats | ||
| test | ||
| track | ||
| util | ||
| video | ||
| __init__.py | ||
| __main__.py | ||
| app.py | ||
| const.py | ||
| debug_replay.py | ||
| ffmpeg_presets.py | ||
| log.py | ||
| models.py | ||
| mypy.ini | ||
| plus.py | ||
| storage.py | ||
| timeline.py | ||
| types.py | ||
| watchdog.py | ||