Aug 312010
 

sorveglianzaOrmai tutti i nuovi netbook o molti laptop sono dotati di webcam integrata, o comunque aggiungerne una esterna costa davvero poco, a parte l’uso tradizionale nelle video chiamate è possibile utilizzare il nostro box Linux per realizzare un dispositivo di sorveglianza, può essere usato per controllare vostro figlio mentre siete ad un altro PC, o il vostro animale mentre siete al lavoro, o per avere un sistema di videosorveglianza delle vostre proprietà fatto in casa.

Per realizzarlo useremo il software Motion presente in molte distribuzioni, io vi darò i comandi per una Ubunto (la mia è una 10.04).

Caratteristica che mi ha fatto scegliere questo software è la possibilità di rimanere “addormentato” fino a quando non rileva un rumore o del movimento, ed a quel punto si attiva e registra, oltre alla possibilità di definire azioni custom (mandare una mail, un sms, etc.)


Installazione, abbastanza facile (diventate root):

aptitude install motion

Adesso editiamo il file di configurazione, apritelo con un editor, io userò gedit

gedit /etc/motion/motion.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 (il default è /tmp), come configurare alcuni parametri della registrazione ed, infine, in che modo usare l’interfaccia web proteggendola con username e password (non abilitate di default!).

Per prima cosa attiviamo Motion in modalità demone, in modo che possa essere attivo indipendentemente dalla nostra sessione.

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

Modifichiamo l’opzione che indica dove scrivere il pid del demone, mettiamolo in /home/NOSTROUTENTE/ in modo da avere i giusti permessi.

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

Cambiamo le impostazioni sulla risoluzione delle immagini io userò 640×480

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

Ed adesso decidiamo quante immagini prendere ogni secondo, mettiamo un 4 (può variare da 2 a 100).

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

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 webcam non ha il rilevamento automatico, come accade con le webcam più economiche, io proverò a lasciare i valori di default.

# Let motion regulate the brightness of a video device (default: off).
# The auto_brightness feature uses the brightness option as its target value.
# If brightness is zero auto_brightness will adjust to average brightness value 128.
# Only recommended for cameras without auto brightness
auto_brightness off

# Set the initial brightness of a video device.
# If auto_brightness is enabled, this value defines the average brightness level
# which Motion will try and adjust to.
# Valid range 0-255, default 0 = disabled
brightness 0

# Set the contrast of a video device.
# Valid range 0-255, default 0 = disabled
contrast 0

# Set the saturation of a video device.
# Valid range 0-255, default 0 = disabled
saturation 0

lasciamo un po di opzioni come sono per il momento, e cambiamo il codec da utilizzare per il film che produceremo, non mi piace il default (flash) e così ho messo mpeg4

# Codec to used by ffmpeg for the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 – gives you files with extension .mpg
# mpeg4 or msmpeg4 – gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf – gives you a flash film with extension .swf
# flv – gives you a flash video with extension .flv
# ffv1 – FF video codec 1 for Lossless Encoding ( experimental )
# mov – QuickTime ( testing )
ffmpeg_video_codec mpeg4

L’ultima opzione che ho cambiato è la destinazione dove saranno scritti i file, il default è /tmp, ma visto che Ubuntu la cancella ad ogni boot, non mi pare una buona idea, indicate una directory dove potete scrivere come utente ed avete molto spazio (io ho messo /home/myuser/motion/)

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

Motion espone le immagini catturate attraverso una interfaccia web, mettiamoci un username ed una password

# Authentication for the http based control. Syntax username:password

# Default: not defined (Disabled)
control_authentication username:PASSWORD

A questo punto salviamo il file; ed aggiungiamo al nostro username il gruppo motion:

adduser USER motion

Tenete presente che affinchè quest’ultima modifica abbia effetto sarà necessario riavviare il server X, ovvero basta fare un logout e poi un login.
A questo punto eliminiamo l’avvio automatico di motion quando si accende il computer:

update-rc.d -f motion remove

Da questo momento in poi saremo noi a stabilire quando far avviare Motion e videosorvegliare, Il tutto con un semplice comando da terminale e da utente semplice: motion

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

http://localhost:8080

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

http://localhost:8081

Infine, se volete associare qualche azione particolare ad un rilevamento di un movimento dovete agire sul file di configurazione di motion (/etc/motion/motion.conf) e modificare questi parametri

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

Dovete mettere il vostro script al posto di value, potrebeb essere una email, un sms o qualsiasi azione che può essere iniziata dal vostro PC.

Ed ora, divertitevi a vedere cosa succede davanti alla webcam quando voi siete via.

Articolo basato sulla guida originale: http://www.stefanolaguardia.eu/2008/08/30/linux-videosorveglianza-con-webcam-facile-come-bere-un-bicchiere-dacqua-grazie-a-motion/

Popular Posts:

Flattr this!

  9 Responses to “Realizzare un webcam server”

  1. […] Følg guiden her. Related Tags: Linux, motion, webcam Previous Topic: Ringsted: Succes med Ubuntu XP-look […]

  2. […] 第一份方案是基于Motion软件的。能够在特定环境下触发,如声音、特定操作等,并能用邮件、SMS远程操纵,同时支持远程调节亮度、对比度等。  原文 […]

  3. […] mode,change the image resolution,adjust the brightness, contrast and saturation,etc.. (Read the original post to do these […]

  4. […] mode,change the image resolution,adjust the brightness, contrast and saturation,etc.. (Read the original post to do these […]

  5. […] 第一份方案是基于 Motion 软件的。能够在特定环境下触发,如声音、特定操作等,并能用邮件、SMS远程操纵,同时支持远程调节亮度、对比度等。  原文 […]

  6. this is cool. thanks for the info.

  7. Not every Linux distribution runs aptitude.

    • I usually do example based on my Ubuntu, i’m sure that the users of other distro know their package manager and so have no difficulty in installing it.

      Also Ubuntu and Debian have large repository this is not true for all distro, and sometime you’ll have to go from the source.

      Bye

  8. Thanks for sharing! I played around with ffserver for 7 hours yesterday but could not get it to work. Your instructions for motion worked instantly and the ability to create masks is excellent (about to try that out). Next I’ll read your newer blog “WEBCAM SERVER ON LINUX 2”. Thanks again!

Leave a Reply to linuxari Cancel reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*