venerdì 26 settembre 2008

Video sorveglianza su Linux con Motion

Avete sempre voluto video sorvegliare il vostro pc quando siete lontani? Di software del genere ne esistono tanti ma oggi voglio illustrarvi motion per Linux Ubuntu. Questo software funzionante da riga di comando, permette di gestire fino a quattro webcam e di scattare delle foto o girare dei video appena viene rilevato un movimento; rilevato quest'ultimo, motion può gestire qualsiasi script.
Per prima cosa bisogna installarlo, quindi da terminale digitate:

- sudo apt-get install motion

Dopo aver installato il software è il momento di agire sul file motion.conf, dove è possibile configurare tutte le opzioni. Quindi sempre da terminale apriamo il file:

- sudo gedit /etc/motion/motion.conf
Nella cartella motion è possibile notare anche altri file con nome threadX.conf che sono i file che gestiscono le varie webcam.
All'interno del file motion.conf cominciamo col modificare una delle prime righe, facendo funzionare motion come demone:

- daemon on

e naturalmente modifichiamo la cartella dove andrà salvato il file motion.pid:

- process_id_file /home/[vostro_username]/motion.pid

Nelle tre opzioni qui sotto potrete modificare rispettivamente: la rotazione dell'immagine (cioè se volete che l'immagine visualizzata dalla webcam deve essere rotata di 90, 180 o 270 gradi); modificare la larghezza e l'altezza:

- rotate 0
- width 640
- height 480

Qui si può modificare il numero di frame catturati ogni secondo:

- framerate 5

Le successive righe sono utilizzate per impostare luminosità, contrasto e saturazione. La prima opzione invece serve a regolare automaticamente la luminosità:

- auto_brightness off
- brightness 0
- contrast 0
- saturation 0

Nella sezione "Motion Detection Settings" si possono settare le impostazioni che determinano il rilevamento dei movimenti (direi di lasciarle così come sono). Qui sotto invece possiamo impostare motion facendogli scattare una foto appena viene rilevato un movimento: l'effetto è quello di ritrovarvi la cartella di salvataggio piena di foto. Se non volete alcuna foto settate su "off". Se volete invece che venga scattata una sola foto all'inizio settate "first".

- output_normal off

Lo stesso vale per i video: settate "on" se volete un video appena viene rilevato un movimento.

- ffmpeg_cap_new off

Sempre nella sezione video potete settare in quale formato salvare il video. Per salvarlo in avi modificate la riga come qui sotto (attenzione: dovrete aver installato il pacchetto ffmpeg).

- ffmpeg_video_codec mpeg1

Nelle righe sotto potete modificare le scritte visualizzate a sinistra e destra dell'immagine. La prima lasciatela così, serve a visualizzare data e ora. La seconda invece potete scrivere qualsiasi cosa oppure lasciarla senza modifiche (se volete che le opzioni funzionino dovrete levare ";" all'inizio della riga).

- text_right %Y-%m-%d\n%T-%q
> - text_left CAMERA %t

Per salvare le foto o i video in una cartella all'interno della vostra home modificate la riga come sotto(naturlamente in questo caso dovrete aver creato la cartella "motion" dentro la vostra home):

- target_dir /home/[vostro_username]/motion

Le due opzioni sotto regolano la porta alla quale dovrete collegarvi da browser per vedere le immagini e per settare la visibilità della webcam. La prima opzione non modificatela, mentre la seconda settatela su "off" se volete vedere le immagini anche da altri pc nella vostra rete oppure direttamente da remoto.

- webcam_port 8081
- webcam_localhost off

Qui sotto invece c'è il numero di porta alla quale dovrete collegarvi per vedere il server che controlla la webcam:

- control_port 8080

Potete anche settare un nome utente e password per entrare all'interno del server di controllo:

- control_authentication username:password

Infine alle voci "on_event_" potete dire al programma quello che deve fare in caso di rilevamento del movimento. Possiamo adesso salvare e chiudere il file e aggiungiamo quindi l'utente motion digitando da terminale:

- sudo adduser VOSTRO_USER motion

e cancelliamo l'avvio automatico di motion all'avvio del sistema:

- sudo update-rc.d -f motion remove

A questo punto possiamo avviare motion digitando semplicemente:

- motion

e colleghiamoci al server della webcam scrivendo sul browser:

- http://localhost:8081

o al server di controllo digitando:

- http://localhost:8080

Buon divertimento!
"Aiutaci a crescere. Se ti è piaciuto questo articolo condividilo con i tuoi amici tramite i pulsanti di condivisione"

11 commenti:

Mario1 ha detto...

Ottimo, provato, funge, ma come stoppo poi motion? Grazie da un dilettante allo sbaraglio.
Mario1

Adriano Assennato ha detto...

Io semplicemente stoppo il processo premendo [ctrl c] o [ctrl z]

Mario1 ha detto...

L'ho scoperto per caso pochi secondi prima della tua risposta. Adessto pasticcio un po' per inviare il filmato ad na pagina web, comunque da localhost:8080 si possono modificare le impostazioni, ma occorre chiudere motion e poi riavviarlo, che storia....
grazie per la risposta
Mario1

Adriano Assennato ha detto...

Si alcune impostazioni hanno bisogno del riavvio

Unknown ha detto...

Ciao, è possibile salvare file e video su un server remoto invece che in locale? ho provato a settare un indirizzo http e ftp di un mio server ma non funge. Grazie

Adriano Assennato ha detto...

Io sinceramente non ci ho mai provato, però non credo si possa fare. Se vuoi puoi utilizzare un porgramma più professionale come ZoneMinder. Questo software può essere interamente gestito tramite browser anche da remoto. Mi pare comunque che non permette anche questo la registrazione in remoto, ma di sicuro puoi vedere le registrazioni da remoto.

Dony ha detto...

ciao ho seguito la guida e direi che va tutto bene tranne una cosa. ho attivato lo stream da remoto e x connettermi da firefox do "http://mioip:8081" solo che non vedo niente. dove sta l'errore? con localhost e con il mio indirizzo locale funziona. se invece do http://mioip si apre la home del mio router. preciso che la porta 8081 è aperta. suggerimenti?

Adriano Assennato ha detto...

Se sei sicuro di aver aperto la porta all'ip del pc dove è collegata la webcam (intendo quello locale ad esempio 192.168.1.X) ed hai settato webcam_localhost su off dovrebbe funzionare.
Dopo aver apporta le modifiche hai riavviato il programma?
Intendo se hai dato il comando

sudo /etc/init.d motion restart

Fami sapere ciao!

Dony ha detto...

si ho fatto tutto ma non va.... la pagina resta in caricamento ma senza nessun risultato.

Adriano Assennato ha detto...

Strano non ho mai avuto problemi di questo genere. Il problema dovrebbe derivare o da una porta chiusa oppure dall'indirizzo ip locale che magari non è corretto. Ma tu provi da remoto ovviamente collegandoti ad una rete completamente estranea alla tua?
In ogni caso se non funziona ancora puoi provare l'altro software recensito sempre in questo blog, ZoneMinder.

Unknown ha detto...

ciao, sei ancora attivo su motion?

Posta un commento