Come impostare una webcam con rilevamento del movimento in Ubuntu

Una fotografia di una persona che ripara una telecamera di sicurezza.

Motion è uno strumento utile che può trasformare la tua normale webcam in una telecamera di sorveglianza. Fa questo monitorando il segnale dalla tua webcam e catturando screenshot e video quando rileva movimento. Qui ti mostriamo come installare Motion e configurare una webcam con rilevamento del movimento in Ubuntu Linux.

Indice

  • Installazione del server Motion
  • Configurazione di Motion per il tuo sistema
  • Modifica della posizione di salvataggio predefinita
  • Ottimizzazione delle impostazioni di rilevamento in Motion
  • Abilitazione dell’interfaccia web di Motion
  • Gestione delle catture salvate da remoto
  • Avvio e test del server Motion

Installazione del server Motion

Motion è incluso per impostazione predefinita nel repository ufficiale di Ubuntu. Questo significa che puoi installare questo programma tramite il tuo gestore pacchetti apt:

sudo apt install motion v4l-utils

Nota: Anche se stiamo trattando Ubuntu in questo articolo, Motion funzionerà anche per la maggior parte delle distribuzioni Linux.

Conferma che il tuo server Motion funzioni correttamente aprendo il prompt di aiuto del programma:

motion -h

Configurazione di Motion per il tuo sistema

Prima di iniziare a configurare Motion, dobbiamo copiare il file di configurazione nella nostra cartella Home in modo da avere un backup pulito dell’originale. Apri un terminale e copia il file di configurazione nella tua cartella Home:

cp /etc/motion/motion.conf ~/motion.conf.backup

Apri il file di configurazione originale utilizzando il tuo editor di testo preferito:

sudo nano /etc/motion/motion.conf

Una delle modifiche più semplici che puoi fare per il tuo server Motion è cambiare la qualità della sua immagine e del video in uscita. Per impostazione predefinita, il server imposta la sua risoluzione a 640×480, che può essere troppo piccola per le webcam moderne.

Per cambiare questo, esegui il seguente comando in una nuova sessione del terminale per controllare le risoluzioni disponibili per la tua telecamera:

sudo v4l2-ctl -d /dev/video0 --list-formats-ext

Un terminale che mostra l'elenco delle risoluzioni disponibili per la webcam.

Torna al tuo file di configurazione Motion, scorri verso il basso fino alla categoria “Elaborazione delle immagini”, quindi cerca le variabili width e height.

Un terminale che mostra i valori predefiniti per la risoluzione della webcam di Motion.

Fornisci i valori appropriati per la risoluzione che desideri. Nel mio caso, voglio eseguire Motion in 1280×720, quindi digito “1280” come larghezza e “720” come altezza.

Un terminale che mostra i valori di risoluzione più alta aggiornati per Motion.

Imposta il valore framerate al framerate con cui desideri catturare i tuoi video. Per impostazione predefinita, questo è impostato su “15”, ma puoi abbassarlo per risparmiare spazio su disco.

Un terminale che evidenzia la variabile framerate nel file di configurazione di Motion.

Scorri verso il basso fino alla categoria “Uscita immagine”, quindi imposta il valore della variabile picture_output su “on”. Questo permetterà a Motion di catturare sia immagini che video dalla tua webcam.

Un terminale che mostra la variabile picture_output all'interno del file di configurazione di Motion.

Modifica della posizione di salvataggio predefinita

Un’altra modifica che puoi fare per il tuo server Motion è cambiare dove salva i suoi dati. Questo può essere utile se desideri esportare i tuoi video e immagini catturati in una directory remota montata o in un servizio di archiviazione cloud come Dropbox.

Per iniziare, naviga o crea la directory in cui desideri salvare i tuoi dati:

sudo mkdir /motion/data

Imposta la proprietà della tua directory su “motion:adm”:

sudo chown -R motion:adm /motion/data

Assicurati che l’intero percorso della tua directory sia leggibile da tutti gli utenti:

sudo chmod -R 755 /motion/data

Torna al tuo file di configurazione Motion, cerca la variabile target_dir, quindi imposta il suo valore sul percorso completo della tua directory.

Un terminale che evidenzia la directory dei dati personalizzata per Motion.

Ottimizzazione delle impostazioni di rilevamento in Motion

Motion funziona confrontando la differenza tra il feed video attuale e quello di pochi istanti prima. Se il programma trova una differenza sufficiente tra i due, la classifica come “movimento” e registra un video dell’evento.

Attualmente, Motion presume che una differenza di 1500 pixel sia sufficiente per classificare come “movimento”. Sebbene questo renda il rilevamento del movimento facile per la maggior parte delle webcam, potrebbe essere troppo sensibile per telecamere ad alta risoluzione.

Per ridurre questa sensibilità, vai alla categoria “Rilevamento del movimento”, quindi aumenta il valore della variabile threshold. Trovo che 5500 pixel siano sufficienti per impedire a Motion di registrare movimenti piccoli e non necessari dal feed della webcam.

Un terminale che mostra un valore di soglia personalizzato per il server Motion.

Puoi anche aggiungere la variabile threshold_maximum per impostare un limite sulla differenza che Motion considera come “movimento”. Questo è utile se la tua webcam guarda un’area affollata e desideri che funzioni solo quando c’è meno attività.

Se non sei sicuro dei valori threshold e threshold_maximum per la tua webcam, puoi lasciare che Motion li regoli per te. Per fare ciò, aggiungi la variabile threshold_tune e impostala su “on”.

Un terminale che mostra le diverse opzioni di soglia in pixel per Motion.

Infine, puoi configurare Motion per registrare anche i momenti prima e dopo aver rilevato movimento. Per fare ciò, vai alle variabili pre_capture e post_capture e imposta i loro valori sulla quantità di fotogrammi aggiuntivi che desideri salvare.

Un terminale che mostra i fotogrammi aggiuntivi durante la cattura di immagini e video in Motion.

Abilitazione dell’interfaccia web di Motion

Il server Motion viene fornito con un’interfaccia web che ti consente di monitorare la tua webcam da remoto. Per abilitare questo, vai alla sezione “Webcontrol” della configurazione, quindi imposta il valore della variabile webcontrol_localhost su “off”.

Scorri verso il basso fino alla sezione “Live stream”, quindi imposta il valore di stream_localhost su “off”.

Un terminale che mostra le due opzioni che devi disabilitare per consentire ai sistemi remoti di accedere alla console web di Motion.

Nota: Motion non ha controlli di autenticazione per la sua interfaccia web. Pertanto, chiunque conosca l’indirizzo del tuo server Motion può visualizzare la tua webcam e controllare il servizio.

Gestione delle catture salvate da remoto

Come accennato in precedenza, il modo migliore è salvare le immagini nella tua cartella Dropbox in modo da poterle accedere ovunque tu voglia. Tuttavia, se preferisci avere le immagini caricate sul tuo server di file (via FTP), puoi utilizzare il comando wput per caricare le immagini:

sudo apt install wput

Apri il file di configurazione del tuo server Motion, quindi inserisci le seguenti righe di codice alla fine del file:

on_picture_save wput ftp://YOUR-USERNAME:YOUR-PASSWORD@YOUR-SERVER-ADDRESS %f  
on_movie_end wput ftp://YOUR-USERNAME:YOUR-PASSWORD@YOUR-SERVER-ADDRESS %f

Un terminale che mostra i due hook di script per salvare i media catturati su un server remoto.

Avvio e test del server Motion

Assicurati di salvare il tuo file di configurazione Motion, quindi esegui il seguente comando per avviare il server:

sudo systemctl enable --now motion.service

Conferma che il server funzioni correttamente aprendo un browser web e navigando all’indirizzo IP della tua macchina seguito da “:8080.”

Uno screenshot che mostra la console web di Motion.

Questo aprirà una pagina web che mostra il feed video attuale dalla tua webcam insieme a un menu contenente azioni aggiuntive per il tuo server. Ad esempio, puoi fare clic su Azione -> Snapshot per catturare un’immagine fissa dalla tua webcam.

Uno screenshot che mostra le diverse azioni che puoi fare dalla console web di Motion.

Testa se Motion rileva e registra il movimento dalla tua webcam passando un oggetto davanti alla tua telecamera e controllando il contenuto della tua directory target_dir.

Uno screenshot che mostra Motion che salva i suoi media catturati in una directory personalizzata.

C’è anche uno streaming live che puoi aprire dal tuo lettore multimediale o browser web. Per accedere a questo, naviga all’indirizzo IP della tua macchina seguito da “:8081.”

Uno screenshot che mostra lo streaming video dedicato di Motion.

Trasformare la tua normale webcam in un sistema di rilevamento del movimento è solo una delle cose che puoi fare con le telecamere in Linux. Scopri di più su alcune delle migliori app per webcam per Linux che puoi installare e provare oggi.

Crediti immagine: Bermix Studio tramite Unsplash. Tutte le modifiche e gli screenshot di Ramces Red.