Zoneminder настройка usb камеры

Обновлено: 07.07.2024

Видеонаблюдение – важная составляющая безопасности. Камеры устанавливаются в квартирах и общих коридорах, на дачах и в гаражах. Руководство компании следит за сотрудниками, охрана – за посетителями. В присмотре нуждаются пожилые родственники и маленькие дети. Простого вывода картинки недостаточно – сидеть перед монитором всё время никто не сможет. Нужна система, которая проанализирует видеопоток, сделает скриншоты и уведомит хозяев о нарушении периметра.

Промышленные модули стоят огромных денег, однако сообщество открытого ПО предлагает собственные бесплатные альтернативы, например, программу ZoneMinder. В этой статье мы рассмотрим как выполняется установка ZoneMinder Ubuntu 18.04.

Как установить ZoneMinder в Ubuntu

Первым делом в свежеустановленной операционке необходимо установить стандартный стек веб-сервера LAMP. Подробно останавливаться на этом процессе мы не будем, на сайте этому посвящена отдельная статья. Для того, чтобы получить самую свежую версию ZoneMinder, следует подключить персональный архив разработчиков PPA с помощью команды:

sudo add-apt-repository ppa:iconnor/zoneminder-1.34

Здесь 1.34 – номер текущей версии программы. Чтобы не вводить команду sudo перед всеми следующими командами, рекомендуем выполнить в консоли команду:

Все последующие инструкции в консоли будут выполняться от имени суперпользователя.


Итак, репозиторий добавлен. Теперь необходимо обновить список пакетов и саму операционную систему:

Затем можно запустить установщик:

apt-get install zoneminder


В свежеустановленной операционной системе потребуется установить почти 200 пакетов, поэтому процесс займёт некоторое время. После установки ZoneMinder требуется настроить для пользователя www-data права для доступа к конфигурации:

chmod 740 /etc/zm/zm.conf
chown root:www-data /etc/zm/zm.conf

Далее следует разрешить доступ к каталогу с файлами ZoneMinder:

chown -R www-data:www-data /usr/share/zoneminder/

Затем настроить Apache, подключить к ядру веб-сервера модули с помощью команды:

a2enmod cgi
a2enmod rewrite

После этого добавить настройки с помощью команды:

Для повышения скорости кэширования рекомендуется также активировать модули expires и headers:


Прежде, чем последовать настойчивым просьбам Apache о перезапуске, надо активировать и запустить ZoneMinder с помощью команд:

systemctl enable zoneminder

systemctl start zoneminder

systemctl status zoneminder

На экране появятся строки, говорящие о том, что система видеонаблюдения ZoneMinder активна.


Осталось установить правильную временную зону для php. Открываем нужный нам файл в редакторе Nano с помощью команды:

Затем нажимаем сочетание клавиш Ctrl-W, в белом поле вводим слово Date, нажимаем клавишу Enter. Переходим таким образом в секцию [Date]. Убираем символ ";" перед строкой date.timezone и прописываем нашу временную зону. Для Москвы это Europe/Moscow. В результате содержимое файла должно выглядеть как на скриншоте:


Для выхода из редактора нажимаем сочетание клавиш Ctrl-X, подтвердив сохранение отредактированного нами файла php.ini. Вот теперь можно перезапустить веб-сервер с помощью команды:

systemcltl reload apache2


Настройка ZoneMinder

Первое, что желательно сделать, это поставить пароль на вход. Если сервер развёрнут в публичной сети, это обязательно. Выбираем пункт Options в строке меню и переходим по ссылке System на левой панели.


В открывшемся окне устанавливаем флажок напротив OPT_USE_AUTH и сохраняем конфигурацию с помощью кнопки Save в правом нижнем углу страницы. Если обновить страницу с помощью клавиши F5, будет выполнен сразу же переход к форме авторизации. По умолчанию установлено: логин: admin, пароль: admin. Сменить это можно выбрав в левой панели ссылку Users.

Большинство реальных камер будут подключаться по сети. Для пробы используем старый смартфон с установленной программой IP Webcam.

Для подключения камеры к ZoneMinder Ubuntu нажмём в главном меню кнопку ADD, откроется окно с интерфейсом добавления камеры.

На закладке General заполним поля Source Type = Remote и Function = Monitor (режим просмотра). Затем переходим на вкладку Source и устанавливаем значения параметров так, как показано на скриншоте:


Для сохранения настроек нажимаем кнопку SAVE. Программа возвращает нас к списку камер. Если поток подсоединился, название камеры и адрес будут зелёного цвета, если нет — красного. Ошибки подключения можно посмотреть в меню Log.


Начать просмотр изображения с камеры можно кликнув мышкой по названию камеры. Откроется окно просмотра.


В окне доступно масштабирование, запуск трансляции, тестирование событий. На этом базовая настройка ZoneMinder закончена.

Выводы

Рассмотренная нами установка ZoneMinder Ubuntu 18.04 показала, что организация видеонаблюдения – это не сложно. При этом программный комплекс с большими возможностями может быть и бесплатным тоже, а его мощь и удобство – в гибких настройках.

Встроенный модуль для веб-сервера принимает потоки видео с любых локальных или сетевых камер, анализирует кадры в поисках событий для дневной и ночной съёмок, информирует пользователей о событиях и прочем. Управляется видеонаблюдение с помощью браузера или мобильного приложения, данные сохраняются в локальную базу. Подходит для построения систем наблюдения любых масштабов – от гаража до предприятия.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

ZoneMinder — это интегрированный набор приложений, которые обеспечивают полное решение для видео наблюдения, позволяющее осуществлять захват, анализ, запись и мониторинг любых камер видеонаблюдения или камер безопасности, подключенных к компьютерам на базе Linux. Приложение предназначено для работы с дистрибутивами, поддерживающими интерфейс Video For Linux (V4L), и было протестировано с видеокамерами, подключенными к картам BTTV, различными USB-камерами, а также поддерживает большинство IP-камер.

Contents

Установка

Примечание: Очень важно установить и правильно настроить стек LAMP для работы ZoneMinder.

Установите пакет zoneminder AUR . Также можно использовать ветку разработки, установив пакет zoneminder-git AUR .

Для создания миниатюр (используется редко) установите пакет netpbm .

Конфигурация

Apache

Отредактируйте /etc/php/php.ini . Убедитесь, что следующие расширения включены, раскомментируя эти строки:

Также задайте часовой пояс, например:

Иногда может присутствовать следующий файл /etc/php/conf.d/zoneminder.ini:

если часовой пояс не заполнен, выполните:

MySQL

Создание базы данных zm и пользователя с соответствующими разрешениями и паролем:

Импортируйте предварительно сконфигурированные таблицы в недавно созданную базу данных zm:

Обновите конфигурацию ZoneMinder с новыми параметрами:

Безопасность

Для повышения безопасности нужно установить пароль для пользователя root:

Кроме того, вы можете запускать:

Запуск

Решение проблем

По умолчанию, логи хранятся в /var/log/zoneminder . Вы также можете просматривать логи в веб-интерфейсе.

Также смотрите официальную wiki-страницу проекта: Troubleshooting [устаревшая ссылка 2021-11-19] .

Очистка данных приложения

Данная функция будет полезна разработчикам или пользователям, которым нужно очистить все данные ZoneMinder и начать настройку с нуля.

Восстановление базы данных

Удалите базу данных ZoneMinder и пользователя MySQL:

Пересоздайте базу данных и пользователя:

Импортируйте предварительно сконфигурированные таблицы в недавно созданную базу данных zm:

Очистка папки кеша

Важно: При выполнении команды ниже будут удалены все изображения и события.

Локальные видеоустройства

Несколько локальных USB-камер

Если вы заметили ошибку, например, libv4l2: error turning on stream: No space left on device при использовании нескольких USB-видеоустройств (к примеру, нескольких веб-камер), вам может потребоваться увеличить пропускную способность шины.

ZoneMinder — свободное программное обеспечение, для организации видеонаблюдения под лицензией GNU GPL.

Введение

Часто перед организацией встает вопрос об организации эффективной системы видеонаблюдения которая при этом должна вписываться в рамки достаточно ограниченного бюджета, а промышленные решения не всегда в полной мере соответствуют поставленной задаче. В данном руководстве мы рассмотрим построение законченного решения по видеонаблюдению при помощи ПК со специальными платами видеозахвата под управлением ОС Linux и свободно распространяемого ПО для видеонаблюдения ZoneMinder [1] .

Аппаратная часть



Камеры

Платы видеозахвата

  1. Video Inputs: 4CH Audio Inputs:1CH
  2. System resources:30fps(NTSC)/30fps(NTSC)
  3. Resolution video:640×480

Компьютер

Следует задать настройки для автоматического включения ПК при подаче питания (в AWARD Bios пункт "Power state: Always ON") на случай перебоев в электроснабжении для автономности системы.

Программная часть

Установка SLES

Рассмотрим установку SLES 11 i586 на машину с 2 Gb RAM и 200 Gb HDD. Предполагается, что сервер видеонаблюдения не является критичным звеном и не хранит длительных архивных записей, для этого предназначен отдельный центральный сервер с NAS, таким образом нет необходимости использовать технологии RAID и LVM.

В нашей конфигурации используется 4 Primary partition без up time и идентификацией томов uuid:

  1. файл подкачки: размер 2 ГБ, файловая система swap, точка монтирования swap
  2. загрузочный: 500 МБ, ext3, /boot
  3. корень: 20 ГБ, ext3, /
  4. хранилище: <оставшееся свободное место>, JFS [3] , /srv

Выбор файловой системы JFS обусловлен тем, что ZoneMinder для хранения записанного материала использует последовательность jpg-файлов, что в случае нескольких камер и круглосуточной записи генерирует колоссальное их количество. Файловые системы классического типа имеют ограничения на количество хранимых файлов, что приводит к тому, что запись перестает вестись при достаточном количестве свободного места. Архитектура файловой системы IBM JFS лишена подобных ограничений. Другие ФС, с подобными параметрами доступные в ОС Linux авторам в настоящее время неизвестны.

Обязательно включаем на сервере синхронизацию времени по протоколу NTP, это позволит в дальнейшем избежать нелицеприятных и спорных моментов при просмотре архивов, поиска и сопопставления записанных роликов с реальным временем.

После установки добавляем дополнительно SDK DVD [4] , который необходимо скачать с сайта Novell и подключить в качестве репозитория YaST.

На этапе дальнейшей настройки и отладки отключаем SuSEFirewall2

Поиск устройств в системе

Настройка драйвера tw68

Плата видеозахвата: RX-7404 (Уточнить)

Download

Компиляция

Запуск модуля

Можно осуществить командой:

или если в файле:

разрешить подгружать скомпиллированные модули заменив в строке:

и запустить команды:

В результате запуска модуля в результате выполнения команды dmesg должны обнаружиться похожие строки:

Добавление драйвера в автозагрузку

Осуществляется в файле:

добавлением к строке:

параметра, являющегося именем модуля tw68, единственного или, при наличии других параметров, через пробел:

Настройки ZoneMinder

Рабочее решение взято с форума ubuntu [5] Более менее работает в режиме захвата YUVY.

На закладке option->config

  • выключите V4L_MULTI_BUFFER
  • поставте CAPTURES_PER_FRAME = 2

Настройка bttv

BTTV [6] is linux driver for TV cards based on the bt848 and bt878 chips.

Конфигурация bttv в openSUSE до версии 12.1

По умолчанию такого файла в /etc/modprobe.d/ нет, по этому создаем его командой vi /etc/modprobe.d/bttv.conf и зополняем следующую конфигурацию:

Отличия для конфигурации из 2 карт pico2000:

Отличия для конфигурации из 5 карт на чипе bt878:

Для подбора параметров card= под конкретную модель необходимо свериться с таблицей параметров для драйвера bbtv.

Запуск модулей ядра вручную

Для проверки работоспособности конфигурации без перезагрузки машины загрузите модуль командой:


Сегодня я продолжу эту тему, и мы организуем полноценную систему видеонаблюдения на базе zoneminder установленном на Ubuntu Server 16.04, и подключенной к нему камерой из телефона.

Сперва покажу все команды для установки, ниже они будут с описанием действий:

Кому лень читать, есть видео:

Для начала обновим нашу систему:

Установим lamp (linux apache mysql php):

Во время установки запросят пароль для MySQL.

Посмотрим какой часовой пояс установлен в системе:

Если он не наш, установим правильный часовой пояс системы:

Далее нужно установить часовой пояс для php :

находим в этом файле строку ;date.timezone = в секции date , раскоментируем ее и впишем нужную часовую зону, должно получиться что то вроде:

Сохраняем файл ( ctrl + x -> y )

Теперь установим виновника торжества – zoneminder :

Импортируем базу данных в MySQL и добавим пользователя:

Если вы зададите не стандартный пароль, тогда нужно будет его изменить в файле конфигурации / et c/zm/zm.conf, строка - ZM_DB_PASS=zmpass

Добавим конфигурацию в Apache:

Сделаем пользователя, от которого работает Apache , владельцем конфигурации zoneminder :

Укажем ядру Linux сколько памяти выделять zoneminder ’у

Включим сервис zoneminder , что бы он стартовал при старте системы:

Еще нужно добавить строчку в конфиг MySQL , в файл /etc/mysql/mysql.conf.d/mysqld.cnf нужно добавить строку - sql_mode = NO_ENGINE_SUBSTITUTION, иначе могут возникнуть ошибки при добавлении камеры в zoneminder , например такая:

Перезагружаем наш сервер

Установка завершена, теперь произведем базовую настройка zoneminder, добавим камеру, и сделаем что бы шла запись по движению.

Переходим во вкладку users, и жмем по пользователю admin.


Задаем ему пароль и жмем save.

В этой же вкладке можно добавить еще пользователей с ограниченными правами.

Переходим во вкладку system и ставим галку напротив Authenticate user logins to ZoneMinder, что бы нельзя было заходить на сайт без пароля.


Если вы хотите использовать отдельный диск под записи, тогда перейдите во вкладку path. И здесь можете изменить стандартные пути. Здесь наиболее интересные пути, которые стоит изменить — events, images и sounds. Вводите абсолютные пути, не забудьте предварительно создать папку и дать полный доступ, либо сделать владельцем этой папки пользователя www-data (chmod либо chown вам в помощь).



Закрываем окно, на этом основные настройки завершены. Что бы они применились нужно перезапустить zoneminder, это можно сделать из веб интерфейса, либо из терминала.

В перовом случае нажминте на Running (Console — Running)


В появившемся окне выберете restart в выпадающем списке и нажмите apply


Во втором — наберите команду

Теперь добавим камеру.

В основном окне жмем Add New Monitor.

В открывшемся окне, во вкладке General выбираем Source Type — Remote, Function — Modect (Здесь функции — monitor — только просмотр, modect — запись при срабатывании события, mocord — постоянная запись, с подсветкой сработанных событий на движение, nodect — отключение встроенной функции обнаружения движения, для использования сторонних модулей)

Remote Host Name — IP адрес устройства (он написан на экране, IPWebCam запущена)

Port должен быть — 8080 (если вы его не меняли в настройках программы на телефоне).

Remote Host Path должен быть - /video

Разрешение задавайте в зависимости от настроек/возможностей вашей камеры. Жмем save.


Должен появиться новый монитор, source должен быть зеленым, если все прошло нормально.

Если вы хотите ограничить зону детектора движения камеры, нажмите на zones, можно отредактировать стандартную зону, либо добавить новую, так же можно добавлять несколько зон. Для этого нужно либо нажать на название существующей зоны, либо добавить новую зону. Зона задается простым перетягиванием точек на углах зоны. Здесь же можно задать чувствительность детектора движения.



Вот и все, теперь на сервер будет записываться видео (если быть точнее, то последовательность изображений, zoneminder пишет именно так), при обнаружении движения.

Для того что бы посмотреть на изображение камеры нужно нажать на название монитора, что бы посмотерть события нужно нажать на число событий. И выбрать нужное.

Читайте также: