NixGate/docker/config.yml
2024-03-02 10:44:53 -08:00

234 lines
9.6 KiB
YAML

# https://docs.frigate.video/configuration/reference
# This config uses a PCIe based TPU, records a clip for a person and takes a snapshot for cats and dogs.
mqtt:
enabled: False
database:
path: /db/frigate.db
ffmpeg:
hwaccel_args: preset-vaapi #enables intel HW acceleration
# Using the Google Coral TPUs. Tested the Mini PCIe Accelerator and the M.2 Accelerator A+E key
# https://coral.ai/products/pcie-accelerator https://coral.ai/products/m2-accelerator-ae
detectors:
coral:
type: edgetpu
device: pci:0
detect:
enabled: True
width: 1280
height: 720
fps: 5
objects:
# Optional: list of objects to track from labelmap.txt (default: shown below)
track:
- person
- dog
- cat
# Optional: mask to prevent all object types from being detected in certain areas (default: no mask)
# Checks based on the bottom center of the bounding box of the object.
# NOTE: This mask is COMBINED with the object type specific mask below
mask: 0,0,1000,0,1000,200,0,200
# Optional: filters to reduce false positives for specific object types
filters:
person:
# Optional: minimum width*height of the bounding box for the detected object (default: 0)
min_area: 5000
# Optional: maximum width*height of the bounding box for the detected object (default: 24000000)
max_area: 100000
# Optional: minimum width/height of the bounding box for the detected object (default: 0)
min_ratio: 0.5
# Optional: maximum width/height of the bounding box for the detected object (default: 24000000)
max_ratio: 2.0
# Optional: minimum score for the object to initiate tracking (default: shown below)
min_score: 0.5
# Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
threshold: 0.7
# Optional: mask to prevent this object type from being detected in certain areas (default: no mask)
# Checks based on the bottom center of the bounding box of the object
mask: 0,0,1000,0,1000,200,0,200
# Optional: Motion configuration
# NOTE: Can be overridden at the camera level
motion:
# Optional: The threshold passed to cv2.threshold to determine if a pixel is different enough to be counted as motion. (default: shown below)
# Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
# The value should be between 1 and 255.
threshold: 25
# Optional: Minimum size in pixels in the resized motion image that counts as motion (default: 30)
# Increasing this value will prevent smaller areas of motion from being detected. Decreasing will
# make motion detection more sensitive to smaller moving objects.
# As a rule of thumb:
# - 15 - high sensitivity
# - 30 - medium sensitivity
# - 50 - low sensitivity
contour_area: 30
# Optional: Alpha value passed to cv2.accumulateWeighted when averaging the motion delta across multiple frames (default: shown below)
# Higher values mean the current frame impacts the delta a lot, and a single raindrop may register as motion.
# Too low and a fast moving person wont be detected as motion.
delta_alpha: 0.2
# Optional: Alpha value passed to cv2.accumulateWeighted when averaging frames to determine the background (default: shown below)
# Higher values mean the current frame impacts the average a lot, and a new object will be averaged into the background faster.
# Low values will cause things like moving shadows to be detected as motion for longer.
# https://www.geeksforgeeks.org/background-subtraction-in-an-image-using-concept-of-running-average/
frame_alpha: 0.2
# Optional: Height of the resized motion frame (default: 50)
# This operates as an efficient blur alternative. Higher values will result in more granular motion detection at the expense
# of higher CPU usage. Lower values result in less CPU, but small changes may not register as motion.
frame_height: 50
# Optional: motion mask
# NOTE: see docs for more detailed info on creating masks
mask: 0,900,1080,900,1080,1920,0,1920
# Optional: improve contrast (default: shown below)
# Enables dynamic contrast improvement. This should help improve night detections at the cost of making motion detection more sensitive
# for daytime.
improve_contrast: False
# Optional: Delay when updating camera motion through MQTT from ON -> OFF (default: shown below).
mqtt_off_delay: 30
# Optional: Record configuration
# NOTE: Can be overridden at the camera level
record:
# Optional: Enable recording (default: shown below)
# WARNING: If recording is disabled in the config, turning it on via
# the UI or MQTT later will have no effect.
enabled: True
# 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: Retention settings for recording
retain:
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
days: 0
# Optional: Mode for retention. Available options are: all, motion, and active_objects
# all - save all recording segments regardless of activity
# motion - save all recordings segments with any detected motion
# active_objects - save all recording segments with active/moving objects
# NOTE: this mode only applies when the days setting above is greater than 0
mode: motion
# Optional: Event recording settings
events:
# Optional: Number of seconds before the event to include (default: shown below)
pre_capture: 5
# Optional: Number of seconds after the event to include (default: shown below)
post_capture: 5
# Optional: Objects to save recordings for. (default: all tracked objects)
objects:
- person
# Optional: Restrict recordings to objects that entered any of the listed zones (default: no required zones)
required_zones: []
# Optional: Retention settings for recordings of events
retain:
# Required: Default retention days (default: shown below)
default: 10
# Optional: Mode for retention. (default: shown below)
# all - save all recording segments for events regardless of activity
# motion - save all recordings segments for events with any detected motion
# active_objects - save all recording segments for event with active/moving objects
#
# NOTE: If the retain mode for the camera is more restrictive than the mode configured
# here, the segments will already be gone by the time this mode is applied.
# For example, if the camera retain mode is "motion", the segments without motion are
# never stored, so setting the mode to "all" here won't bring them back.
mode: motion
# Optional: Per object retention days
objects:
person: 30
# Optional: Configuration for the jpg snapshots written to the clips directory for each event
# NOTE: Can be overridden at the camera level
snapshots:
# Optional: Enable writing jpg snapshot to /media/frigate/clips (default: shown below)
enabled: True
# Optional: save a clean PNG copy of the snapshot image (default: shown below)
retain:
# Required: Default retention days (default: shown below)
default: 30
# Optional: Per object retention days
objects:
person: 30
## Cameras setup.
## Replace USER with your Cameras login user and CAMERA_PASSWORDS with the password for each login.
## Check IPs in the URLs.
## This is how my Riolink RLC-410-5MP need to be configured to have both streams available and accessible in Home Assistant
go2rtc:
streams:
username: USER
password: CAMERA_PASSWORDS
frontdoor:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X1:554/h264Preview_01_main
frontdoor_sub:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X1:554/h264Preview_01_sub
driveway:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X2:554/h264Preview_01_main
driveway_sub:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X2:554/h264Preview_01_sub
westgate:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X3:554/h264Preview_01_main
westgate_sub:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X3:554/h264Preview_01_sub
eastgate:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X4:554/h264Preview_01_main
eastgate_sub:
- rtsp://USER:CAMERA_PASSWORDS@192.168.1.X4:554/h264Preview_01_sub
cameras:
frontdoor:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/frontdoor
roles:
- record
- path: rtsp://127.0.0.1:8554/frontdoor_sub
roles:
- detect
driveway:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/driveway
roles:
- record
- path: rtsp://127.0.0.1:8554/driveway_sub
roles:
- detect
westgate:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/westgate
roles:
- record
- path: rtsp://127.0.0.1:8554/westgate_sub
roles:
- detect
eastgate:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/eastgate
roles:
- record
- path: rtsp://127.0.0.1:8554/eastgate_sub
roles:
- detect
# Birdseye creates a grid of the available cameras to see all at once.
birdseye:
enabled: True
mode: continuous
restream: False
width: 1920
height: 1080
quality: 4
rtmp:
enabled: false