Meniu

Supraveghere video sub Linux folosind ZoneMinder

ZoneMinder este cel mai profesional soft de monitorizare video disponibil pe Linux. Am avut ocazia sa il folosesc impreuna cu o camera conectata la server-ul cu ZoneMinder prin retea.

Configuratia software folosita:
* ZoneMinder 1.21.0 (ruland pe ZoneMinder LiveCD)

Din interfata web ZoneMinder aveti atentie la urmatoarele setari mai delicate:

* ''ZM_OPT_REMOTE_CAMERAS'' - trebuie bifat in cazul de fata
* ''ZM_OPT_USE_AUTH'' - nu ar trebui activat in mod normal
* ''ZM_PATH_LOGS'' - /var/log/zm ar trebui sa fie trecut aici
* ''ZM_COLOUR_JPEG_FILES'' - nu e nevoie in cazul de fata
* ''ZM_NETCAM_REGEXPS'' - (nu exista in 1.21.0) debifat
* ''ZM_HTTP_VERSION'' - in cazul de fata e 1.1 la 1.21.0 si 1.0 la 1.21.3
* ''ZM_HTTP_TIMEOUT'' - minim 2500
* ''ZM_WEB_REFRESH_METHOD'' - http
* ''ZM_VIDEO_STREAM_METHOD'' - jpeg

Dupa setarea parametrilor de mai sus si conectarea camerei la server verificati urmatoarele:
* Comanda zmc -m nu trebuie sa returneze imediat. Daca returneaza imediat (cu, sau fara eroare), ceva nu e bine; verificati log-urile.
* Memoria partajata (shared memory) (a se vedea [[Supraveghere_video_sub_Linux_folosind_ZoneMinder#Prima_problema:_memoria_partajat.C4.83_.28shared_memory.29|Prima problema]]) se calculeaza astfel: buffer (tabul ''Buffers'' de la monitor) x latimea imaginii x inaltimea imaginii x 3 (pentru o imagine de 24 biti). Pentru o imagine 640x480 pe 24 biti ar necesita aproximativ 92Mb memorie shared, cu buffer-ele setate standard.== Prima problema: memoria partajata (shared memory) ==
Simptoma: in loguri apar mesaje referitoare la shared memory.
Se rezolva prin marirea memoriei partajate.
Memoria partajata alocata curent poate fi afisata cu comenzile:

cat /proc/sys/kernel/shmall
cat /proc/sys/kernel/shmmax

Valorile returnate sunt in octeti (bytes) si ar trebui sa fie de minim 134217728 (128 MiB).
Daca valorile returnate sunt mai mici decat minimul precizat, ar trebui marite. Pentru a le mari definitiv se editeaza valorile ''kernel.shmall'' si ''kernel.shmmax'' din ''/etc/sysctl.conf''. Daca aceste variabile nu exista in ''sysctl.conf'', ele vor fi create.
Atentie: valorile setate in ''sysctl.conf'' nu vor fi incarcate decat abia la bootare. Pentru aplicarea lor imediata, folositi comanda:

/sbin/sysctl -p

== A doua problema: erori legate de formatul JPEG ==
Simptoma:

# zmc -m 1

Not a JPEG file: starts with 0x48 0x54
Camera reda imagini de dimensiunea 640x480, pe 24 biti culoare, deci acestea trebuie sa fie si setarile monitorului ZM.
Atentie: cu cat imaginea are dimensiuni mai mari si culoare mai adanca, cu atat va creste si valoarea shared memory pe care ZM o cere (a se vedea mai sus).

== A treia problema: Nu apare imagine ==
Simptoma: Nu apare nici o imagine cand se deschide un monitor, in logurile ZM (de obicei aflate in ''/var/log/zm'') totul pare OK, dar in ''/var/log/messages'' apar mesaje de eroare de genul:
Got TERM signal, exiting
Select error: Interrupted system call
Shared memory not initialised by capture daemon
Trebuie verificat ca ''ZM_PATH_ZMS'' sa fie setat corect. In mod normal, in ''/var/www'' trebuie sa existe un director ''cgi-bin'' ce contine doua fisiere, cel putin:

# pwd
/var/www/cgi-bin
# ls
nph-zms zms

Deci, in ''ZM_PATH_ZMS'' se pot pune doua valori: ''/cgi-bin/zms'' sau ''/cgi-bin/nph-zms''. Incercati cu ambele, pana cand functioneaza.

== A patra problema: Camera are uneori probleme si trebuie resetata. ==
Daca ZoneMinder nu mai recepteaza imagini, ping-ul la IP-ul camerei nu mai merge sau are pierderi, trebuie scoasa alimentarea camerei pentru câteva secunde...

Atentie: server-ul de captura va avea nevoie de un hard disk mare pentru a putea face fata cantitatii de date trimisa de camera.
Puteti folosi mecanismul standard al distributiei (e.g. ''tmpwatch'') sau, in lipsa acestuia, o solutie ad-hoc de forma

Andreea

"Rome wasn't built in a day" !
  • | 120 articole

Nici un comentariu inca. Fii primul!
  • powered by Verysign