Intr-o afacere, securitatea biroului si a banilor sunt un subiect sensibil. Pentru departamentele de facturare si incasare, cateva camere video de supraveghere sunt binevenite. In acest articol vom vedea cum putem interconecta un echipament low-end de supraveghere video cu un server Linux ce va stoca inregistrarile.
Pentru solutia proprie am folosit camere video de retea pentru interior wall-mountable. Ruleaza Linux, au o optica foarte buna, sunt relativ ieftine (in jur de 150 EUR/buc) si sunt disponibile in magazinele IT romanesti.
Primul pas dupa achizitionarea camerelor este instalarea acestora in reteaua proprie. Pe cat posibil, este recomandat ca acest lucru sa se faca intr-o retea cu un server DHCP si fara alti clienti online. Camerele au in mod predefinit activ clientul DHCP si, daca nu aveti un Windows la indemana sa rulati software-ul de pe CD, va trebui sa gasiti adresa IP a fiecarei camere manual (scanping nmap, arping etc). La prima accesare a camerei prin http, aceasta va va cere sa setati parola de root. Ca la orice sistem Linux, e recomandat sa setati o parola solida.
Urmatorul pas este configurarea fiecarei camere pentru folosirea unei adrese IP statice. De asemenea, va recomand sa setati camera sa afiseze data, ora si textul personalizat in stream-ul video. Va fi extrem de util la vizionarea unei inregistrari. Bineinteles, va trebui sa setati ora si data corecte, impreuna cu ajustarile trecerii la orele de vara/iarna si eventual a unui server NTP.
Camerele permit de asemenea redirectionarea output-ului pe alt port decat 80 si activarea modului NAT, astfel incat veti putea accesa stream-urile din exteriorul LAN-ului printr-o singura adresa IP externa.
Dupa reglarea marimii, calitatii, a parametrilor imaginii si a conectarii tuturor camerelor la retea, mai ramane configurarea server-ului de stocare. Stream-ul video emis de camere este in format MJPEG. Pentru captura, se poate folosi orice utilitar de streaming ce suporta autentificare HTTP. Noi vom folosi VLC pentru streaming si Mplayer pentru redare.
Intrarile din crontab relevante:
00 8 * * 1-5 root /scripts/startcam.sh
00 18 * * 1-5 root /scripts/stopcam.sh
In fiecare zi lucratoare, la ora 8 va porni scriptul de inregistrare, iar la 18 cel de oprire a inregistrarii.
Continutul startcam.sh:
#!/bin/bash
OPT="--daemon --intf dummy --no-audio --width 640 --height 480 --no-hdtv-fix"
cd /director/stocare/
/usr/bin/vlc http://root:parola@192.168.1.100/mjpg/video.mjpg $OPT --sout file/avi:`date +%Y-%m-%d`-camera-1.avi
/usr/bin/vlc http://root:parola@192.168.1.101/mjpg/video.mjpg $OPT --sout file/avi:`date +%Y-%m-%d`-camera-2.avi
...
Va trebui sa ajustati adresele IP, parolele si, daca este cazul, alte marimi ale imaginii. Folosirea interfetei dummy in VLC (--intf dummy) este absolut necesara pentru rularea programului din crontab, in caz contrar acesta va incerca sa initializeze interfata grafica si se va opri.
Continutul stopcam.sh:
#!/bin/bash
/usr/bin/killall vlc
Pe setarile maxime de calitate, la o marime de 640x480 de pixeli, fisierul rezultat este de ~1,2GB. Pentru pastrarea inregistrarii unei camere pentru o perioada de 30 de zile si interval zilnic de inregistrare de 10 ore (08:00 - 18:00 de exemplu), este suficient un hard-disk de 500GB. Spatiul consumat se poate reduce, bineinteles, prin recodarea stream-ului video si stocarea in noul format.
Daca serverul de stocare mai este utilizat si la altceva, este insa de preferat inregistrarea in acest format pentru a nu-l supraincarca, recodarea video fiind destul de gurmanda in termeni de utilizare procesor si memorie.