# 1.5.15 Frigate NVR

# 01. Frigate Installation

<details id="bkmrk-configuration-file-m"><summary>Configuration File</summary>

```yaml
mqtt:
  enabled: true
  host: 10.131.2.131
  user: peaske  
  password: 7&QpP1qBKikkers49$91

semantic_search:
  enabled: true
  reindex: false

record:
  enabled: true
  continuous:
    days: 14

snapshots:
  enabled: true
  retain:
    default: 14
  required_zones: [cam_1_person, cam_2_person, cam_3_person, cam_4_person, 
        cam_5_person, cam_6_person, cam_7_person, cam_8_person, cam_9_person]
  # Optional: Camera override for retention settings (default: global values)

objects:
  track:
    - person

cameras:     # No cameras defined, UI wizard should be used
  cam_1:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    objects:
      track:
        - person
        - car
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
          - car
        required_zones:
          - cam_1_person
    #      - cam_1_car
      detections:
        labels:
          - person
        required_zones:
          - cam_1_person
    #      - cam_1_car
    live:
      streams:
        Stream 1: cam_1_1
        Stream 2: cam_1_2
    notifications:
      enabled: true
    zones:
      cam_1_person:
        coordinates: 0.679,0.187,0.407,0.989,0.668,0.997,0.72,0.593,0.737,0.195
        inertia: 3
        loitering_time: 0
        objects: person
      #cam_1_car:
      #  coordinates: 0.539,0.127,0.285,0.374,0.073,0.772,0.186,1,0.651,0.149
      #  loitering_time: 0
      #  inertia: 3
      #  objects: car
  cam_2:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_2_person
      detections:
        labels:
          - person
        required_zones:
          - cam_2_person
    live:
      streams:
        Stream 1: cam_2_1
        Stream 2: cam_2_2
    notifications:
      enabled: true
    zones:
      cam_2_person:
        coordinates: 0.483,0.265,0.35,0.998,0.754,0.992,0.582,0.009
        loitering_time: 0
        objects: person
    objects:
      filters:
        person:
          mask: 0.004,0.011,0.003,0.991,0.335,0.992,0.478,0.241,0.57,0.008
  cam_3:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_3_person
      detections:
        labels:
          - person
        required_zones:
          - cam_3_person
    live:
      streams:
        Stream 1: cam_3_1
        Stream 2: cam_3_2
    zones:
      cam_3_person:
        coordinates: 0.497,0.106,0.59,0.991,0.462,0.992,0.45,0.13
        loitering_time: 0
        objects: person
    objects:
      filters:
        person:
          mask: 
            0.506,0.113,0.601,0.982,0.995,0.989,0.992,0.018,0.545,0,0.61,0.087
  cam_4:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_4_person
      detections:
        labels:
          - person
        required_zones:
          - cam_4_person
    live:
      streams:
        Stream 1: cam_4_1
        Stream 2: cam_4_2
    notifications:
      enabled: true
    zones:
      cam_4_person:
        coordinates: 0.593,0.465,0.712,0.994,0.366,0.997,0.374,0.466
        loitering_time: 0
        objects: person
    objects:
      mask: 
        0.311,0.005,0.359,0.431,0.664,0.437,0.817,0.995,0.995,0.998,0.994,0.009
  cam_5:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_5_person
      detections:
        labels:
          - person
        required_zones:
          - cam_5_person
    live:
      streams:
        Stream 1: cam_5_1
        Stream 2: cam_5_2
    notifications:
      enabled: true
    zones:
      cam_5_person:
        coordinates: 0.534,0.116,0.517,0.991,0.332,0.998,0.491,0.113
        loitering_time: 0
        objects: person
    objects:
      mask: 0.004,0.005,0.006,0.997,0.315,0.994,0.491,0.023
  cam_6:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_6_person
      detections:
        labels:
          - person
        required_zones:
          - cam_6_person
    live:
      streams:
        Stream 1: cam_6_1
        Stream 2: cam_6_2
    notifications:
      enabled: true
    zones:
      cam_6_person:
        coordinates: 0.225,0.198,0.279,0.593,0.346,0.998,0.489,1,0.253,0.166
        loitering_time: 0
        objects: person
    objects:
      mask:
        - 0.267,0.008,0.264,0.157,0.505,0.997,0.99,0.986,0.991,0.011
        - 0.003,0.008,0.007,0.994,0.31,0.991,0.194,0.017
  cam_7:
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam_7_1
          input_args: preset-rtsp-restream
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.107:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_7_person
      detections:
        labels:
          - person
        required_zones:
          - cam_7_person
    live:
      streams:
        Stream 1: cam_7_1
        Stream 2: cam_7_2
    notifications:
      enabled: true
    zones:
      cam_7_person:
        coordinates: 0.519,0.071,0.603,0.991,0.806,0.991,0.595,0.027
        loitering_time: 0
        objects: person
    objects:
      mask:
        - 0.005,0.015,0.009,0.986,0.436,0.991,0.457,0.015
        - 0.614,0.014,0.835,0.992,0.996,0.988,0.997,0.009
  cam_8:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_8_person
      detections:
        labels:
          - person
        required_zones:
          - cam_8_person
    live:
      streams:
        Stream 1: cam_8_1
        Stream 2: cam_8_2
    notifications:
      enabled: true
    zones:
      cam_8_person:
        coordinates: 
          0.287,0.585,0.092,0.753,0.126,0.887,0.19,1,0.356,0.931,0.477,0.694
        loitering_time: 0
        objects: person
  cam_9:
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam_9_1
          input_args: preset-rtsp-restream
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.109:554/cam/realmonitor?channel=1&subtype=1
          roles:
            - detect
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5
    review:
      alerts:
        labels:
          - person
        required_zones:
          - cam_9_person
      detections:
        labels:
          - person
        required_zones:
          - cam_9_person
    live:
      streams:
        Stream 1: cam_9_1
        Stream 2: cam_9_2
    notifications:
      enabled: true
    zones:
      cam_9_person:
        coordinates: 0.362,0.184,0.703,0.52,0.554,0.971,0.365,0.973,0.128,0.588
        loitering_time: 0
        objects: person
version: 0.17-0
go2rtc:
  streams:
    cam_1_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_1_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_2_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_2_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_3_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_3_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_4_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_4_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_5_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_5_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_6_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_6_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_7_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.107:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_7_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.107:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_8_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_8_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_9_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.109:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_9_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.109:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif

notifications:
  enabled: true
  email: dp@p2pnode.org


```

</details>Snapshot

Alerts

Detections

Recording

```yaml
objects:
  track:
    #- person
    #- car
  filters:
    person:
      min_score: .60
      threshold: .65
    car:
      min_score: .60
      threshold: .65
```

<details id="bkmrk-compose-file-service"><summary>Compose file</summary>

```yaml
services:
  frigate:
    mem_limit: 5g
    container_name: frigate
    privileged: true # this may not be necessary for all setups
    restart: unless-stopped
    stop_grace_period: 30s # allow enough time to shut down the various services
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "1000mb" # update for your cameras based on calculation above
    devices:
   #   - /dev/bus/usb:/dev/bus/usb # Passes the USB Coral, needs to be modified for other versions
   #   - /dev/apex_0:/dev/apex_0 # Passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux
   #   - /dev/video11:/dev/video11 # For Raspberry Pi 4B
   #   - /dev/dri/card0:/dev/dri/card0 # For intel hwaccel, needs to be updated for your hardware
      - /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, needs to be updated for your hardware   
    volumes:
      - ./etc/localtime:/etc/localtime:ro
      - ./config:/config
      - ./media:/media/frigate
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - 8971:8971
      - 8080:8080
      - 5000:5000 # Internal unauthenticated access. Expose carefully.
      - 8554:8554 # RTSP feeds
      - 8555:8555/tcp # WebRTC over tcp
      - 8555:8555/udp # WebRTC over udp
    environment:
      FRIGATE_RTSP_PASSWORD: "Stel137&QpP1qB"
  mqtt:
    mem_limit: 1g
    image: eclipse-mosquitto:latest
    container_name: mqtt
    restart: unless-stopped
    volumes:
      - ./mosquitto/config:/mosquitto/config
      - ./mosquitto/data:/mosquitto/data
      - ./mosquitto/log:/mosquitto/log
    ports:
      - 1883:1883

```

</details>```yaml
# With 1280x720 detect resolution

mqtt:
  host: mqtt # The hostname of mqtt in the docker compose file
  topic_prefix: frigate
  enabled: true

# _______________________________________Detection______________________________________

#ffmpeg: #If you use an AMD CPU for detection then leave this whole section uncommented
#  hwaccel_args: preset-vaapi
#  output_args: 
#    record: preset-record-generic-audi-aac

#detectors:
#  ov_0:
#    type: openvino
#    device: CPU
#  ov_1:
#    type: openvino
#    device: CPU
#  ov_2:
#    type: openvino
#    device: CPU


#logger:
#  default: info
#  logs:
#    frigate.video: debug  # Enable FFmpeg debug logs
#ffmpeg:
#  input_args:
#    - hwaccel
#    - vaapi        
#    - rtsp_transport
#    - tcp
#
# ----------------------------------------Timezone ------------------------------------
# This makes sure that Frigate always uses the local time and does not switch to another 
# Timezone when it is viewed remotely.

ui:
  timezone: Europe/Berlin

# ----------------------------------------Tracked Objects ------------------------------------

objects:
  track:
    - person
    - car
  filters:
    person:
      min_score: .60
      threshold: .65
    car:
      min_score: .60
      threshold: .65

detect:
  enabled: true
go2rtc:
  streams:
    cam1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.101/cam/realmonitor?channel=1&subtype=0
    cam1_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.101/cam/realmonitor?channel=1&subtype=1
    cam2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.102/cam/realmonitor?channel=1&subtype=0
    cam2_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.102/cam/realmonitor?channel=1&subtype=1
    cam3:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.103/cam/realmonitor?channel=1&subtype=0
    cam3_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.103/cam/realmonitor?channel=1&subtype=1
    cam4:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.104/cam/realmonitor?channel=1&subtype=0
    cam4_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.104/cam/realmonitor?channel=1&subtype=1
    cam5:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.105/cam/realmonitor?channel=1&subtype=0
    cam5_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.105/cam/realmonitor?channel=1&subtype=1
    cam6:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.106/cam/realmonitor?channel=1&subtype=0
    cam6_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.106/cam/realmonitor?channel=1&subtype=1
    cam7:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.107/cam/realmonitor?channel=1&subtype=0
    cam7_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.107/cam/realmonitor?channel=1&subtype=1
    cam8:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.108/cam/realmonitor?channel=1&subtype=0
    cam8_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.108/cam/realmonitor?channel=1&subtype=1
    cam9:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.109/cam/realmonitor?channel=1&subtype=0
    cam9_sub:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.109/cam/realmonitor?channel=1&subtype=1


cameras:
# ----------------------------------------CAM 1 ------------------------------------
  cam1:
    review:
      alerts:
        required_zones: cam1_parking_lot
      detections:
        required_zones: cam1_parking_lot
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam1_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam1
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
        - car
      filters:
        person:
          mask: 0,1,0.117,1,0.236,0.86,0.649,0.13,0.719,0,0.625,0,0,0
    snapshots:
      required_zones:
        - cam1_parking_lot
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        retain:
          days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam1_parking_lot:
        coordinates: 
          0.235,0.881,0.129,1,0.487,1,0.678,0.997,0.741,0.47,0.747,0.207,0.752,0,0.733,0,0.715,0.026,0.495,0.423,0.485,0.437
        inertia: 3
        loitering_time: 0
    motion:
      mask: 
        0.742,0,0.745,0.204,0.741,0.46,0.718,0.719,0.678,0.998,0.996,0.998,0.994,0.003

# ----------------------------------------CAM 2 ------------------------------------

  cam2:
    review:
      alerts:
        required_zones: cam2_person
      detections:
        required_zones: cam2_person
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam2_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam2
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      filters:
        person:
          min_area: 2000
          max_area: 90000
      mask: 0,0,0,1,0.373,1,0.56,0
    snapshots:
      required_zones:
        - cam2_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam2_person:
        coordinates: 0.808,1,0.374,1,0.56,0,0.58,0
        inertia: 3
        loitering_time: 0
        objects: person
    motion:
      mask: 0.584,0,0.812,0.998,0.995,0.995,1,0

# ----------------------------------------CAM 3 ------------------------------------

  cam3:
    review:
      alerts:
        required_zones: cam3_person
      detections:
        required_zones: cam3_person
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam3_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam3
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      mask: 0.539,0.003,0.732,1,0.996,0.995,0.996,0.008
    snapshots:
      required_zones:
        - cam3_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam3_person:
        coordinates: 0.442,0,0.243,0.992,0.723,1,0.535,0.003
        inertia: 3
        loitering_time: 0
        objects: person
    motion:
      mask:
        - 0.627,0.032,0.631,0.079,0.971,0.077,0.972,0.034
        - 0.002,0.003,0.007,0.994,0.238,0.99,0.44,0.003

# ----------------------------------------CAM 4 ------------------------------------

  cam4:
    review:
      alerts:
        required_zones: cam4_person
      detections:
        required_zones: cam4_person
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam4_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam4
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      mask:
        - 0.67,1,0.996,0.992,0.997,0.006,0.302,0.001,0.366,0.538,0.52,0.496,0.575,0.468
        - 0.003,0.002,0,0.978,0.039,0.537,0.295,0.014
    snapshots:
      required_zones:
        - cam4_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam4_person:
        coordinates: 
          0.045,0.541,0,0.998,0.664,1,0.572,0.493,0.501,0.513,0.364,0.545,0.299,0.016
        inertia: 3
        loitering_time: 0
        objects: person
    motion: {}

# ----------------------------------------CAM 5 ------------------------------------

  cam5:
    review:
      alerts:
        required_zones: cam5_person
      detections:
        required_zones: cam5_person
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam5_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam5
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      mask: 0,0,0,1,0.179,1,0.511,0
    snapshots:
      required_zones:
        - cam5_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam5_person:
        coordinates: 
          0.521,0,0.456,0.185,0.383,0.42,0.308,0.639,0.193,1,0.811,0.997,0.568,0.005
        inertia: 3
        loitering_time: 0
        objects: person
    motion:
      mask: 0.566,0,0.816,0.998,0.999,0.995,0.998,0.005

# ----------------------------------------CAM 6 ------------------------------------

  cam6:
    review:
      alerts:
        required_zones: cam6_person
      detections:
        required_zones: cam6_person
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam6_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam6
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      filters:
        person:
          min_area: 3000
          max_area: 90000
      mask: 
        1,1,1,0,0.216,0,0.235,0.231,0.271,0.22,0.298,0.21,0.312,0.249,0.554,1
    snapshots:
      required_zones:
        - cam6_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam6_person:
        coordinates: 
          0.215,0.016,0.131,0.333,0.075,1,0.543,0.988,0.296,0.222,0.232,0.245
        inertia: 3
        loitering_time: 0
        objects: person
    motion:
      mask: 0.002,0.003,0.005,0.997,0.069,0.997,0.128,0.321,0.212,0.002

# ----------------------------------------CAM 7 ------------------------------------

  cam7:
    review:
      alerts:
        required_zones: cam7_person
      detections:
        required_zones: cam7_person
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam7_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam7
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      mask: 0.616,0.003,0.756,0.445,0.866,0.99,0.994,0.997,0.996,0.006
    snapshots:
      required_zones:
        - cam7_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam7_person:
        coordinates: 
          0.404,0,0.308,1,0.861,0.994,0.815,0.742,0.739,0.408,0.611,0.002
        inertia: 3
        loitering_time: 0
        objects: person
    motion:
      mask:
        - 0.001,0.003,0.004,0.992,0.303,0.997,0.398,0.005
        - 0.629,0.03,0.633,0.074,0.97,0.079,0.971,0.032

# ----------------------------------------CAM 8 ------------------------------------

  cam8:
    review:
      alerts:
        required_zones: cam8_person
      detections:
        required_zones: cam8_person
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam8_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam8
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      filters:
        person:
          min_area: 5000
          max_area: 90000
      mask: 
        0.279,0.01,0.342,0.604,0.67,0.801,0.634,0.944,0.62,0.997,0.996,0.995,0.995,0.003
    snapshots:
      required_zones:
        - cam8_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    zones:
      cam8_person:
        coordinates: 0.042,0.612,0.174,0.99,0.62,0.997,0.671,0.798,0.155,0.499
        inertia: 3
        loitering_time: 0
        objects: person
    motion:
      mask: 0.629,0.027,0.634,0.08,0.972,0.08,0.972,0.03

# ----------------------------------------CAM 9 ------------------------------------

  cam9:
    lpr:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam9_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/cam9
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    objects:
      track:
        - person
      filters:
        person:
          min_area: 5000
          max_area: 90000
    snapshots:
      required_zones:
        - cam9_person
      enabled: true
      timestamp: true
      bounding_box: true
      crop: true
      height: 500
      retain:
        default: 14
    record:
      enabled: true
      alerts:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      detections:
        retain:
          days: 14
        pre_capture: 15
        post_capture: 15
      continuous:
        days: 14
      motion:
        days: 0
    notifications:
      enabled: true

    motion:
      mask: 0.627,0.032,0.628,0.079,0.971,0.082,0.974,0.032
    zones:
      cam9_person:
        coordinates: 
          0.123,0.587,0.374,1,0.562,1,0.824,0.018,0.488,0.01,0.324,0.253
        loitering_time: 0
        objects: person
version: 0.17-0


semantic_search:
  enabled: true
  model_size: small
face_recognition:
  enabled: false
  model_size: small
lpr:
  enabled: false
classification:
  bird:
    enabled: false
notifications:
  enabled: true
  email: dp@p2pnode.org

```

<details id="bkmrk-new-config-mqtt%3A-ena"><summary>New Config</summary>

```yaml
mqtt:
  enabled: true

semantic_search:
  enabled: true
  reindex: false

objects:
  track:
    - person
    - car
  filters:
    person:
      min_score: .60
      threshold: .65
    car:
      min_score: .60
      threshold: .65



cameras:     # No cameras defined, UI wizard should be used
  cam_1:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_1_1
        Stream 2: cam_1_2
    notifications:
      enabled: true
    zones:
      cam_1_person:
        coordinates: 
          0.596,0.09,0.523,0.089,0,0.549,0,1,0.111,1,0.607,0.985,0.652,0.097
        inertia: 3
        loitering_time: 0
        objects: person
  cam_2:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_2_1
        Stream 2: cam_2_2
    notifications:
      enabled: true
    zones:
      cam_2_person:
        coordinates: 0.483,0.265,0.35,0.998,0.754,0.992,0.582,0.009
        loitering_time: 0
        objects: person
  cam_3:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    live:
      streams:
        Stream 1: cam_3_1
        Stream 2: cam_3_2
    zones:
      cam_3_person:
        coordinates: 0.497,0.106,0.59,0.991,0.462,0.992,0.45,0.13
        loitering_time: 0
        objects: person
  cam_4:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_4_1
        Stream 2: cam_4_2
    notifications:
      enabled: true
    zones:
      cam_4_person:
        coordinates: 0.593,0.465,0.712,0.994,0.366,0.997,0.374,0.466
        loitering_time: 0
        objects: person
  cam_5:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_5_1
        Stream 2: cam_5_2
    notifications:
      enabled: true
    zones:
      cam_5_person:
        coordinates: 0.534,0.116,0.517,0.991,0.332,0.998,0.491,0.113
        loitering_time: 0
        objects: person
  cam_6:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_6_1
        Stream 2: cam_6_2
    notifications:
      enabled: true
    zones:
      cam_6_person:
        coordinates: 0.225,0.198,0.279,0.593,0.346,0.998,0.489,1,0.253,0.166
        loitering_time: 0
        objects: person
  cam_7:
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam_7_1
          input_args: preset-rtsp-restream
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.107:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_7_1
        Stream 2: cam_7_2
    notifications:
      enabled: true
    zones:
      cam_7_person:
        coordinates: 0.519,0.071,0.603,0.991,0.806,0.991,0.595,0.027
        loitering_time: 0
        objects: person
  cam_8:
    enabled: true
    ffmpeg:
      inputs:
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_8_1
        Stream 2: cam_8_2
    notifications:
      enabled: true
    zones:
      cam_8_person:
        coordinates: 
          0.287,0.585,0.092,0.753,0.126,0.887,0.19,1,0.356,0.931,0.477,0.694
        loitering_time: 0
        objects: person
  cam_9:
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/cam_9_1
          input_args: preset-rtsp-restream
          roles:
            - record
            - audio
        - path: 
            rtsp://admin:Stel13DeternetArea1()@10.131.2.109:554/cam/realmonitor?channel=1&subtype=1
          roles:
            - detect
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      continuous:
        days: 14
    live:
      streams:
        Stream 1: cam_9_1
        Stream 2: cam_9_2
    notifications:
      enabled: true
    zones:
      cam_9_person:
        coordinates: 0.362,0.184,0.703,0.52,0.554,0.971,0.365,0.973,0.128,0.588
        loitering_time: 0
        objects: person
version: 0.17-0
go2rtc:
  streams:
    cam_1_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_1_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.101:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_2_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_2_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.102:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_3_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_3_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.103:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_4_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_4_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.104:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_5_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_5_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.105:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_6_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_6_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.106:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_7_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.107:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_7_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.107:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_8_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_8_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.108:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
    cam_9_1:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.109:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    cam_9_2:
      - rtsp://admin:Stel13DeternetArea1()@10.131.2.109:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
notifications:
  enabled: true
  email: dp@p2pnode.org

```

</details>

# 02. Configure Cameras

**Camera Network**

The first thing to be made sure of is to create a dedicated network for your camera system. This can either be dedicated or VLAN based. In this way you can separate Camera traffic from other traffic and if your camera netwok gets breached than all other services will not be affected. Depending on your network setup you can either define this VLAN directly on an L3 swich or if you use the router on a stick model on your router. Hence, make sure all cameras are on the same CAM network.

**Initial Camera Setup**

Now, by default your cameras are not yet living on the camera network VLAN that we just created. Now, for each brand and camera it is different but it basically boils down to this.

1. Make sure you have a laptop with an ethernet port
2. Look up on the internet how you can reset your particular camera to its default settings.
3. This will most likely also tell you what the default IP address is that particular camera e.g Amcrest cameras live on 192.168.1.108.
4. If you know that then you also know on which network it lives.
5. Next, we need to set our laptop to the same default network as the camera.
6. Then we can simply access the camera by typing in the address of the camera in our favourite webbrowser.
7. Then again depending on your camera, go to the networking page to give your camera a static IP address on the Camera Network.
8. Note! Once you change the ip address of the camera then you can only keep accessing it if you bring your laptop on that network as well.
9. After you have done that you can stick the IP camera in an untagged CAM Network port on your PoE switch.
10. If you can then connect to it with your laptop by connected it as well to the same switch then you know it works!
11. Repeat this process until you brought all the cameras on the camera network.

**Streams**

Next up are the camera stream possibilities of your camera. Most cameras come at least with two camera streams. These streams are basically recording the same thing but on different resolution scales. For instance, for your recordings you would love to have the highest resolution possible, howerver for your object and sound detection you don't need that. This can greatly reduce the stress on your resources and hence provide a much smoother experience, especially on systems that are not so well resourced.

Other that we also need to know or set the resolution of all of the cameras. The reason being is that these resolutions should be the same as in our Frigate configuration file later on. It is all up to you and the resources but some common resolutions would be

1. 640x480 (VGA) for substream (The higher the sream the more stress will be put on your resources)
2. Highest resolution for main stream (e.g 1920x1080 or 2960x1668)

Make sure you write these numbers down and have set them all the same for all your cameras.

**NTP Time Server**

An NTP server (Network Time Protocol server) is a server that provides accurate time information to clients over the Internet, allowing them to synchronize their clocks to Coordinated Universal Time (UTC) with high precision. NTP servers can maintain time accuracy within a few milliseconds over local networks and tens of milliseconds over the public Internet.

Now why would you want this ? Well you want that each camera in your system displays the same time i.e that all clocks are synchronized. They even synchronize with summer and winter times ;) This is a must have instead of cameras showing different times.

Now, which NTP servers to use then ? Well I would recommend to use the NTP servers from the [NTP Pool Project](https://www.ntppool.org/en/). The pool.ntp.org project is a big virtual cluster of timeservers providing reliable, [easy to use](https://www.ntppool.org/en/use.html) NTP service for millions of clients. You could click on your continent region and then use any of the time servers they provide. For instance clicking on Europe you get the following addresses

<p class="callout info">server 0.europe.pool.ntp.org  
server 1.europe.pool.ntp.org  
server 2.europe.pool.ntp.org  
server 3.europe.pool.ntp.org</p>

You can use any of these 4 and implement them as the NTP server for each camera. Make sure to use the same s.t they all use the same time servers and are synchronized.

**Viewing Preferences**

Now, depnding on the camera you have obtained they all have different possibilities. It is now then time to go to the cameras and tweak it to your liking. For instance, if you prefer night vision with colour on your camera's then you can set that setting for your camera. I would highly recommend to do this ;)

# 01. Hardware Pass Through

To make frigate operate smoothly and effectively a GPU or XXX should be used for hardware acceleration. Otherwise all the image recognition and playback needs to be handled by the CPU which is really heavy. If you don't do this and you have a bunch of cameras then it can easily consume 8 cpu cores if not more. Hence, get a GPU or Google XXX device.

1. Inside of the BIOS of your system go to

Tutorial on Hardware Acceleration for Frigate: [https://www.youtube.com/watch?v=SeHgsIwyOuY](https://www.youtube.com/watch?v=SeHgsIwyOuY)

1\. Then Resizable BAR needs to be turned on in the BIOS of your system if it's available.

2\. Then go int

# 3. Mount NFS Share

# 04. Mount NFS Share to Linux VM

1. Create dataset
2. Data space management -&gt; set it to x TiB
3. Shares -&gt; Unix -&gt; Add

!!!! Mount should happen at root !!!!!

Now, that we have created an NFS share it is time to share it with another machine virtual or bare metal. In this case we will install inside a linux VM

To test if a TrueNas NFS share can be mounted use the following command:

```
sudo mount -t nfs 10.131.1.10:/mnt/alexandria/frigate /home/dpasnfrigate/media
```

```
sudo mount -t nfs 10.131.1.10:/mnt/alexandria/frigate /home/dpasnfrigate/media
```

# Keep NFS share Mounted on Reboots

Generally, you will want to mount the remote NFS directory automatically when the system boots.

The /etc/fstab file contains a list of entries that define where how and what filesystem will be mounted on system startup.

To automatically mount an NFS share when your Linux system starts up add a line to the /etc/fstab file. The line must include the hostname or the IP address of the NFS server, the exported directory, and the mount point on the local machine.

Use the following procedure to automatically mount an NFS share on Linux systems:

1. Set up a mount point for the remote NFS share:

```
sudo mkdir /frigate/media
```

```
sudo mkdir /frigate/media
```

2. Open the /etc/fstab file with your text editor :

```
sudo nano /etc/fstab
```

```
sudo nano /etc/fstab
```

3. Add the following line

```
10.131.2.10:/mnt/alexandria/frigate frigate/media  nfs defaults 0 0
```

```
10.131.2.10:/mnt/alexandria/frigate frigate/media  nfs defaults 0 0
```

4. it
5. Finally you need to update the new file with

```
systemctl daemon-reload
```

```
systemctl daemon-reload
```

6. Run the mount command in one of the following forms to mount the NFS share:

```
mount frigate/media
```

```
mount frigate/media
```

7. The mount command, will read the content of the /etc/fstab and mount the share.
8. Next time you reboot the system the NFS share will be mounted automatically.

admin  
60ab1406fba90830c0126bbdcae06743d54a4f62d76f1e75

sudo apt install gnome-software-plugin-flatpak