giovedì 29 maggio 2014

Argus – Videosorveglianza Open Source

Argus – Videosorveglianza Open Source



Fonte:  Four Software
La video sorveglianza diventa digitale e visionabile da internet.
Argus è un sistema di videosorveglianza con il supporto per qualunque
tipo di Telecamera (Analogica o Digitale), con funzioni per il
monitoraggio, la registrazione e la gestione degli eventi.


Basato su sistema Open Source permette di ottenere il massimo delle funzionalità nel massimo della libertà.


Gli utenti possono registrare in modo continuo, programmato, su
allarme e/o nel caso in cui venga rilevato un movimento. Il sistema
offre numerose funzioni di ricerca per gli eventi registrati.
Utilizzabile mediante un normalissimo browser Web permette la gestione
remota della totalità delle funzioni: playback registrazioni e
visualizzazione in tempo reale delle telecamere installate.


Progettato per essere utilizzato in qualsiasi momento senza l’installazione di software aggiuntivo.


NEWS: Trasforma il tuo pc in un sistema di videosorveglianza a costo zero.






Argus è un software Open Source che fornisce la soluzione ideale per la realizzazione di un sistema di Video Sorveglianza completo, stabile ed efficiente.
In questo articolo vedremo come installare un server basato su Debian Squeeze con il supporto Video4Linux per l’integrazione di schede di acquisizione video.
In particolar modo utilizzeremo la
seguente scheda di acquisizione video ad 8 ingressi supportata dal
driver bttv (incompatibile con mainboard basate su chipset VIA)
Qualora si dovessero avere problemi di
stabilità si consiglia di utilizzare una versione più recente del kernel
ad esempio la 2.6.35-7.

Scheda acquisizione video 8 ingressi
Scheda acquisizione video 8 ingressi

Scheda acquisizione Video 8 ingressi con connettori
Scheda acquisizione Video 8 ingressi con connettori
Procedere con installazione di un sistema Debian Squeeze seguendo la seguente tabella delle partizioni


Debian Squeeze installazione partizione RAID
Debian Squeeze installazione partizione RAID
Eseguire una installazione minimale depennando tutte le voci nel menu tasksel


Debian Squeeze installazione minimale
Debian Squeeze installazione minimale
Terminata l’installazione del sistema base sistemare /etc/apt/source.list come segue
deb http://ftp.it.debian.org/debian/ squeeze main contrib non-free

deb-src http://ftp.it.debian.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free

deb-src http://security.debian.org/ squeeze/updates main contrib non-free

# squeeze-updates, previously known as ‘volatile’

deb http://ftp.it.debian.org/debian/ squeeze-updates main contrib non-free

deb-src http://ftp.it.debian.org/debian/ squeeze-updates main contrib non-free
Creare utenti e gruppi necessari al funzionamento di Argus
root@argus:~# groupadd surveillance

root@argus:~# useradd -g surveillance -G video dvr

root@argus:~# useradd -g surveillance -G video motion

root@argus:~# apt-get install sudo
Installare sudo ed abilitare gli utenti al suo utilizzo modificando il file /etc/sudoers
Installare apache, php e mysql e programmi vari con il seguente comando
root@argus:~#
apt-get install php5-mysql apache2 libapache2-mod-php5 mysql-server
ntpdate ffmpeg anacron postfix at libmysqlclient-dev libavformat-dev
libavcodec-dev libjpeg62-dev lynx php5-cli php5-gd php-mail
php-mail-mime php-mail-mimedecode php- net-smtp php-net-socket php-pear
php5-common daemontools-run libswscale-dev libavdevice-dev console-tools
git-svn dialog autoconf automake
root@argus:/var/www/video2# chown dvr:surveillance /usr/bin/ffmpeg

root@argus:/var/www/video2# chmod +s /usr/bin/ffmpeg
Terminare l’installazione dei pacchetti utilizzando le configurazioni di default.
Commentare la riga contenente l’utente www-data nel file /etc/at.deny per garantire l’esecuzione dei relativi job.
Modificare i seguenti file impostando il parametro max_execution_time = 0
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
e riavviare apache abilitando la nuova configurazione .
Siamo pronti a scaricare ed installare il front end web di argus.
Scaricare e decomprimere Argus_web.tar.gz sulla document root di Apache e creare i seguenti link simbolici
root@argus:/var/www# ls

Argus_web.tar.gz index.html video2

root@argus:/var/www# tar -xzf Argus_web.tar.gz

root@argus:/var/www# ln -s /var/www/video2 /video

root@argus:/var/www# ln -s /var/www /www
Cambiare la document root di Apache a /var/www/video2 oppure creare un virtual host alternativo.
Creazione del database
root@argus:/var/www/video2/database# ls

argus_template.sql

root@argus:/var/www/video2/database# mysqladmin -uroot -proot create video

root@argus:/var/www/video2/database# mysql -uroot -proot video < argus_template.sql
Editare il file /var/www/video2/config.php per definire il numero di telecamere e la partizione di spool
DEFINE("NUMERO_CAMERE",8);

DEFINE("DISCO","/dev/sda4");
Creare il file /etc/modprobe.d/bttv.conf inserendo le seguenti righe
options bttv card=102,102,102,102,102,102,102,102

options i2c-algo-bit bit_test=1
Editare il file /lib/udev/rules.d/91-permissions.rules e cambiare il gruppo da video a surveillance per il SUBSYSTEM video4linux
# video devices

SUBSYSTEM=="video4linux", GROUP="surveillance"
Creare il file
/etc/udev/rules.d/10-discoesterno-argus.rules con le seguenti regole per
eseguire l’automount di un dispositivo esterno usb storage con uid 33
(www-data)
SUBSYSTEMS=="usb", KERNEL=="sd*", NAME="PENNA%n", RUN+="/bin/mkdir

/var/www/video2/PENNA"

SUBSYSTEMS=="usb", ACTION=="add", RUN+="/bin/mount -t auto -o rw,nosuid,nodev,uid=33,gid=33 /dev/PENNA1 /var/www/video2/PENNA"

SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/rm -rf /var/www/video2/PENNA"

SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/umount -l /var/www/video2/PENNA"
Eseguire il seguente comando per aggiornare il comportamento di udev a runtime
root@argus:~# udevadm control --reload-rules
Installare vloopback dal repository debian squeeze http://www.lavrsen.dk/foswiki/bin/view/Motion /VideoFourLinuxLoopbackDevice
root@argus:/usr/src# apt-get install vloopback-source linux-headers-2.6.32-5-686root@argus:/usr/src# tar -xvjf vloopback.tar.bz2

root@argus:/usr/src# cd modules/vloopback/

root@argus:/usr/src/modules/vloopback# make && make install && depmod -ae
Creare il file /etc/modprobe.d/vloopback.conf con le seguenti opzioni
options vloopback dev_offset=8 pipes=8
Permettere al sistema di caricare il driver appena compilato al boot inserendo la riga vloopback in /etc/modules.
Caricare i driver
root@argus:~# modprobe -r bttv && modprobe -r i2c_algo_bit

root@argus:~# modprobe bttv

root@argus:~# modprobe vloopback

Installazione Motion

Motion è un programma scritto in C e rilasciato sotto licenza GPL (General Public License) e si può liberamente scaricare dal sito http://motion.sourceforge.org.


Motion supporta ingressi video da dispositivi standard Video4Linux, USB Webcam e Network camera.


Per ulteriori informazioni consultare il sito del progetto http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome.


Per il funzionamento della componente monitor di Argus è necessario
utilizzare una versione leggermente modificata del Motion che mette a
disposizione lo stream video su di una unix_socket che verrà poi
utilizzata dal programma argus monitor per visualizzare le immagini
direttamente a monitor.


root@argus:~# mkdir /var/src

root@argus:~# cd /var/src/

root@argus:/var/src# tar -xzf motion_argus.tar.gz

root@argus:/var/src# cd NEW_MOTION/

root@argus:/var/src/NEW_MOTION# mkdir /etc/motion

root@argus:/var/src/NEW_MOTION# ./configure --prefix=/usr --sysconfdir=/etc/motion



Editare il Makefile ed aggiungere “unix_socket.o” alla lista dei target object


OBJ = motion.o logger.o conf.o draw.o jpegutils.o vloopback_motion.o $(VIDEO_OBJ)

netcam.o netcam_ftp.o unix_socket.o netcam_jpeg.o netcam_wget.o track.o

alg.o event.o picture.o rotate.o webhttpd.o

stream.o md5.o ffmpeg.o

root@argus:/var/src/NEW_MOTION# make uninstall && make clean
root@argus:/var/src/NEW_MOTION# make && make install



Copiare la configurazione


root@argus:/var/www/video2/conf_file# cp *.conf /etc/motion/

root@argus:/var/www/video2/conf_file# cp motion_init /etc/init.d/motion

root@argus:/var/www/video2/conf_file# chmod 755 /etc/init.d/motion

root@argus:/var/www/video2/conf_file# update-rc.d motion defaults

root@argus:/var/www/video2/conf_file# mkdir -p /var/run/motion

root@argus:/var/www/video2/conf_file# chown -R motion:surveillance /var/run/motion

root@argus:/var/www/video2/conf_file# chown -R motion:surveillance /etc/motion/ && chmod -R 775 /etc/motion/

root@argus:/var/www/video2/conf_file# cp onStart /etc/init.d/onStart

root@argus:/var/www/video2/conf_file# chmod 755 /etc/init.d/onStart

root@argus:/var/www/video2/conf_file# update-rc.d onStart defaults

root@argus:/var/www/video2/conf_file# cp gestione

gestioneDisco gestioneMotion

root@argus:/var/www/video2/conf_file# cp gestione* /etc/cron.hourly/

root@argus:/var/www/video2/conf_file# chmod 755 /etc/cron.hourly/gestione*



Riavviare il sistema.
L’ installazione dovrebbe essere completa
e sarà possibile raggiungere argus tramite browser all’indirizzo
http://$ARGUS oppure http.//$ARGUS/web-mobile per la versione mobile.
Fare riferimento alla guida per ulteriori delucidazioni.
Installazione monitor (Opzionale)
L’applicazione monitor di Argus permette
di ottenere la visualizzazione real time delle telecamere installate, le
registrazioni e gli allarmi direttamente a video.
L’applicazione è sviluppata in GTK con binding su directfb di conseguenza fare riferimento alla home page del progetto http://directfb.org/wiki/index.php/Projects:GTK_on_DirectFB#Debian.
L’installer di Debian fino alla
precedente versione stabile “Lenny” era sviluppato con le
libgtk-directfb, a partire dal primo rilascio di “Squeeze” questa
tecnologia è stata abbandonata a favore di un installer basato su X11.
Purtroppo il repository di “Squeeze” non
ha più alcun riferimento a pacchetti installabili libgtk-directfb di
conseguenza esistevano due possibilità.
La prima era quella di ricostruire i
pacchetti debian o comunque compilare gtk con il supporto a directfb
(–with-gdktarget=directfb) ed utilizzare il codice monitor esistente; la
seconda soluzione consisteva nell’eseguire un porting del codice
monitor a X11.
Per utilizzare la versione stabile del monitor scaricarla da qui (Funzionante al 100% su Debian Lenny).
Le librerie GTK Directfb pacchettizzate
in debian lenny hanno un bug che provoca memory leak in quanto le
finestre create non vengono effettivamente distrutte (http://ftp.acc.umu.se/mirror/gnome.org/sources/gtk+/2.15/gtk+-2.15.5.changes fare riferimento a Bug 533456)
Chiunque volesse utilizzare la versione
per lenny puo’ utilizzare questi pacchetti per architettura amd64 che
risolvono il precedente problema (link ai pacchetti *.deb contenuti
nell’archivio)
In questo HOWTO procederemo con una
versione alternativa del monitor compatibile con Debian Squeeze anche se
il porting realizzato non risulta ancora stabile.
Si spera che il contributo della comunità
ed un po’ di tempo libero a nostra disposizione possa permettere di
portare avanti il progetto con una versione stabile del monitor basata
su X11.
Qualora si desiderasse utilizzare una
versione del monitor stabile fare riferimento al seguente link (link a
preinstallato) oppure eseguire una installazione di Argus sulla
precedente versione stabile di Debian (Lenny).
Dobbiamo dunque procedere con
l’installazione di un Windows Desktop Environment; per la realizzazione
di questo howto ho preferito utilizzare xfce che è parecchio leggero ed
efficiente.
root@argus:/var/src# apt-get install xfce4
Questo comando installerà tutte le dipendenze necessarie
Scaricare il file argus_monitor.tar.gz ed
estrarlo in /usr/share/monitor/ oppure modificare opportunamente il
file config.h e rc_file.
Per l’integrazione di un telecomando si procede con l’installazione di LIRC (www.lirc.org)
root@argus:/var/src# git clone git://lirc.git.sourceforge.net/gitroot/lirc/lirc

Cloning into lirc...

remote: Counting objects: 13436, done.

remote: Compressing objects: 100% (3474/3474), done.

remote: Total 13436 (delta 10406), reused 12732 (delta 9826)

Receiving objects: 100% (13436/13436), 2.59 MiB | 570 KiB/s, done.

Resolving deltas: 100% (10406/10406), done.

root@argus:/var/src# cd lirc

root@argus:/var/src/lirc# ./autogen.sh

libtoolize: putting auxiliary files in `.'.

libtoolize: copying file `./ltmain.sh'

libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.

libtoolize: copying file `m4/libtool.m4'

libtoolize: copying file `m4/ltoptions.m4'

libtoolize: copying file `m4/ltsugar.m4'

libtoolize: copying file `m4/ltversion.m4'

libtoolize: copying file `m4/lt~obsolete.m4'

libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.

configure.ac:17: installing `./compile'
configure.ac:24: installing `./config.guess'

configure.ac:24: installing `./config.sub'

configure.ac:10: installing `./install-sh'

configure.ac:10: installing `./missing'

daemons/Makefile.am: installing `./depcomp'

Makefile.am: installing `./INSTALL'

Creating setup-driver.sh ...

root@argus:/var/src/lirc# ./setup.sh

root@argus:/var/src/lirc# ./configure --prefix=/usr --sysconfdir=/etc --sysconfdir=/etc

--with-driver=serial --with-port=0x3f8 –with-irq=4

root@argus:/var/src/lirc# make && make install
Copiare il file di init presente
nell’archivio monitor_argus in /etc/init.d/lirc ed i file di
configurazione che dovranno essere editati per cambiare la mappatura del
telecomando o i driver da utlizzare.
root@argus:/var/src/monitor_argus# cp lirc_file/lirc.init.d /etc/init.d/lirc

root@argus:/var/src/monitor_argus# chmod 755 /etc/init.d/lirc

root@argus:/var/src/monitor_argus# chmod 755 /etc/init.d/lirc

root@argus:/var/src/monitor_argus# update-rc.d lirc defaults

update-rc.d: using dependency based boot sequencing

root@argus:/var/src/monitor_argus# mkdir /etc/lirc/

root@argus:/var/src/monitor_argus# cp lirc_file/*.conf /etc/lirc/
Si suppone che si stia utilizzando il
telecomando URC6211 (codice programmazione 21214 ) ed un ricevitore
collegato a porta seriale analogo a questo http://www.lirc.org/receivers.html.
telecomando URC6211
telecomando URC6211
Compilazione monitor


root@argus:/usr/share/monitor# cp ffmpeg_header/* /usr/include/libavcodec/

root@argus:/usr/share/monitor# make && cp main /usr/bin/monitor



Aprire il Desktop Envoronment con startxfce4 ed eseguire il seguente comando da xterminal


root@argus:/usr/share/monitor#monitor 8


Per aprire il programma appena installato.


Videosorveglianza Argus
Videosorveglianza Argus


Nessun commento:

Posta un commento