Linux notes Система відеоспостереження (ZoneMinder
четвер, 16 травня 2013 р.
1. Встановлення ZoneMinder
Встановимо ZoneMinder з репозиторію:# sudo apt-get install zoneminder
Створимо символьне посилання на конфіг Apache2 для ZoneMinder'a:# sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
Перезавантажимо Apache2:# sudo /etc/init.d/apache2 force-reloadВідредагуємо змінні ядра:# sudo nano /etc/sysctl.confДля збільшення кількості та обсягуShared Memoryдодаємо:kernel.shmall = 167772160kernel .shmmax =167772160
І перезавантажуємося, якщо ж хочемо побачити ефект відразу:# sudo echo 167772160 > /proc/sys/kernel/shmall# sudo echo 167772160 > /proc/sys/kernel/shmmax# sudo sysctl -p
Логи знаходяться тут:/tmpі тут/var/log/syslog.
2. Встановлення камер
2.1 Підключення камер до мережі
У мене є всього 4 камери: 2D-Link DCS-930(бездротові) та 2Axis 206(провідні).
Виявити камери AXIS в мережі дозволяє їх утиліта: AXIS IP Utility v2 Оскільки я не мав доступу до роутера, тоD-linkкамери я шукав за допомогою утиліти nmap:# sudo nmap 192.168.1.*
D-Linkкамери можна обчислити за таким висновком:Nmap scan report for 192.168.1.110 Host is up (0.0052s latency). Not shown: 997 closed ports PORT STATE SERVICE 21/tcp open ftp 80/tcp open http 443/tcp open https MAC Address: F0:7D:68:02:29:08 (D- Link)
2.2 Налаштування D-Link DCS-930
ПідключимоD-Link'і доkazmawifi.

Вибираємо вкладкуSETUP->Wireless Setup: Тут активуємоwi-fiвстановивши значенняWIRELESSSETTINGSуEnable.Знаходимо потрібний нам вайфай натиснувши на кнопкуSite survey. Не забуваємо ввести пароль, у поліPre-Shared Key, і тиснемоSave Settings.
Тепер нам необхідно створити користувача з-під якого будемо забирати зображення з камер. Переходимо у вкладкуMAINTENANCE:

І додаємо нового користувача ввівши його логін, пароль і натиснувши кнопкуAddу розділіADD USER ACCOUNT. Я додав користувачаuser, на камерахD-Link DCS-930.
2.3 Налаштування Axis 206.

І додаємо користувач user.
3. Додавання камер до Zoneminder.
У вікні додавання камери нас цікавлять перші дві вкладки:GeneralіSource. Заповнюємо вкладкуGeneralдляD-Link DCS-930:

Решту залишаємо як є, нас це влаштовує.
Тепер перейдемо до заповнення вкладкиSource: ДляD-Link DCS-930:

ДляAxis 206вкладкаGeneralзаповнюється аналогічним чином, тільки ім'я змініть.
А ось заповнення вкладкиSourceдляAxis 206:Remote Protocol - HTTPRemote Method - SimpleRemote Host Name - user:[email protected]Remote Host Part - 80Remote Host Path - /axis-cgi/mjpg/v > ;Remote Images Colours - 24 біт кольориCapture Width (pixels) - 640Capture Height (pixels) - 480Orientation - Normal

Ось що в нас у результаті виходить:

4. Проблеми та їх вирішення з якими я зіткнувся
[Wed May 15 09:43:56 2013] [error] [client 192.168.1.161] array (\n 0 => \n array (\n 'file' =>'/usr/share/zoneminder/ajax/stream.php',\n 'line' => 55,\n 'function' => 'ajaxError',\n 'args' => \n array (\n 0 => 'socket_sendto( /tmp/zms-741127s.sock ) failed: No such file or directory',\n ),\n), \n 1 => \n array (\n 'file' => '/usr/share/zoneminder/index.php',\n 'line' => 124,\n 'args' => \n array (\n 0 => '/usr/share/zoneminder/ajax/stream.php',\n ), \n 'function' => 'require_once',\n),\n), referer: http://192.168. 1.180/zm/index.php?view=watch&m > Пошукавши з цієї помилки точного рішення знайти не зміг. Але зміг завести картинку з камер.
Редагуємо:# sudo nano /etc/apache2/conf.d/zoneminder.conf
і додаємо в кінець такі рядки:ScriptAlias /cgi-bin/zms "/usr/share/zoneminder/cgi-bin/zms"ScriptAlias /cgi-bin/nph -zms "/usr/share/zoneminder/cgi-bin/nph-zms"
Перезапустимо апач:sudo /etc/init.d/apache2 restartабоsudo service apache2 restart
Можна і не так брутально, а просто змусити апач перечитати конфіги:sudo /etc/init.d/apache2 reloadабоsudo service apache2 reload
Дякую gentoo.ru за це рішення.
4.2. Потрібно змінити розташування зображень із камер.
Змінимо місце розташування фотографій з камер, що знімаються поevent'ам:# sudo mkdir /home/zm- Створимо каталог/home/zm# cd /usr/share/zoneminder- Перейдемо в каталог зZoneMinder# sudo ln -s /home/zm /usr/share/zoneminder/ eventsnew- Створимо символьне посиланняeventsnewна каталог/home/zm
Заходимо в панель управління (http://192.168.1.180/zm) і переходимо на сторінкуOptionsі відкриваємо вкладкуPaths, необхідно змінити значенняDIR_EVENTSнаeventsnew.
4.3. Необхідно зберігати зображення не старше 2 тижнів.
УUse FilterвибираємоPurgeWhenFull(менше треба виправляти, ніж стандартний фільтр) і заповнюємо як на скріншоті:

Знову тиснемо кнопкуSave.
4.4. Не відображаються Event'и у Chrome (Windows) та Chromium (Linux).

УFirefoxнаWindowsтаLinuxвсе відображається коректно.
4.5 Короткі event'и.

Тут нас цікавить насамперед такі параметри як:Image Buffer Size (frames)- кількість зображень, що може зберігатися у буфері.Pre Event Image Count- кількість зображень, які необхідно запам'ятовуватиДОподії (Alarm). Значення має бути не більшеImage Buffer Size (frames)/2.Post Event Image Count- кількість зображень, які потрібно запам'ятовуватиПІСЛЯподії (Alarm). Значення може бути будь-яке, але занадто великі значення нам не потрібні, оскільки записуватиметься занадто багато зображень, а також деякі камери відмовлялися працювати при дуже великому значенні. Наприклад камериD-Link DCS-930не хочуть працювати при значенні більше40, а камериAxis 206при значенні більше25>. Але цих значень мені вистачає.
Після виставлення таких параметрів ми можемо радіти діям тривалістю30-60секунд, хоча раніше вони писалися по5-15секунд максимум.