Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Raspberry Pi per la videosorveglianza con Frigate NVR

Utilizziamo Raspberry Pi per videosorvegliare gli ambienti con Frigate NVR, soluzione open source per il Network Video Recording
Utilizziamo Raspberry Pi per videosorvegliare gli ambienti con Frigate NVR, soluzione open source per il Network Video Recording
Link copiato negli appunti

Le soluzioni di NVR (Network Video Recording) sono ormai la norma per moltissime realtà aziendali e casalinghe. In rete esistono decine di software dedicati alla videosorveglianza tramite IP Camera connesse alla rete LAN. Per questo motivo oggi vogliamo parlavi di Frigate NVR, un sistema di NVR rilasciato sotto licenza open source che può interfacciarsi con delle telecamere collegate ad un router e accessibili da rete locale.

Frigate NVR offre un vasto set di funzionalità. Oltre alla registrazione ed allo streaming video in tempo reale dispone anche di un sistema di AI integrato per il riconoscimento delle persone, del vento e delle ombre. Supporta la divisione delle riprese in più zone di sorveglianza e può integrasi con Google Coral TPU (Tensor Processing Unit), una piattaforma dedicata agli embedded device, e Home Assistant, noto progetto open source dedicato al mondo della domotica, dell'IoT e più in generale dell'automazione software dei device connessi alla rete.

In particolare impareremo a realizzare un setup di Frigate NVR su Raspberry Pi, cosi da creare una postazione di sorveglianza controllabile da remoto. La guida può essere seguita da chiunque, anche da chi si è appena approcciato al mondo delle distribuzioni Linux ed ha da poco acquistato la piccola board ARM low-cost.

Requisiti hardware

Raspberry Pi 5

Per la creazione del nostro piccolo progetto di videosorveglianza dobbiamo dotarci ovviamente di Raspberry Pi. Vista la potenza hardware richiesta per gestire il flusso di streaming delle telecamere consigliamo di reperire il modello più recente, ovvero il Raspberry Pi 5, con la massima dotazione di RAM disponibile.

Frigate NVR è compatibile con diversi modelli di videocamere ma è sempre meglio controllare in rete se quello che desideriamo può integrarsi con tale software. Suggeriamo anche un SSD molto capiente per gestire le registrazioni.

Configurazione di Raspberry Pi OS

MX Linux Raspberry Pi Edition

Partiamo assicurandoci che il sistema operativo del Raspberry Pi, ovvero Raspberry Pi OS, sia aggiornato con gli ultimi pacchetti disponibili. Quindi apriamo bash e digitiamo:

sudo apt update && sudo apt upgrade -y

Ora dobbiamo indicare alla distribuzione di aumentare il valore della GPU Memory Allocation, cosi da migliorare la prestazioni durante la riproduzione dello streaming video. Quindi apriamo il tool chiamato raspi-config dal terminale:

sudo raspi-config

Spostiamoci con le frecce direzionali nella sezione "Performance Options" e successivamente in "GPU Memory". Adesso digitiamo un valore di almeno 128 MB (o 256MB) e premiamo il tasto invio per confermare la modifica. Fatto questo il tool dovrebbe richiedere il reboot del device.

Installazione di Docker

Dopo il riavvio spostiamoci nuovamente in bash e procediamo all'installazione di Docker, il più noto sistema di container open source:

curl -sSL https://get.docker.com | sh

sudo sh get-docker.sh

sudo usermod -aG docker nomedelvostroutente

Ora aggiungiamo Docker alla lista dei programmi da avviare in automatico al boot:

sudo systemctl enable docker.service && sudo systemctl enable containerd.service

Dunque proviamo se Docker funziona correttamente con questo piccolo comando:

docker run hello-world

Dovremmo ottenere un output simile al seguente:

Hello from Docker!
This message shows that your installation appears to be working correctly.

Installazione del container di Frigate NVR

A questo punto si devono generare delle directory utili all'esecuzione di Frigate NVR. Quindi andiamo su bash e scriviamo:

mkdir ~/frigate-nvr

mkdir ~/frigate-nvr/storage

Dunque creiamo il file di configurazione per il Docker di Frigate NVR tramite l'editor di testo nano:

nano ~/frigate-nvr/config.yml

Per una configurazione standard, che sfrutta anche le modifiche precedenti alla GPU Memory Allocation, dobbiamo usare un setup del genere:

mqtt:
enabled: False
ffmpeg:
hwaccel_args: preset-rpi-64-h264 #Enable Hardware Acceleration
cameras:
name_of_your_camera: #Name for your comment
ffmpeg:
inputs:
- path: rtsp://10.0.10.10:554/rtsp #The Stream you want to monitor
roles:
- detect
detect:
enabled: False # Detection is disabled
width: 1280 # The Cameras resolution
height: 720 # The Cameras resolution

Salviamo con la combinazione di tasti CTRL+O e chiudiamo con CTRL+X.

Passiamo ora al file Docker Compose vero e proprio:

nano ~/frigate-nvr/docker-compose.yml

Anche in questo caso sfruttiamo una configurazione già pronta:

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
shm_size: "64mb"
devices:
- /dev/bus/usb:/dev/bus/usb #Used for Coral if Available
- /dev/video10 #Map the Pi hardware acceleration
volumes:
- /etc/localtime:/etc/localtime:ro
- /home/<ILVOSTRONOMEUTENTE>/frigate-nvr/config.yml:/config/config.yml
- /home/<ILVOSTRONOMEUTENTE>/frigate-nvr/storage:/media/frigate
- type: tmpfs #Remove this if using a Pi with 2GB or Less RAM
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: "<LAVOSTRAPASSWORD>"

Salviamo con CTRL+O e chiudiamo con CTRL+X.

Spostiamoci poi nella directory del programma:

cd ~/frigate-nvr

e avviamo il container:

docker compose up -d

Fatto questo la configurazione preliminare è terminata. Ora dobbiamo recarci nella WebGUI di Frigate NVR ed eseguire il setup delle telecamere che stanno monitorando l'area di nostro interesse.

Accedere alla UI di Frigate NVR

Frigate NVR

Per poter accedere all'interfaccia Web di Frigate NVR apriamo il nostro browser e scriviamo questo nella barra degli URL:

http://192.168.12:5000

Se non conosciamo l'indirizzo IP locale del Raspberry Pi possiamo reperirlo interrogando bash con il comando:

hostname -I

Come risposta il sistema indicherà appunto l'IP locale del device:

192.168.12

La cifra 5000 dopo i due punti è invece la porta su cui Frigate NVR è in ascolto ed è la medesima che troviamo nel file di configurazione.

Dopo aver eseguito il login su Frigate NVR si può impostare il proprio gruppo di telecamere come meglio si preferisce dall'apposita sezione chiamata "Setting". La GUI di Frigate NVR è abbastanza semplice, anche se un po' spartana, e consente ad esempio di configurare le azioni da eseguire dopo determinati eventi. Come avviare una registrazione o inviare delle notifiche all'utente, oltre ovviamente ad amministrare le registrazioni eseguite.

Ti consigliamo anche