User Tools

Site Tools


frigate_nvr_installation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
frigate_nvr_installation [2024/12/06 15:40] – created mark_scottworld.netfrigate_nvr_installation [2025/02/09 17:06] (current) mark_scottworld.net
Line 33: Line 33:
      
 Stop the services Stop the services
 +
 +<code>
 +systemctl stop docker.service
 +systemctl stop docker.socket
 +systemctl stop containerd.service
 +</code>
 +
 +Move the Docker root directory: (optional)
 +
 +  mv /var/lib/docker /srv/data
 +  
 +Edit the systemd service for Docker:
 +
 +  systemctl edit docker.service (only if moving)
 +  
 +Add the following to the top of the override file:
 +
 +  <code>
 +  [Service]
 +  ExecStart=
 +  ExecStart=/usr/bin/dockerd -–data-root=/srv/data/docker -H fd:// --containerd=/run/containerd/containerd.sock
 +  </code>
 +  
 +Restart Docker:
 +
 +  systemctl daemon-reload
 +  systemctl start docker.service
 +  
 +Check it still works with:
 +
 +  docker run hello-world
 +  
 +===== GPU Hardware Acceleration =====
 +
 +Download and save the NVIDIA repository signing key:
 +
 +  curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /etc/apt/keyrings/nvidia-container.gpg
 +  
 +Add the Docker repository in /etc/apt/sources.list.d/nvidia-container.list:
 +
 +  deb [signed-by=/etc/apt/keyrings/nvidia-container.gpg] https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/$(ARCH) /
 +  
 +Allow unattended updates from this repository by add to /etc/apt/apt.conf.d/50unattended-upgrades:
 +
 +<code>
 +Unattended-Upgrade::Origins-Pattern {
 +        "site=nvidia.github.io";
 +};
 +</code>
 +
 +Update the repositories and install the package:
 +
 +<code>
 +apt update
 +apt install nvidia-docker2
 +</code>
 +
 +Restart Docker:
 +
 +  systemctl restart docker.service
 +  
 +
 +
 +===== Frigate =====
 +
 +If using ZFS, create a filesystem to store the video recordings (not used currently)
 +
 +  zfs create -o recordsize=1M -o compression=off -o quota=256G data/cctv
 +  
 +Create a configuration directory for Frigate:
 +
 +  mkdir /etc/frigate
 +  
 +Create /etc/frigate/docker-compose.yml:
 +
 +<code>
 +version: "3.9"
 +services:
 +  frigate:
 +    container_name: frigate
 +    privileged: true # this may not be necessary for all setups
 +    restart: unless-stopped
 +    image: ghcr.io/blakeblackshear/frigate:stable-tensorrt
 +    network_mode: bridge
 +    deploy:
 +      resources:
 +        reservations:
 +          devices:
 +            - driver: nvidia
 +              count: 1
 +              capabilities: [gpu]
 +    shm_size: "128mb" # 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
 +    volumes:
 +      - /etc/localtime:/etc/localtime:ro
 +#      - /etc/frigate/trt-models:/trt-models:ro
 +      - /etc/frigate/:/config
 +      - /srv/cctv:/media/frigate
 +      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
 +        target: /tmp/cache
 +        tmpfs:
 +          size: 1000000000
 +    ports:
 +      - "5000:5000"
 +      - "8554:8554" # RTSP feeds
 +      - "8555:8555/tcp" # WebRTC over tcp
 +      - "8555:8555/udp" # WebRTC over udp
 +    environment:
 +#      - FRIGATE_RTSP_PASSWORD: "Rd54bRZYghUuDWoXC2SPVr"
 +      - YOLO_MODELS=yolov7-tiny-416
 +</code>
 +
 +Create /etc/frigate/config.yml:
 +
 +<code>
 +version: 0.14
 +
 +mqtt:
 +  host: mqtt.scottworld.net
 +  user: scottbroker
 +  password: mqtt1
 +
 +#detectors:
 +#  coral:
 +#    type: edgetpu
 +#    device: usb
 +
 +detectors:
 +  tensorrt:
 +    type: tensorrt
 +    device: 0
 +
 +model:
 +  path: /config/model_cache/tensorrt/yolov7-tiny-416.trt
 +  input_tensor: nchw
 +  input_pixel_format: rgb
 +  width: 416
 +  height: 416
 +
 +ffmpeg:
 +  hwaccel_args: preset-nvidia
 +  input_args: preset-http-reolink
 +  output_args:
 +    record: preset-record-generic-audio-copy
 +
 +timestamp_style:
 +  format: '%Y-%m-%d %H:%M:%S'
 +
 +go2rtc:
 +  streams:
 +    FrontCam:
 +      - ffmpeg:http://frontcam.scottworld.net/flv?port-1935&app=bcs&stream=channel0_main.bcs&user=camera&password=camera#video=copy#audio=copy
 +    BackCam:
 +      - ffmpeg:http://backcam.scottworld.net/flv?port-1935&app=bcs&stream=channel0_main.bcs&user=camera&password=camera#video=copy#audio=copy
 +    Doorbell:
 +      - ffmpeg:http://doorbell.scottworld.net/flv?port-1935&app=bcs&stream=channel0_main.bcs&user=camera&password=camera#video=copy#audio=copy
 +
 +cameras:
 +  FrontCam:
 +    ffmpeg:
 +      inputs:
 +        - path: 
 +            http://frontcam.scottworld.net/flv?port-1935&app=bcs&stream=channel0_ext.bcs&user=camera&password=camera
 +          roles:
 +            - detect
 +        - path: rtsp://127.0.0.1:8554/FrontCam?video=copy&audio=aac
 +          input_args: preset-rtsp-restream
 +          roles:
 +            - record
 +    motion:
 +      mask: 1,0,0,0,0,0.145,0.278,0.057,0.281,0.168,0.515,0.306,0.519,0.168,1,0.433
 +    objects:
 +      track:
 +        - person
 +        - car
 +        - bicycle
 +        - motorcycle
 +    zones:
 +      front_drive:
 +        coordinates: 1,0.447,1,1,0,1,0,0.156,0.27,0.067,0.273,0.18,0.525,0.338,0.527,0.179
 +        objects:
 +          - person
 +          - car
 +          - bicycle
 +          - motorcycle
 +        inertia: 3
 +        loitering_time: 0
 +    review:
 +      alerts:
 +        required_zones:
 +          - front_drive
 +
 +  BackCam:
 +    ffmpeg:
 +      inputs:
 +        - path: 
 +            http://backcam.scottworld.net/flv?port-1935&app=bcs&stream=channel0_ext.bcs&user=camera&password=camera
 +          roles:
 +            - detect
 +        - path: rtsp://127.0.0.1:8554/BackCam?video=copy&audio=aac
 +          input_args: preset-rtsp-restream
 +          roles:
 +            - record
 +    motion:
 +      mask: 1,0,1,0.071,0.57,0.068,0.568,0
 +    objects:
 +      track:
 +        - person
 +        - cat
 +        - bird
 +    zones:
 +      back_garden:
 +        coordinates: 0.487,1,0,1,0,0,0.54,0,0.54,0.088,0.797,0.094,1,0.435,0.824,0.775,0.866,1
 +        objects:
 +          - person
 +          - cat
 +          - bird
 +        inertia: 3
 +        loitering_time: 0
 +    review:
 +      alerts:
 +        required_zones:
 +          - back_garden
 +
 +  Doorbell:
 +    ffmpeg:
 +      inputs:
 +        - path: 
 +            http://doorbell.scottworld.net/flv?port-1935&app=bcs&stream=channel0_ext.bcs&user=camera&password=camera
 +          roles:
 +            - detect
 +        - path: rtsp://127.0.0.1:8554/Doorbell?video=copy&audio=aac
 +          input_args: preset-rtsp-restream
 +          roles:
 +            - record
 +    motion:
 +      mask: 1,0,1,0.501,1,0.633,0.906,0.591,0.907,0.489,0,0.427,0,0
 +    objects:
 +      track:
 +        - person
 +    zones:
 +      front_porch:
 +        coordinates: 1,1,0,1,0,0.438,1,0.5
 +        objects: person
 +        inertia: 3
 +        loitering_time: 0
 +    review:
 +      alerts:
 +        required_zones:
 +          - front_porch
 +
 +birdseye:
 +  enabled: true
 +  mode: motion
 +
 +record:
 +  sync_recordings: true
 +  enabled: true
 +  retain:
 +    days: 7
 +    mode: motion
 +  events:
 +    retain:
 +      default: 28
 +      mode: active_objects
 +
 +snapshots:
 +  enabled: true
 +
 +</code>
 +
 +Start Frigate with:
 +
 +  docker compose -f /etc/frigate/docker-compose.yml up -d
 +  
 +Visit the Frigate interface via:
 +
 +  http://server:5000/
 +  
 +Update the Image with
 +
 +  docker compose -f /etc/frigate/docker-compose.yml down
 +  docker compose -f /etc/frigate/docker-compose.yml pull
 +  docker compose -f /etc/frigate/docker-compose.yml up    (Add the -d option to start with a detach option)
 +  
 +  docker image prune
 +  docker container prune 
 +  (on an upgrade)
frigate_nvr_installation.1733496006.txt.gz · Last modified: 2024/12/06 15:40 by mark_scottworld.net

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki