blakeblackshear / frigate

NVR with realtime local object detection for IP cameras
https://frigate.video
MIT License
18.44k stars 1.68k forks source link

[Support]: #9523

Closed dopeytree closed 8 months ago

dopeytree commented 8 months ago

Describe the problem you are having

Someone has pushed v13 onto the v12 channel on unraid without warning people.

So now I need to fiddle around updating my config while in the meantime I have no cctv. Its v13 even stable yet?

Please can we add this into the breaking changes for v13..0 that you'll need to rejig the config files and retune everything? This is why I was running v13 in a separate test container so that v12 & v13 do not get contaminated.

Also what happens to all existing v12 recordings?

Version

0.13.0-01e2d20

Frigate config file

# Configuration File
# Used https://docs.frigate.video/configuration/#vscode-configuration-schema

mqtt:
  enabled: true
  host: 192.168.22.2
  port: 1883
   # Optional: topic prefix (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: user
  user:
  # Optional: password
  # NOTE: Environment variables that begin with 'FRIGATE_' may be referenced in {}.
  #       eg. password: '{FRIGATE_MQTT_PASSWORD}'
  password:
  # Optional: interval in seconds for publishing stats (default: shown below)
  stats_interval: 60

detectors:
  coral:
    type: edgetpu
    device: usb   

# Optional: Detect configuration
# NOTE: Can be overridden at the camera level
detect:
  # Optional: width of the frame for the input with the detect role (default: shown below)
  #width: 1280
  # Optional: height of the frame for the input with the detect role (default: shown below)
  #height: 720
  # Optional: desired fps for your camera for the input with the detect role (default: shown below)
  # NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
  #fps: 5
  # Optional: enables detection for the camera (default: True)
  enabled: true
  # Optional: Number of frames without a detection before Frigate considers an object to be gone. (default: 5x the frame rate)
  max_disappeared: 75
  # Optional: Configuration for stationary object tracking
  stationary:
    # Optional: Frequency for confirming stationary objects (default: shown below)
    # When set to 0, object detection will not confirm stationary objects until movement is detected.
    # If set to 10, object detection will run to confirm the object still exists on every 10th frame.
    interval: 10
    # Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
    threshold: 20

# 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.3
  # 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: 30
  # 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: true

# Optional: ffmpeg configuration
# More information about presets at https://docs.frigate.video/configuration/ffmpeg_presets
ffmpeg:
  # Optional: global ffmpeg args (default: shown below)
  global_args: -hide_banner -loglevel warning -threads 2
  # Optional: global hwaccel args (default: shown below)
  # NOTE: See hardware acceleration docs for your specific device
  hwaccel_args: preset-vaapi
  # Optional: global input args (default: shown below)
  input_args: preset-record-generic-audio-copy
  # Optional: global output args
  output_args:
    # Optional: output args for detect streams (default: shown below)
    detect: -threads 2 -f rawvideo -pix_fmt yuv420p
    # Optional: output args for record streams (default: shown below)
    record: preset-record-generic-audio-copy
    # Optional: output args for rtmp streams (default: shown below)
    rtmp: preset-rtmp-generic

# Optional: Restream configuration
# Uses https://github.com/AlexxIT/go2rtc (v1.7.1)
go2rtc:
   streams:
    barn_catflap : ffmpeg:rtsp://MPG7QbYQ:ICRGvtBU2xo3DxMy@192.168.22.202:554/live/ch0
      #
    #road_1080p HQ: ffmpeg:rtsp://EWLHSHKY:XGEJzBByF2IE3c@192.168.44.5:554/live/ch0
      #
    road_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.2:554/H265/ch1/main/av_stream
      #
    porch_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.3:554/H265/ch1/main/av_stream
      #
    bird_cam HQ:  ffmpeg:rtsp://admin:annke2023@10.0.0.7:554/H265/ch1/main/av_stream
      #
    barn HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.4:554/H265/ch1/main/av_stream
      #
    kitchen_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.5:554/H265/ch1/main/av_stream
      #
    house_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.6:554/H265/ch1/main/av_stream
      #

cameras:
  #
  barn_catflap: #Cam name: Barn Catflap     #Brand: wansview   #Quality:1080p    #Link:WIFI
    snapshots:
      enabled: true
      bounding_box: true
      quality: 99
    #  
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://MPG7QbYQ:ICRGvtBU2xo3DxMy@192.168.22.202:554/live/ch1 # SD Link
          input_args: preset-rtsp-generic
          roles:
            - detect
        - path: rtsp://192.168.22.2:8554/barn_catflap?mp4  # HD Link
          input_args: preset-rtsp-restream
          roles:
            - record
    detect:
      width: 768  
      height: 432
      fps: 4
      stationary:
        interval: 0
        threshold: 70
    motion:
      mask:
        - 522,26,768,31,768,0,524,0
    objects:
      track:
        - dog
        - cat
      #filters:
        #
    record:
      enabled: true
      retain:
        days: 7
        mode: motion
      events:
        pre_capture: 5
        post_capture: 5
        objects:
        - dog
        - cat
        retain:
          default: 28
          mode: active_objects         

  #
  bird_cam: #Cam Name: Bird Cam (kitchen cat flap)   #Brand: Annke c500   #Quality:3k    #Link:POE
    snapshots:
      enabled: true
      bounding_box: false
      quality: 100
      #required_zones:
          #- bird-zone
    #  
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.7:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
        - path: rtsp://192.168.22.2:8554/bird_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream
          roles:
            - record
    detect:
      width: 640  
      height: 360
      fps: 4
      stationary:
        interval: 0
        threshold: 70
    objects:
      track:
        - bird
        - person
        - cat
        - dog
      #filters:
        #bird:
          #min_area: 1000
          #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
    record:
      enabled: true
      retain:
        days: 7
        mode: motion
      events:
        pre_capture: 5
        post_capture: 5
        objects:
        - bird
        - person
        - dog
        - cat
        retain:
          default: 28
          mode: active_objects 
     # Optional: Configuration for the jpg snapshots published via MQTT        
    mqtt:
      enabled: true
      bounding_box: false #this will get rid of the box around the bird. We already know it is a bird. Sheesh.
      timestamp: false #this will get rid of the time stamp in the image. 
      quality: 100 #default quality is 70, which will get you lots of compression artifacts

  porch_cam: #Cam Name: Porch     #Brand: Annke c500   #Quality:3k    #Link:POE
    snapshots:
      enabled: true
      bounding_box: true
      quality: 99
    #  
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.3:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
        - path: rtsp://192.168.22.2:8554/porch_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream
          roles:
            - record
    detect:
      width: 640  
      height: 360
      fps: 4
      stationary:
        interval: 0
        threshold: 120
    motion:
      mask:
        - 189,0,183,32,0,33,0,0,0,0,0,0
        - 297,47,480,45,504,0,302,0
        - 124,246,194,242,174,207,147,193,110,228
    zones:
      zone_0:
        coordinates: 185,30,197,0,640,0,640,360,0,360,0,32
        objects: # (everywhere you want a person, cat, dog)
        - person
        - cat
        - dog
        - bird  
      zone_1:
        coordinates: 268,154,256,0,575,0,544,150
        objects: # (everywhere you want a car)
        - car
        - person
        - cat
        - dog
        - bird
    objects:
      track:
        - person
        - car
        - dog
        - cat
        - bird
      filters:
        #
        car:
          mask:
            - 0,360,640,360,640,153,264,163,244,0,0,0,0,198

    record:
      enabled: true
      retain:
        days: 7
        mode: motion
      events:
        pre_capture: 5
        post_capture: 10
        objects:
        - person
        - car
        - dog
        - cat
        - bird
        retain:
          default: 28
          mode: active_objects 

  road_cam: #Cam name: Road     #Brand: Annke c500   #Quality:3k    #Link:POE
    snapshots:
      enabled: true
      bounding_box: true
      quality: 99
    #  
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy 
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.2:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
        - path: rtsp://192.168.22.2:8554/road_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream
          roles:
            - record
    detect:
      width: 640  
      height: 360
      fps: 4
      stationary:
        interval: 0
        threshold: 70
    #motion:
      # mask:
       # - 189,0,189,23,0,23,0,0,0,0,0,0
    #zones:
      #zone_0:
        # coordinates: 192,21,197,0,640,0,640,236,514,210,410,480,0,480,0,21 
        # objects: # (everywhere you want a person, cat, dog)
        #- person
        #- cat
        #- dog  
      #zone_1:
        #coordinates: 325,176,578,183,584,0,323,0   
        #objects: # (everywhere you want a car)
        #- car
    objects:
      track:
        - person
        #- car
        - dog
        - cat
        - bird
      filters:
        person:
          min_area: 1000
          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

    record:
      enabled: true
      retain:
        days: 7
        mode: motion
      events:
        pre_capture: 5
        post_capture: 5
        objects:
        - person
        - dog
        - cat
        - bird
        #- car 
        retain:
          default: 28
          mode: active_objects        

  barn: #Cam name: Barn     #Brand: Annke c500   #Quality:3k    #Link:POE
    snapshots:
      enabled: true
      bounding_box: true
      quality: 99
    #  
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.4:554/Streaming/Channels/102 # SD Link
          input_args: preset-rtsp-generic
          roles:
            - detect
        - path: rtsp://192.168.22.2:8554/barn%20HQ?mp4  # HD Link
          input_args: preset-rtsp-restream
          roles:
            - record
    detect:
      width: 640  
      height: 360
      fps: 4
      stationary:
        interval: 0
        threshold: 70
    objects:
      track:
        - person
        - dog
        - cat
        - bird
      filters:
        #
        person:
          min_area: 2000
          max_area: 100000
          # Optional: minimum width/height of the bounding box for the detected object (default: 0)
          min_ratio: 0.6
          # 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.6
          # Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
          threshold: 0.7    
    record:
      enabled: true
      retain:
        days: 7
        mode: motion
      events:
        pre_capture: 5
        post_capture: 5
        objects:
        - person
        - dog
        - cat
        - bird
        retain:
          default: 28
          mode: active_objects         

# Optional
ui:
  # Optional: Set the default live mode for cameras in the UI (default: shown below)
  live_mode: mse
  # Optional: Set a timezone to use in the UI (default: use browser local time)
  # timezone: America/Denver
  # Optional: Use an experimental recordings / camera view UI (default: shown below)
  use_experimental: true

    # Optional: Telemetry configuration
telemetry:
  # Optional: Enable the latest version outbound check (default: shown below)
  # NOTE: If you use the HomeAssistant integration, disabling this will prevent it from reporting new versions
  version_check: True

Relevant log output

s6-rc: info: service nginx successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service nginx: stopping
s6-rc: info: service go2rtc-healthcheck: stopping
s6-rc: info: service go2rtc-healthcheck successfully stopped
s6-rc: info: service nginx successfully stopped
s6-rc: info: service nginx-log: stopping
s6-rc: info: service frigate: stopping
s6-rc: info: service frigate successfully stopped
s6-rc: info: service go2rtc: stopping
s6-rc: info: service frigate-log: stopping
s6-rc: info: service nginx-log successfully stopped
s6-rc: info: service frigate-log successfully stopped
s6-rc: info: service go2rtc successfully stopped
s6-rc: info: service go2rtc-log: stopping
s6-rc: info: service go2rtc-log successfully stopped
s6-rc: info: service log-prepare: stopping
s6-rc: info: service s6rc-fdholder: stopping
s6-rc: info: service log-prepare successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service s6rc-fdholder successfully stopped
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-linux-init-shutdown: fatal: unable to talk to shutdownd: Operation not permitted
2024-01-31 13:20:32.698732675  [INFO] Preparing Frigate...
2024-01-31 13:20:32.699549901  [INFO] Starting NGINX...
2024-01-31 13:20:32.702024683  [INFO] Preparing new go2rtc config...
2024-01-31 13:20:32.711125232  [INFO] Starting Frigate...
2024-01-31 13:20:33.076271281  [WARN] Using go2rtc binary from '/config/go2rtc' instead of the embedded one
2024-01-31 13:20:33.076299274  [INFO] Starting go2rtc...
2024-01-31 13:20:33.238760326  13:20:33.238 INF go2rtc version 1.7.1 linux/amd64
2024-01-31 13:20:33.239338855  13:20:33.239 INF [api] listen addr=0.0.0.0:1984
2024-01-31 13:20:33.239790248  13:20:33.239 INF [rtsp] listen addr=0.0.0.0:8554
2024-01-31 13:20:33.240135421  13:20:33.240 INF [webrtc] listen addr=0.0.0.0:8555/tcp
2024-01-31 13:20:34.224230947  [2024-01-31 13:20:34] frigate.app                    INFO    : Starting Frigate (0.13.0-01e2d20)
2024-01-31 13:20:34.256977913  *************************************************************
2024-01-31 13:20:34.256980994  *************************************************************
2024-01-31 13:20:34.256985201  ***    Your config file is not valid!                     ***
2024-01-31 13:20:34.256986766  ***    Please check the docs at                           ***
2024-01-31 13:20:34.256987657  ***    https://docs.frigate.video/configuration/index     ***
2024-01-31 13:20:34.257009476  *************************************************************
2024-01-31 13:20:34.257010317  *************************************************************
2024-01-31 13:20:34.257011389  ***    Config Validation Errors                           ***
2024-01-31 13:20:34.257026036  *************************************************************
2024-01-31 13:20:34.257089531  5 validation errors for FrigateConfig
2024-01-31 13:20:34.257091176  cameras -> barn_catflap -> detect -> stationary -> interval
2024-01-31 13:20:34.257092167    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257092992  cameras -> bird_cam -> detect -> stationary -> interval
2024-01-31 13:20:34.257093970    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257094847  cameras -> porch_cam -> detect -> stationary -> interval
2024-01-31 13:20:34.257095791    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257096589  cameras -> road_cam -> detect -> stationary -> interval
2024-01-31 13:20:34.257097615    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257131229  cameras -> barn -> detect -> stationary -> interval
2024-01-31 13:20:34.257132753    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257644652  Traceback (most recent call last):
2024-01-31 13:20:34.257647346    File "/opt/frigate/frigate/app.py", line 645, in start
2024-01-31 13:20:34.257648424      self.init_config()
2024-01-31 13:20:34.257649625    File "/opt/frigate/frigate/app.py", line 112, in init_config
2024-01-31 13:20:34.257650697      user_config = FrigateConfig.parse_file(config_file)
2024-01-31 13:20:34.257651873    File "/opt/frigate/frigate/config.py", line 1333, in parse_file
2024-01-31 13:20:34.257652947      return cls.parse_obj(config)
2024-01-31 13:20:34.257654150    File "pydantic/main.py", line 526, in pydantic.main.BaseModel.parse_obj
2024-01-31 13:20:34.257655435    File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
2024-01-31 13:20:34.257656611  pydantic.error_wrappers.ValidationError: 5 validation errors for FrigateConfig
2024-01-31 13:20:34.257657777  cameras -> barn_catflap -> detect -> stationary -> interval
2024-01-31 13:20:34.257658976    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257659842  cameras -> bird_cam -> detect -> stationary -> interval
2024-01-31 13:20:34.257660935    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257706955  cameras -> porch_cam -> detect -> stationary -> interval
2024-01-31 13:20:34.257708997    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257710377  cameras -> road_cam -> detect -> stationary -> interval
2024-01-31 13:20:34.257711517    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257712649  cameras -> barn -> detect -> stationary -> interval
2024-01-31 13:20:34.257713787    ensure this value is greater than 0 (type=value_error.number.not_gt; limit_value=0)
2024-01-31 13:20:34.257714667  
2024-01-31 13:20:34.257732647  *************************************************************
2024-01-31 13:20:34.257734002  ***    End Config Validation Errors                       ***
2024-01-31 13:20:34.257735229  *************************************************************
2024-01-31 13:20:35.459483112  [INFO] Service Frigate exited with code 1 (by signal 0)
2024-01-31 13:20:35.469487372  [INFO] The go2rtc-healthcheck service exited with code 256 (by signal 15)
2024-01-31 13:20:35.507642255  [INFO] Service NGINX exited with code 0 (by signal 0)
2024-01-31 13:20:35.512059826  exit with signal: terminated
2024-01-31 13:20:35.517106375  [INFO] The go2rtc service exited with code 0 (by signal 0)

FFprobe output from your camera

N/A

Frigate stats

No response

Operating system

UNRAID

Install method

Docker Compose

Coral version

USB

Network connection

Wired

Camera make and model

annke c500

Any other information that may be helpful

No response

NickM-27 commented 8 months ago

we don't control the unraid community store to be clear

Its v13 even stable yet?

yes, that is why it was released

NickM-27 commented 8 months ago

Why was isn't it listed in the breaking changes that you'll need to rejig the config files and retune everything?

All of the breaking changes are listed in the breaking changes section

dopeytree commented 8 months ago
  *************************************************************
2024-01-31 13:39:10.077569201  *************************************************************
2024-01-31 13:39:10.077573100  ***    Your config file is not valid!                     ***
2024-01-31 13:39:10.077574723  ***    Please check the docs at                           ***
2024-01-31 13:39:10.077575705  ***    https://docs.frigate.video/configuration/index     ***
2024-01-31 13:39:10.077600440  *************************************************************
2024-01-31 13:39:10.077601540  *************************************************************
2024-01-31 13:39:10.077602665  ***    Config Validation Errors                           ***
2024-01-31 13:39:10.077603612  *************************************************************
2024-01-31 13:39:10.077620995  1 validation error for FrigateConfig
2024-01-31 13:39:10.077621614  ui
2024-01-31 13:39:10.077622368    none is not an allowed value (type=type_error.none.not_allowed)
2024-01-31 13:39:10.078184849  Traceback (most recent call last):
2024-01-31 13:39:10.078187679    File "/opt/frigate/frigate/app.py", line 645, in start
2024-01-31 13:39:10.078188706      self.init_config()
2024-01-31 13:39:10.078189732    File "/opt/frigate/frigate/app.py", line 112, in init_config
2024-01-31 13:39:10.078190583      user_config = FrigateConfig.parse_file(config_file)
2024-01-31 13:39:10.078191507    File "/opt/frigate/frigate/config.py", line 1333, in parse_file
2024-01-31 13:39:10.078192516      return cls.parse_obj(config)
2024-01-31 13:39:10.078193473    File "pydantic/main.py", line 526, in pydantic.main.BaseModel.parse_obj
2024-01-31 13:39:10.078194364    File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
2024-01-31 13:39:10.078195235  pydantic.error_wrappers.ValidationError: 1 validation error for FrigateConfig
2024-01-31 13:39:10.078197244  ui
2024-01-31 13:39:10.078198252    none is not an allowed value (type=type_error.none.not_allowed)
2024-01-31 13:39:10.078233674  
NickM-27 commented 8 months ago
2024-01-31 13:39:10.077621614  ui
2024-01-31 13:39:10.077622368    none is not an allowed value (type=type_error.none.not_allowed)

this looks wrong, not sure where non is coming from

dopeytree commented 8 months ago

Updating to v13 from v12 means Frigate seems to delete all PAST recordings.

Would advise adding this to breaking notes.

dopeytree commented 8 months ago

Though it does leave the snapshots

NickM-27 commented 8 months ago

Not sure what you mean? nothing changed in regards to recording retention

Are you saying all recordings were deleted?

dopeytree commented 8 months ago

Yeah all video recordings were deleted (but not snapshots) must be something to do with the database upgrade. Noticed it went from 280GB to about 1.6GB.

Anyway not a major issue. I'll build a script to do backups once a month as currently running a mirror which isn't a backup eh.

So I've got a rough new config working.

Would you be able to help me get sound working in recordings?

Before in v12 was using the

 barn: #Cam name: Barn     #Brand: Annke c500   #Quality:3k    #Link:POE
    snapshots:
      enabled: true
      bounding_box: true
      quality: 99
    #  
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.4:554/Streaming/Channels/102 # SD Link
          input_args: preset-rtsp-generic
          roles:
            - detect
        - path: rtsp://192.168.22.2:8554/barn%20HQ?mp4  # HD Link
          input_args: preset-rtsp-restream
          roles:
            - record

but now in v13 ffmpeg is set universally so not sure if 'output_args: record: preset-record-generic-audio-copy' is still relevant?

v13 config below

mqtt:
  enabled: true
  host: 192.168.22.2
  port: 1883
   # Optional: topic prefix (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  topic_prefix: frigate

ffmpeg:
  hwaccel_args: preset-vaapi

detectors:
  coral:
    type: edgetpu
    device: usb  

snapshots:
  enabled: true
  bounding_box: false
  quality: 99

audio:
  # Optional: Enable audio events (default: shown below)
  # Optional: Audio Events Configuration
  # NOTE: Can be overridden at the camera level
  enabled: False
  # Optional: Configure the amount of seconds without detected audio to end the event (default: shown below)
  max_not_heard: 30
  # Optional: Configure the min rms volume required to run audio detection (default: shown below)
  # As a rule of thumb:
  #  - 200 - high sensitivity
  #  - 500 - medium sensitivity
  #  - 1000 - low sensitivity
  min_volume: 500
  # Optional: Types of audio to listen for (default: shown below)
  listen:
    - bark
    - fire_alarm
    - scream
    - speech
    - yell
  # Optional: Filters to configure detection.
  filters:
    # Label that matches label in listen config.
    speech:
      # Minimum score that triggers an audio event (default: shown below)
      threshold: 0.8  

# 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: Sync recordings with disk on startup and once a day (default: shown below).
  sync_recordings: true
  # 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: 7
    # 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: all
  # Optional: Recording Export Settings
  export:
    # Optional: Timelapse Output Args (default: shown below).
    # NOTE: The default args are set to fit 24 hours of recording into 1 hour playback.
    # See https://stackoverflow.com/a/58268695 for more info on how these args work.
    # As an example: if you wanted to go from 24 hours to 30 minutes that would be going
    # from 86400 seconds to 1800 seconds which would be 1800 / 86400 = 0.02.
    # The -r (framerate) dictates how smooth the output video is.
    # So the args would be -vf setpts=0.02*PTS -r 30 in that case.
    timelapse_args: "-vf setpts=0.04*PTS -r 30"
  # 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
      - cat
      - dog
    # 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: 28
      # 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: 14
        cat: 28
        dog: 28

go2rtc:
   streams:
    barn_catflap HQ : ffmpeg:rtsp://MPG7QbYQ:ICRGvtBU2xo3DxMy@192.168.22.202:554/live/ch0
    road_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.2:554/H265/ch1/main/av_stream
    porch_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.3:554/H265/ch1/main/av_stream
    bird_cam HQ:  ffmpeg:rtsp://admin:annke2023@10.0.0.7:554/H265/ch1/main/av_stream
    barn HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.4:554/H265/ch1/main/av_stream
    # kitchen_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.5:554/H265/ch1/main/av_stream
    # house_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.6:554/H265/ch1/main/av_stream

cameras:
  bird_cam: #Cam Name: Bird Cam (kitchen cat flap)   #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true

    detect:
      width: 640
      height: 360
      fps: 4
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.7:554/Streaming/Channels/102 # SQ Link
          roles:
            - detect
    audio:
      enabled: True # <- enable audio events for the this camera

  barn_catflap: #Cam name: Barn Catflap     #Brand: wansview   #Quality:1080p    #Link:WIFI
    enabled: true 

    detect:
      width: 768
      height: 432
      fps: 4
    ffmpeg:
      inputs:
        - path: rtsp://MPG7QbYQ:ICRGvtBU2xo3DxMy@192.168.22.202:554/live/ch1 # SD Link
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/barn_catflap%20HQ?mp4  # HD Link
          input_args: preset-rtsp-restream
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera

  barn: #Cam name: Barn     #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true

    detect:
      width: 640  
      height: 360
      fps: 4
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.4:554/Streaming/Channels/102 # SD Link
          input_args: preset-rtsp-generic
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/barn%20HQ?mp4  # HD Link
          input_args: preset-rtsp-restream
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera

  porch_cam: #Cam Name: Porch     #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true

    detect:
      width: 640  
      height: 360
      fps: 4 
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.3:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/porch_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera

  road_cam: #Cam name: Road     #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true

    detect:
      width: 640  
      height: 360
      fps: 4
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.2:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/road_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera

Thanks

NickM-27 commented 8 months ago

you can set it globally if you want and it will apply to all cameras. Either way it needs to be set somewhere

dopeytree commented 8 months ago

Thanks got it working for now and will re-tune over time. Default seems pretty good.

Only thing I did notice is v13 bit more fussy about low bit rate feeds as in not doing detection when it did on v12. So for one of the old budget cameras I changed the detection from substream to the main 1080p steam. In time I'll change the camera for another annke c500 as you can control the bit rate so 640x360 but at 3Mb/s so not blocky. Works great for low cpu detection.

Anyway thanks again for your work on this app. The new sound detection is cool eh.

Leaving v13 config here incase it helps anyone else out in future.

mqtt:
  enabled: true
  host: 192.168.22.2
  port: 1883
   # Optional: topic prefix (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  topic_prefix: frigate

ffmpeg:
   # Optional: global ffmpeg args (default: shown below)
  global_args: -hide_banner -loglevel warning -threads 2
  # Optional: global hwaccel args (default: shown below)
  # NOTE: See hardware acceleration docs for your specific device
  hwaccel_args: preset-vaapi
  # Optional: global input args (default: shown below)
  input_args: preset-rtsp-generic
  # Optional: global output args
  output_args:
    # Optional: output args for detect streams (default: shown below)
    detect: -threads 2 -f rawvideo -pix_fmt yuv420p
    # Optional: output args for record streams (default: shown below)
    record: preset-record-generic-audio-aac
    # Optional: output args for rtmp streams (default: shown below)
    #rtmp: preset-rtmp-generic
  # Optional: Time in seconds to wait before ffmpeg retries connecting to the camera. (default: shown below)
  # If set too low, frigate will retry a connection to the camera's stream too frequently, using up the limited streams some cameras can allow at once
  # If set too high, then if a ffmpeg crash or camera stream timeout occurs, you could potentially lose up to a maximum of retry_interval second(s) of footage
  # NOTE: this can be a useful setting for Wireless / Battery cameras to reduce how much footage is potentially lost during a connection timeout.
  retry_interval: 10

detectors:
  coral:
    type: edgetpu
    device: usb  

snapshots:
  enabled: true
  bounding_box: false
  quality: 100

audio:
  # Optional: Enable audio events (default: shown below)
  # Optional: Audio Events Configuration
  # NOTE: Can be overridden at the camera level
  enabled: true
  # Optional: Configure the amount of seconds without detected audio to end the event (default: shown below)
  max_not_heard: 30
  # Optional: Configure the min rms volume required to run audio detection (default: shown below)
  # As a rule of thumb:
  #  - 200 - high sensitivity
  #  - 500 - medium sensitivity
  #  - 1000 - low sensitivity
  min_volume: 200
  # Optional: Types of audio to listen for (default: shown below)
  listen:
    - fire_alarm
    - scream
    - yell
    - cat
    - purr
    - meow
    - hiss
  # Optional: Filters to configure detection.
  #filters:
    # Label that matches label in listen config.
  #  speech:
      # Minimum score that triggers an audio event (default: shown below)
  #    threshold: 0.8  

# Optional: Object configuration
# NOTE: Can be overridden at the camera level
objects:
  # Optional: list of objects to track from labelmap.txt (default: shown below)
  track:
    - person
    - cat
    - bird
  # 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: 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: Sync recordings with disk on startup and once a day (default: shown below).
  sync_recordings: false
  # 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: 7
    # 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: all
  # Optional: Recording Export Settings
  export:
    # Optional: Timelapse Output Args (default: shown below).
    # NOTE: The default args are set to fit 24 hours of recording into 1 hour playback.
    # See https://stackoverflow.com/a/58268695 for more info on how these args work.
    # As an example: if you wanted to go from 24 hours to 30 minutes that would be going
    # from 86400 seconds to 1800 seconds which would be 1800 / 86400 = 0.02.
    # The -r (framerate) dictates how smooth the output video is.
    # So the args would be -vf setpts=0.02*PTS -r 30 in that case.
    timelapse_args: "-vf setpts=0.04*PTS -r 30"
  # 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
      - cat
      - bird
    # 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: 28
      # 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: 14
        cat: 28
        bird: 14

# 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: 20
  # Optional: The percentage of the image used to detect lightning or other substantial changes where motion detection
  #           needs to recalibrate. (default: shown below)
  # Increasing this value will make motion detection more likely to consider lightning or ir mode changes as valid motion.
  # Decreasing this value will make motion detection more likely to ignore large amounts of motion such as a person approaching
  # a doorbell camera.
  lightning_threshold: 0.8
  # Optional: Minimum size in pixels in the resized motion image that counts as motion (default: shown below)
  # 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:
  #  - 10 - high sensitivity
  #  - 30 - medium sensitivity
  #  - 50 - low sensitivity
  contour_area: 10
  # 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.01
  # Optional: Height of the resized motion frame  (default: 100)
  # 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: 100
  # 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: true
  # Optional: Delay when updating camera motion through MQTT from ON -> OFF (default: shown below).
  mqtt_off_delay: 30

# Optional: Detect configuration
# NOTE: Can be overridden at the camera level
detect:
  # Optional: width of the frame for the input with the detect role (default: use native stream resolution)
  width: 640
  # Optional: height of the frame for the input with the detect role (default: use native stream resolution)
  height: 360
  # Optional: desired fps for your camera for the input with the detect role (default: shown below)
  # NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
  fps: 4
  # Optional: enables detection for the camera (default: True)
  enabled: true
  # Optional: Number of consecutive detection hits required for an object to be initialized in the tracker. (default: 1/2 the frame rate)
  min_initialized: 2
  # Optional: Number of frames without a detection before Frigate considers an object to be gone. (default: 5x the frame rate)
  max_disappeared: 20
  # Optional: Configuration for stationary object tracking
  stationary:
    # Optional: Frequency for confirming stationary objects (default: same as threshold)
    # When set to 1, object detection will run to confirm the object still exists on every frame.
    # If set to 10, object detection will run to confirm the object still exists on every 10th frame.
    interval: 40
    # Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
    threshold: 40
    # Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
    # This can help with false positives for objects that should only be stationary for a limited amount of time.
    # It can also be used to disable stationary object tracking. For example, you may want to set a value for person, but leave
    # car at the default.
    # WARNING: Setting these values overrides default behavior and disables stationary object tracking.
    #          There are very few situations where you would want it disabled. It is NOT recommended to
    #          copy these values from the example config into your config unless you know they are needed.
    max_frames:
      # Optional: Default for all object types (default: not set, track forever)
    #  default: 3000
      # Optional: Object specific values
      objects:
    #    cat: 1000
        person: 1000
  # Optional: Milliseconds to offset detect annotations by (default: shown below).
  # There can often be latency between a recording and the detect process,
  # especially when using separate streams for detect and record.
  # Use this setting to make the timeline bounding boxes more closely align
  # with the recording. The value can be positive or negative.
  # TIP: Imagine there is an event clip with a person walking from left to right.
  #      If the event timeline bounding box is consistently to the left of the person
  #      then the value should be decreased. Similarly, if a person is walking from
  #      left to right and the bounding box is consistently ahead of the person
  #      then the value should be increased.
  # TIP: This offset is dynamic so you can change the value and it will update existing
  #      events, this makes it easy to tune.
  # WARNING: Fast moving objects will likely not have the bounding box align.
  annotation_offset: 0

go2rtc:
   streams:
    barn_catflap HQ : ffmpeg:rtsp://MPG7QbYQ:ICRGvtBU2xo3DxMy@192.168.22.202:554/live/ch0
    road_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.2:554/H265/ch1/main/av_stream
    porch_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.3:554/H265/ch1/main/av_stream
    bird_cam HQ:  ffmpeg:rtsp://admin:annke2023@10.0.0.7:554/H265/ch1/main/av_stream
    barn HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.4:554/H265/ch1/main/av_stream
    # kitchen_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.5:554/H265/ch1/main/av_stream
    # house_cam HQ: ffmpeg:rtsp://admin:annke2023@10.0.0.6:554/H265/ch1/main/av_stream

cameras:
  bird_cam: #Cam Name: Bird Cam (kitchen cat flap)   #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.7:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/bird_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream 
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera
    ui: 
      # Optional: Configuration for how camera is handled in the GUI.
      # Optional: Adjust sort order of cameras in the UI. Larger numbers come later (default: shown below)
      # By default the cameras are sorted alphabetically.
      order: 4
      # Optional: Whether or not to show the camera in the Frigate UI (default: shown below)
      dashboard: True

  barn_catflap: #Cam name: Barn Catflap     #Brand: wansview   #Quality:1080p    #Link:WIFI
    enabled: true 
    detect:
      width: 1920
      height: 1080
      fps: 5
    ffmpeg:
      inputs:
        #- path: rtsp://MPG7QbYQ:ICRGvtBU2xo3DxMy@192.168.22.202:554/live/ch1 # SD Link
        #  input_args: preset-rtsp-generic
        #  roles:
        #    - detect
        #    - audio
        - path: rtsp://192.168.22.2:8554/barn_catflap%20HQ?mp4  # HD Link
          input_args: preset-rtsp-restream 
          roles:
            - record
            #
            - detect
            - audio
    audio:
      enabled: True # <- enable audio events for the this camera
    ui: 
      # Optional: Configuration for how camera is handled in the GUI.
      # Optional: Adjust sort order of cameras in the UI. Larger numbers come later (default: shown below)
      # By default the cameras are sorted alphabetically.
      order: 5
      # Optional: Whether or not to show the camera in the Frigate UI (default: shown below)
      dashboard: True

  barn: #Cam name: Barn     #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.4:554/Streaming/Channels/102 # SD Link
          input_args: preset-rtsp-generic
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/barn%20HQ?mp4  # HD Link
          input_args: preset-rtsp-restream
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera
    ui: 
      # Optional: Configuration for how camera is handled in the GUI.
      # Optional: Adjust sort order of cameras in the UI. Larger numbers come later (default: shown below)
      # By default the cameras are sorted alphabetically.
      order: 3
      # Optional: Whether or not to show the camera in the Frigate UI (default: shown below)
      dashboard: True

  porch_cam: #Cam Name: Porch     #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.3:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/porch_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera
    ui: 
      # Optional: Configuration for how camera is handled in the GUI.
      # Optional: Adjust sort order of cameras in the UI. Larger numbers come later (default: shown below)
      # By default the cameras are sorted alphabetically.
      order: 1
      # Optional: Whether or not to show the camera in the Frigate UI (default: shown below)
      dashboard: True

  road_cam: #Cam name: Road     #Brand: Annke c500   #Quality:3k    #Link:POE
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://admin:annke2023@10.0.0.2:554/Streaming/Channels/102 # SQ Link
          input_args: preset-rtsp-generic
          roles:
            - detect
            - audio
        - path: rtsp://192.168.22.2:8554/road_cam%20HQ?mp4  # HQ Link
          input_args: preset-rtsp-restream
          roles:
            - record
    audio:
      enabled: True # <- enable audio events for the this camera
    ui: 
      # Optional: Configuration for how camera is handled in the GUI.
      # Optional: Adjust sort order of cameras in the UI. Larger numbers come later (default: shown below)
      # By default the cameras are sorted alphabetically.
      order: 2
      # Optional: Whether or not to show the camera in the Frigate UI (default: shown below)
      dashboard: True

# Optional
ui:
  # Optional: Set the default live mode for cameras in the UI (default: shown below)
  live_mode: mse
  # Optional: Set a timezone to use in the UI (default: use browser local time)
  # timezone: America/Denver
  # Optional: Use an experimental recordings / camera view UI (default: shown below)
  use_experimental: false
  # Optional: Set the time format used.
  # Options are browser, 12hour, or 24hour (default: shown below)
  time_format: browser
  # Optional: Set the date style for a specified length.
  # Options are: full, long, medium, short
  # Examples:
  #    short: 2/11/23
  #    medium: Feb 11, 2023
  #    full: Saturday, February 11, 2023
  # (default: shown below).
  date_style: short
  # Optional: Set the time style for a specified length.
  # Options are: full, long, medium, short
  # Examples:
  #    short: 8:14 PM
  #    medium: 8:15:22 PM
  #    full: 8:15:22 PM Mountain Standard Time
  # (default: shown below).
  time_style: medium
  # Optional: Ability to manually override the date / time styling to use strftime format
  # https://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html
  # possible values are shown above (default: not set)
  strftime_fmt: "%Y/%m/%d %H:%M"

# Optional: Telemetry configuration
telemetry:
  # Optional: Enabled network interfaces for bandwidth stats monitoring (default: empty list, let nethogs search all)
  network_interfaces:
    - eth
    - enp
    - eno
    - ens
    - wl
    - lo
  # Optional: Configure system stats
  stats:
    # Enable AMD GPU stats (default: shown below)
    amd_gpu_stats: false
    # Enable Intel GPU stats (default: shown below)
    intel_gpu_stats: true
    # 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: true
  # Optional: Enable the latest version outbound check (default: shown below)
  # NOTE: If you use the HomeAssistant integration, disabling this will prevent it from reporting new versions
  version_check: true