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

Videosorveglianza con Linux

Guida passo per passo all'installazione e all'uso di un sistema di videosorveglianza con Motion per Linux
Guida passo per passo all'installazione e all'uso di un sistema di videosorveglianza con Motion per Linux
Link copiato negli appunti

A molte persone è capitato, purtroppo, di avere avuto a che fare con tristi sorprese casalinghe, quali furti o atti vandalici. Per questo motivo negli ultimi anni è cresciuto l'interesse verso sistemi di videosorveglianza domestici. Oltre a soluzioni professionali (e a pagamento), esistono alcuni software, per lo più gratuiti, che consentono di installare e personalizzare, più o meno facilmente, un sistema di questo tipo su comuni personal computer.

Nell'ambito di Linux, uno strumento di grande utilità in questo ambito è Motion, un software che consente di registrare tutti i movimenti rilevati, tramite l'uso di una webcam. In questo articolo approfondiremo il suo utilizzo e le sue caratteristiche essenziali, proponendo un semplice esempio di utilizzo.

Installazione

Motion è un software open source, scritto in linguaggio C ed altamente personalizzabile. Esso analizza il flusso di immagini provenienti dalla webcam, e sfrutta tale analisi per rilevare eventuali movimenti. Quando essi sono rilevati, vengono registrate le immagini ottenute dalla webcam, sotto forma di video o come insieme di immagini rappresentanti ciascuna un singolo frame. Questo tipo di meccanismo consente di registrare solo i movimenti, tralasciando innumerevoli immagini identiche con inquadratura fissa e senza nessuna informazione utile.

Per installare Motion è sufficiente scaricare e compilare i sorgenti disponibili sul sito ufficiale del progetto, o utilizzare le versioni disponibili nei repository ufficiali delle maggiori distribuzioni. Una volta installato, Motion crea un gruppo di utenti denominato motion; gli utenti appartenenti a tale gruppo saranno in grado di avviare o fermare l'esecuzione del programma. Per aggiungere il proprio utente al suddetto gruppo, è sufficiente utilizzare il comando adduser:

adduser NOME_UTENTE motion

Fatto ciò, per avviare Motion, è sufficiente che un utente del gruppo motion digiti da terminale:

motion

Per terminarne l'esecuzione, invece, è sufficiente eseguire, con i permessi di amministratore, il comando:

service motion stop

Configurazione

Motion può funzionare sin da subito senza notevoli modifiche. Tuttavia, è quasi sempre necessario settare alcuni parametri contenuti all'interno di un file, il cui path è /etc/motion/motion.conf

Tale file è suddiviso in sezioni, e ciascuna è preceduta da una breve descrizione; ogni sezione consente di personalizzare diversi parametri. Analizzeremo, ora, le sezioni più importanti. Oltre a quelle elencate, ne esistono altre molto interessanti, ma rimandiamo tale approfondimento ai lettori più interessati, ricordando nuovamente il sito ufficiale.

Figura 1: Struttura del file motion.conf
  • Daemon: Motion può essere eseguito come demone (ovvero in background), o come un normale programma. L'esecuzione in background, in generale, è più adatta ad un sistema di videosorveglianza; per questo motivo è bene impostare la voce daemon ad on.
  • Capture Device Options: consente di regolare alcune variabili relative alla qualità delle immagini (luminosità, contrasto, risoluzione, etc...), oltre che stabilire quali driver utilizzare per la webcam.
  • Motion Detection Settings: contiene alcuni parametri per l'algoritmo di riconoscimento del movimento, utili per definire le soglie di tolleranza. Se si vuole che vengano riconosciuti solo movimenti molto significativi, è sufficiente aumentare il valore di threshold; se invece l'obiettivo è rilevare anche movimenti minimali, dovremo diminuire tale valore.
  • Image File Output e FFMpeg Related Options: consentono di modificare dettagli relativi al salvataggio delle immagini e dei video, come il formato e la risoluzione.
  • Target Directories and Filenames for Images and Films: consente di impostare i nomi dei file generati, e la directory ove questi verranno salvati.
  • Live Webcam Server e HTTP Based Control: consentono di utilizzare un'interfaccia HTTP per la configurazione, tramite l'uso di un pannello di controllo accessibile via browser (che, sostanzialmente, rappresenta un'alternativa alla modifica diretta del file motion.conf). Un'altra caratteristica molto interessante di Motion è la possibilità di utilizzarlo come webcam server (più avanti vedremo come). È possibile stabilire i numeri di porta tramite i quali utilizzare tali servizi, la qualità delle immagini o eventualmente una password di protezione.
  • External Commands: fornisce a Motion una delle sue caratteristiche primarie, ovvero la possibilità di eseguire comandi al verificarsi di particolari situazioni: per esempio alla creazione o alla chiusura di un file video (cioè in corrispondenza dell'inizio e della fine di un evento), in corrispondenza di ogni movimento riconosciuto, eccetera.

Videosorveglianza con Motion

Una volta avviato Motion su un server remoto, è possibile salvare le registrazioni ed utilizzare alcuni meccanismi che, in qualche modo, avvisino un utente di un eventuale movimento rilevato. Implementare ciò è, in realtà, più semplice di quanto non sembra: basta, infatti, sfruttare la sezione "External Commands" del file motion.conf, facendo, per esempio, eseguire a Motion uno script che invia una mail in corrispondenza alla rilevazione di un movimento. Vediamo come.

Per prima cosa, apriamo il file motion.conf con i pemessi di amministratore, digitando da terminale:

sudo gedit /etc/motion/motion.conf

Una volta aperto, cerchiamo, nella sezione External Commands la stringa:

; on_movie_start value

Fatto ciò, sostituiamola con la seguente:

on_movie_start echo "Controllare casa!" | mail -s "Movimento rilevato da motion!" nomeutente@html.it

Così facendo, alla creazione di un video, verrà inviata una mail con oggetto "Movimento rilevato da motion!" e corpo del messaggio "Controllare casa!" all'indirizzo "nomeutente@html.it". In altre parole, abbiamo trovato un meccanismo che consente a Motion di avvisare l'utente quando viene rilevato un movimento.

Questo esempio rappresenta un vero e proprio sistema di videosorveglianza rudimentale ma abbastanza efficiente. Esistono, però, molte altre potenzialità di Motion che migliorerebbero tale sistema. Per esempio, potrebbe essere utile consentire ad un utente di controllare quello che la webcam registra in qualsiasi momento, attivando la funzionalità di webcam live server.

Webcam Live Server con Motion

Vediamo, ora, come attivare la suddetta funzionalità. Innanzitutto è necessario consentire l'accesso al server da una qualsiasi postazione esterna. Se si possiede un router NAT, è necessario riservare un numero di porta per Motion, così da consentire ad un utente esterno di connettersi al server. Il numero di questa porta deve essere lo stesso della voce webcam_port della sezione Live Webcam Server del file motion.conf. Inoltre, è necessario porre ad off la variabile webcam_localhost della medesima sezione, in modo da consentire connessioni remote. Fatto ciò, chiunque può visualizzare le immagini della webcam inserendo sul proprio browser l'indirizzo ip seguito da ":" ed il numero di porta. Per esempio:

http://57.152.2.2:3526

La frequenza di refresh (cioè il numero di frame riprodotti al secondo) può essere modificata tramite il parametro webcam_maxrate. Tuttavia valori troppo alti potrebbero rendere difficile la visualizzazione delle immagini da computer remoto, poiché il tempo di download di un singolo frame dovrebbe essere inferiore all'inverso della frequenza (cioè al numero di secondi entro cui può essere scaricato un frame).

Figura 2: Webcam Server con Motion
(clic per ingrandire)

Figura 2: Webcam Server con Motion

Conclusioni

Quello presentato è solo un piccolo e semplice esempio sull'utilizzo di Motion. Esso rappresenta, infatti, un punto di partenza verso veri software più stabili e robusti. Ad esempio, sarebbe possibile eseguire l'upload via FTP o SSH delle immagini su un server remoto, per evitare che eventuali ladri rubino, tra le altre cose, anche lo stesso server e le immagini in esso contenute. Oppure è possibile pensare a soluzione diverse dall'invio di semplici e-mail, che potrebbero essere rimpiazzate dagli sms, magari appoggiandosi ad ulteriori software mirati.

In conclusione, Motion è uno degli strumenti più interessanti forniti dalla comunità open source agli utenti Linux. Con un minimo di attenzione, chiunque potrebbe disporre di una semplice e grande arma contro furti e rapine.

Ti consigliamo anche