Files
homelab-configs/jgpc/frigate/config.yml
T

283 lines
7.0 KiB
YAML

# Global Birdseye Settings
birdseye:
enabled: false
restream: true
width: 1280
height: 720
quality: 8
mode: objects
auth:
enabled: false
trusted_proxies:
- 192.168.88.110
- 192.168.88.0/24
- 172.16.0.0/12
- 127.0.0.1
proxy:
default_role: viewer
header_map:
user: Remote-User
role: Remote-Role
mqtt:
enabled: true
host: 192.168.88.39
user: mqtt-user
password: jogiocsi
# go2rtc stream layout:
#
# ALL cameras use H.265 (HEVC) on the main stream. Chrome/Firefox cannot play
# H.265 via MSE, so each camera has two go2rtc streams:
#
# camera_h265 = native H.265 from camera (stable go2rtc native RTSP connection)
# → used by Frigate ffmpeg for RECORDING (stream copy, keeps H.265 quality)
# camera = H.264 transcoded via "ffmpeg:camera_h265#video=h264"
# ffmpeg reads from go2rtc's localhost re-stream (not directly from camera)
# → used by Frigate for LIVE VIEW in browser (Chrome can play H.264)
# → reading from localhost avoids EOF crashes seen with direct camera connections
#
# All cameras:
# camera_sub = sub-stream → used for DETECTION only (low-res, efficient)
go2rtc:
streams:
# --- Native H.265 connections (stable, used for recording) ---
front_driveway_h265:
- rtsp://admin:Jogiocsi1211@192.168.88.105:554/h264Preview_01_main
front_right_h265:
- rtsp://admin:Jogiocsi1211@192.168.88.100:554/h264Preview_01_main
deck_h265:
- rtsp://admin:Jogiocsi1211@192.168.88.101:554/h264Preview_01_main
back_yard_h265:
- rtsp://admin:Jogiocsi1211@192.168.88.102:554/h264Preview_01_main
front_yard_h265:
- rtsp://admin:Jogiocsi1211@192.168.88.104:554/h264Preview_01_main
shop_h265:
- rtsp://admin:Jogiocsi1211@192.168.88.103:554/h264Preview_01_main
# --- H.264 transcoded (browser-compatible live view) ---
# ffmpeg reads from go2rtc's localhost re-stream, not directly from camera.
# This avoids the EOF crashes seen when ffmpeg connects directly to Reolink cameras.
front_driveway:
- "ffmpeg:front_driveway_h265#video=h264"
front_right:
- "ffmpeg:front_right_h265#video=h264"
deck:
- "ffmpeg:deck_h265#video=h264"
back_yard:
- "ffmpeg:back_yard_h265#video=h264"
front_yard:
- "ffmpeg:front_yard_h265#video=h264"
shop:
- "ffmpeg:shop_h265#video=h264"
# --- Sub (low-resolution) streams for detection only ---
front_driveway_sub:
- rtsp://admin:Jogiocsi1211@192.168.88.105:554/h264Preview_01_sub
front_yard_sub:
- rtsp://admin:Jogiocsi1211@192.168.88.104:554/h264Preview_01_sub
front_right_sub:
- rtsp://admin:Jogiocsi1211@192.168.88.100:554/h264Preview_01_sub
deck_sub:
- rtsp://admin:Jogiocsi1211@192.168.88.101:554/h264Preview_01_sub
back_yard_sub:
- rtsp://admin:Jogiocsi1211@192.168.88.102:554/h264Preview_01_sub
shop_sub:
- rtsp://admin:Jogiocsi1211@192.168.88.103:554/h264Preview_01_sub
ffmpeg:
hwaccel_args: preset-nvidia-h264
record:
enabled: true
alerts:
retain:
days: 30
detections:
retain:
days: 30
continuous:
days: 0
motion:
days: 30
snapshots:
enabled: true
retain:
default: 30
detectors:
onnx:
type: onnx
model:
model_type: yolo-generic
width: 320
height: 320
input_tensor: nchw
input_dtype: float
path: /config/model_cache/onnx/yolov9-t-320.onnx
labelmap_path: /labelmap/coco-80.txt
detect:
enabled: true
lpr:
enabled: true
device: GPU
model_size: small
known_plates:
Joe:
- "ABC1234"
Cynthia:
- "ABC4567"
Wesley:
- "XYZ9876"
replace_rules:
- pattern: "-"
replacement: ""
- pattern: " "
replacement: ""
cameras:
front_driveway:
enabled: true
ui:
order: 1
ffmpeg:
inputs:
# Sub stream → detect only (low-res, efficient)
- path: rtsp://127.0.0.1:8554/front_driveway_sub
roles: [detect]
# Native H.265 stream → record (best quality, stream copy)
- path: rtsp://127.0.0.1:8554/front_driveway_h265
roles: [record]
detect:
width: 1536
height: 432
fps: 5
objects:
track: [person, car, dog, cat, license_plate]
notifications:
enabled: true
zones:
front_driveway_zone:
coordinates: 0.515,0.475,0.715,0.484,0.989,0.857,0.97,0.968,0.541,0.982
loitering_time: 0
friendly_name: Front Driveway Zone
review:
alerts:
required_zones: front_driveway_zone
front_yard:
enabled: true
ui:
order: 2
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/front_yard_sub
roles: [detect]
# Native H.265 stream → record (best quality, stream copy)
- path: rtsp://127.0.0.1:8554/front_yard_h265
roles: [record]
detect:
width: 640
height: 360
fps: 5
objects:
track: [person, car, dog, cat]
notifications:
enabled: true
front_right:
enabled: true
ui:
order: 6
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/front_right_sub
roles: [detect]
- path: rtsp://127.0.0.1:8554/front_right_h265
roles: [record]
detect:
width: 896
height: 512
fps: 5
objects:
track: [person, car, dog, cat]
motion:
mask: 0.259,0.36,0.605,0.193,0.616,0.264,0.266,0.419
notifications:
enabled: true
deck:
enabled: true
ui:
order: 4
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/deck_sub
roles: [detect]
- path: rtsp://127.0.0.1:8554/deck_h265
roles: [record]
detect:
width: 640
height: 360
fps: 5
objects:
track: [person, car, dog, cat]
notifications:
enabled: true
motion:
mask:
- 0.761,0.201,0.922,0.254,0.915,0.34,0.761,0.272
- 0.205,0.528,0.266,0.452,0.314,0.603,0.243,0.643
back_yard:
enabled: true
ui:
order: 5
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/back_yard_sub
roles: [detect]
- path: rtsp://127.0.0.1:8554/back_yard_h265
roles: [record]
detect:
width: 640
height: 360
fps: 5
objects:
track: [person, car, dog, cat]
motion:
mask:
- 0.587,0.193,0.578,0.052,1,0.253,1,0.385
- 0.25,0.272,0.237,0.373,0.258,0.364
notifications:
enabled: true
shop:
enabled: true
ui:
order: 3
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/shop_sub
roles: [detect]
# Native H.265 stream → record (best quality, stream copy)
- path: rtsp://127.0.0.1:8554/shop_h265
roles: [record]
detect:
width: 640
height: 360
fps: 5
objects:
track: [person, car, dog, cat]
motion:
mask:
- 0.644,0.053,1,0.216,0.996,0.267,0.64,0.134
- 0.427,0.424,0.522,0.418,0.521,0.574,0.452,0.567
notifications:
enabled: true
version: 0.17-0