Videosorveglianza con webcam : motion

Sono sempre stato incuriosito dalla possibilità di uso non convenzionale della mia . Onestamente da quando l’ho acquistata quasi un anno fa l’avrò usata al massimo in 3 o 4 occasioni. Così, mi sono detto che forse era il caso di usare la per un uso diverso dalle videochiamate e visto che mi trovo spesso a stare lontano dal mio desktop che resta acceso anche in mia assenza, non è del tutto sbagliata l’idea di videosorvegliarlo. Ovviamente con Linux si può fare TUTTO, anche l’inimmaginabile… basta un po’ di tempo ed un po’ di esperienza ed il gioco è fatto. Oggi si parla di Motion, software capace di rilevare movimenti in una fonte video (quale una ) e registarli in file video ed immagini.

Lo so, siete in molti a conoscere . Ma, da quanto ho visto in giro per la rete, non esistono guide in italiano che ne spieghino in maniera esaustiva l’uso e la configurazione. Ecco perchè ho deciso di scrivere qualche parola in tal proposito.

Chi ha già avuto modo di leggere i miei articoli sa che farò riferimento all’installazione di su Debian e Ubuntu, ma come al solito è possibile riprodurre quanto scrivo anche su altre distribuzioni. Inoltre, considererò che abbiate una già installata e funzionante. Se così non fosse, cercate la guida per far funzionare la vostra su Linux… qui una lista di periferiche compatibili o meno con Linux.

Inziamo l’installazione come sempre con terminale di root:

# apt-get install

Verrà installato il necessario per usare . Infatti, sin da subito, se la vostra è funzionante, inizerà a captare le immagini e vi ritroverete nella cartella /tmp/ una miriade di immagini Jpg. Proprio per questo motivo è opportuno configurare per bene il software in modo da renderlo adatto alle nostre esigenze.

Procediamo, in primis, con lo spegnimento del software. Da un terminale di root digitate il seguente comando:

# /etc/init.d/ stop

Adesso siamo pronti a ritoccare il file “/etc//.conf” ed eventualmente i file “/etc//thread1.conf” e seguenti. Il primo file menzionato contiene tutte le direttive necessarie al funzionamento di e necessarie al funzionamento di una sola . I files “threadX.conf” (dove al posto di X c’è un numero progressivo) devono essere editati solo ed esclusiva,ente nel caso in cui abbiate più di una da collegare alla vostra station di videosorveglianza :D Badate bene… il team di sviluppo di sconsiglia di usare tutte telecamere USB, a meno che non abbiate apposite schede PCI capaci di gestire singolarmente le singole “prese” usb. Infatti, una su USB è molto facile che saturi il canale su cui è attaccata! Ma andiamo avanti.

Editiamo il file “.conf” con il nostro editor di testi preferito. Io userò vim, ma se volete potete usare il più comodo Gedit o Kedit sostituendo al comando che segue la parola “vim” con l’editor che più vi aggrada:

# vim /etc//.conf

Verrà aperto un file molto lungo e ricco di opzioni. Alcune di esse è preferibile lasciarle come sono, a meno di non sapere esattamente cosa si sta per fare. Io vi mostrerò come ritoccare alcune opzioni in modo da far salvare le immagini in una directory più comoda da consultare, come configurare alcuni parametri della registrazione ed, infine, in che modo usare l’interfaccia web proteggendola con username e password (non abilitate di default!).

Iniziamo con il configurare come demone. Quindi editiamo una delle prime righe come segue:

# Start in daemon (background) mode and release terminal (default: off)
daemon on

Proseguiamo modificando la directory dove creera il suo pid. Questo ci sarà utile quando avvieremo il software da utente semplice e non all’avvio del computer come avviene normalmente:

# File to store the process ID, also called pid file. (default: not defined)
process_id_file /VOSTRA/HOME/.pid

Recatevi nella sezione del file di configurazione definita “Capture device options” ed editate le righe relative alla definizione della vostra :

# Image width (pixels). Valid range: Camera dependent, default: 352
width 640

# Image height (pixels). Valid range: Camera dependent, default: 288
height 480

Io ho inserito un valore pari a 640×480 perchè la mia supporta immagini ad 1 Megapixel. Ovviamente voi dovrete inserire i valori relativi alla vostra . Potete trovarli sul sito del produttore oppure sui manuali di istruzione :) Qualora non li troviate, lasciate tutto come lo trovate!

Poco più sotto c’è lariga relativa al numero di fotogrammi al secondo che devono essere catturati. Il valore che troveretre di default è “2″. Personalmente ho preferito alzarlo a 5 :)

# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 5

Se avete una di rete e non una cam USB, permette di rilevare il suo flusso dei dati indicando l’indirizzo dove si trova il flusso stesso o le immagini catturate. Per renderla funzionante dovete editare queste righe:

# URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// or file:///)
# Must be a URL that returns single jpeg pictures or a raw mjpeg stream. Default: Not defined
; netcam_url value

# Username and password for network camera (only if required). Default: not defined
# Syntax is user:password
; netcam_userpass value

Ovviamente dovrete rimuovere il simbolo del “punto e virgola” ed inserire i valori corretti! Subito dopo avremo la possibilità di regolare la luminosità, il contrasto e la saturazione che dovranno essere usati nell’acquisizione delle immagini. Queste opzioni hanno ragione di esistere solo se la non ha il rilevamento automatico, come accade con le più economiche (come nel mio caso!). Io ho scelto i valori dopo un po’ di prove, ecco perchè vi consiglio di testare quelli a voi più congeniali:

auto_brightness off

# Valid range 0-255, default 0 = disabled
brightness 24

# Valid range 0-255, default 0 = disabled
contrast 25

# Valid range 0-255, default 0 = disabled
saturation 5

Il resto delle opzioni, per il momento, lasciamole ai valori di default. Spostiamoci adesso nella sezione definita “FFMPEG related options“. Se avete un computer non troppo vecchio abilitiamo la compressione al volo dei fotogrammi tramite l’uso di ffmpeg:

# Use ffmpeg to encode mpeg movies in realtime (default: off)
ffmpeg_cap_new on

Successivamente proseguiamo nello scorrimento del file di configurazione fino ad arrivare alle righe dove si stabilisce la codifica dausare per la creazione del filmato da realizzare nel caso la cam capti movimento davanti a sè. Di default il filmato creato sarà swf. Io preferisco usare qualcosa di diverso ed infatti ho chiesto a di creare un filmato avi :)

# Codec to used by ffmpeg for the video compression.

ffmpeg_video_codec mpeg1

Nelle sezioni successive di .conf possiamo configurare in che modo devono essere salvati i file delle immagini ed i file video. Personalmente ho lasciato tutto di default, riservandomi di stabilire in un momento successivo se modifcare qualcosa. L’unico parametro modificato è stato quello relativo alla directory dove salvare i files. Di default questa viene settata su “/tmp/”. Tuttavia non mi piaceva molto e mi sono creato una cartella nella mia home:

$ mkdir ~/

Quest’ultima l’ho, poi, inserita nel file di configurazione di modificando quella di default:

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
target_dir /home/zeno/

Adesso passiamo alla configurazione di username e password per l’interfaccia web. Infatti, come detto poco fa, possiamo controllare tramite una minimale e semplicissima interfaccia web. Questa, però, sarebbe accessibile a chiunque acceda al nostro computer perchè non è protetta da alcuna password. Siccome a noi non piace ciò, inseriamo i parametri delle password. Rechiamoci nella sezione del file di configurazione di chiamata “HTTP Based Control” e modifichiamo la riga che ci interessa come segue:

# Authentication for the http based control. Syntax username:password
# Default: not defined (Disabled)
control_authentication VOSTRO_USERNAME:VOSTRA_PASSWORD

Continuando nella configurazione, scopriamo qualcosa di interessantissimo: è possibile configurare in modo che quando rileva movimento dica al nostro computer di compiere un’azione. Immaginate quale azione potremmo far compiere? Che ne dite di una bella e-mail? O magari un SMS? Potete farlo modificando queste righe:

# Command to be executed when an event starts. (default: none)
# An event starts at first detected after a period of no defined by gap
; on_event_start value

# Command to be executed when an event ends after a period of no
# (default: none). The period of no is defined by option gap.
; on_event_end value

aggiungendo un comando da lanciare su “on_event_start <comando>”, verrà, ad esempio, inviata una mail quando viene rilevato l’inizio di movimento su ed una successiva e-mail potremmo farla inviare quando il movimento ha termine! Il limite di ciò che potrete fare è dettato solo dalla vostra fantasia!

La parte finale del file di configurazione riguarda l’eventuale uso di un database per memorizzare le immagini, molto utile se volesimo effettuare un vero e proprio sistema di videosorveglianza professionale, dove devono essere memorizzate una gran quantità di immagini ed in maniera molto veloce. Ancora, le ultimissime righe di .conf servono a stabilire le configurazioni di eventuali ulteriori oltre alla prima. In quest’ultimo caso è indispensabile editare il file threadX.conf, uno per ogni . Il suo editing è semplicissimo ed intuitivo. Sappiate che in Debian ed Ubuntu i file di esempio sono già presenti nella directory “/etc//threadX.conf” e vi sarà sufficiente editare quelli!

Adesso siamo pronti ad effettuare gli ultimi ritocchi per lanciare manualmente l’avvio di ed evitare che si avvii in automatico ad ogni avvio del computer. Iniziamo con l’inserire il nostro utente nel gruppo di in modo da permettere all’utente stesso di usare , i suoi comandi ed il suo file di configurazione originale e che abbiamo appena modificato. Apriamo un terminale di root (se non lo avete già aperto) e digitiamo il seguente comando:

# adduser VOSTRO_USER

Tenete presente che affinchè quest’ultima modifica abbia effetto sarà necessario riavviare il server X. Lo potete fare sin da subito oppure finire prima di seguire la guida e poi riavviare il server grafico. Scegliete voi!

A questo punto eliminiamo l’avvio automatico di quando si accende il computer:

# update-rc.d -f remove

Da questo momento in poi saremo noi a stabilire quando far avviare e videosorvegliare, ad esempio, il nostro PC :D Il tutto con un semplice comando da terminale e da utente semplice:

$

Quando sarà avviato il demone, la gestione di può avvenire tramite interfaccia web. Aprite il vostro browser e puntate questo indirizzo:

http://localhost:8080

Avrete accesso ad un’interfaccia minimalissima di con la quale potrete modificare il file di configurazione, rilevarne le attuali impostazioni e soprattutto avviare o mettere in pausa il detection. Inoltre, potrete monitorare in tempo reale cosa sta captando la sempre tramite interfaccia web. Sarà sufficiente puntare il browser a quest’altro indirizzo:

http://localhost:8081

E con questo abbiamo terminato. Divertitevi a videosorvegliare il vostro computer quando voi non ci siete!

fonte : http://www.stefanolaguardia.eu

Lascia un commento