Приветствую, некоторое время назад я показывал как можно сделать камеру из телефона с android.
Сегодня я продолжу эту тему, и мы организуем полноценную систему видеонаблюдения на базе zoneminder установленном на Ubuntu Server 16.04, и подключенной к нему камерой из телефона.
Сперва покажу все команды для установки, ниже они будут с описанием действий:
sudo apt-get update sudo apt-get upgrade sudo tasksel install lamp-server cat /etc/timezone sudo dpkg-reconfigure tzdata nano /etc/php/7.0/apache2/php.ini date.timezone = Europe/Moscow sudo apt-get install zoneminder sudo mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql mysql -uroot -p -e "grant select,insert,update,delete,create,\ alter,index,lock tables on zm.* to 'zmuser'@localhost identified by 'zmpass';" sudo a2enconf zoneminder sudo a2enmod rewrite sudo a2enmod cgi sudo chown www-data:www-data /etc/zm/zm.conf sudo su echo "kernel.shmall = 134217728" >> /etc/sysctl.conf echo "kernel.shmmax = 134217728" >> /etc/sysctl.conf echo 134217728 >/proc/sys/kernel/shmall echo 134217728 >/proc/sys/kernel/shmmax systemctl enable zoneminder echo "sql_mode = NO_ENGINE_SUBSTITUTION" >> /etc/mysql/mysql.conf.d/mysqld.cnf reboot
Кому лень читать, есть видео:
Для начала обновим нашу систему:
sudo apt-get update sudo apt-get upgrade
Установим lamp (linux apache mysql php):
sudo tasksel install lamp-server
Во время установки запросят пароль для MySQL.
Посмотрим какой часовой пояс установлен в системе:
cat /etc/timezone
Если он не наш, установим правильный часовой пояс системы:
sudo dpkg-reconfigure tzdata
Далее нужно установить часовой пояс для php:
nano /etc/php/7.0/apache2/php.ini
находим в этом файле строку ;date.timezone = в секции date, раскоментируем ее и впишем нужную часовую зону, должно получиться что то вроде:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Europe/Moscow
Сохраняем файл (ctrl+x -> y)
Теперь установим виновника торжества – zoneminder:
sudo apt-get install zoneminder
Импортируем базу данных в MySQL и добавим пользователя:
sudo mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql mysql -uroot -p -e "grant select,insert,update,delete,create,\ alter,index,lock tables on zm.* to 'zmuser'@localhost identified by 'zmpass';"
Если вы зададите не стандартный пароль, тогда нужно будет его изменить в файле конфигурации /etc/zm/zm.conf, строка - ZM_DB_PASS=zmpass
Добавим конфигурацию в Apache:
sudo a2enconf zoneminder sudo a2enmod rewrite sudo a2enmod cgi
Сделаем пользователя, от которого работает Apache, владельцем конфигурации zoneminder:
sudo chown www-data:www-data /etc/zm/zm.conf
Укажем ядру Linux сколько памяти выделять zoneminder’у
sudo su echo "kernel.shmall = 134217728" >> /etc/sysctl.conf echo "kernel.shmmax = 134217728" >> /etc/sysctl.conf echo 134217728 >/proc/sys/kernel/shmall echo 134217728 >/proc/sys/kernel/shmmax
Включим сервис zoneminder, что бы он стартовал при старте системы:
systemctl enable zoneminder
Еще нужно добавить строчку в конфиг MySQL, в файл /etc/mysql/mysql.conf.d/mysqld.cnf нужно добавить строку - sql_mode = NO_ENGINE_SUBSTITUTION, иначе могут возникнуть ошибки при добавлении камеры в zoneminder, например такая:
SQL-ERR 'SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'ServerId' at row 1', statement was 'insert into Monitors set LinkedMonitors = '', Name = 'fly', ServerId = '', Type = 'Remote', Function = 'Modect', Enabled = '1', RefBlendPerc = '6', AlarmRefBlendPerc = '6', AnalysisFPS = '', MaxFPS = '', AlarmMaxFPS = '', Device = '/dev/video0', Channel = '0', Format = '255', Palette = '0', V4LMultiBuffer = '', V4LCapturesPerFrame = '1', Protocol = 'http', Host = '192.168.1.132', Port = '8080', Method = 'simple', Options = '', Path = '/video', User = '', Pass = '', Colours = '3', Width = '1280', Height = '720', Orientation = '0', Deinterlacing = '0', RTSPDescribe = '', LabelFormat = '%N - %Y-%m-%d %H:%M:%S %z', LabelX = '0', LabelY = '0', LabelSize = '1', ImageBufferCount = '50', WarmupCount = '25', PreEventCount = '25', PostEventCount = '25', StreamReplayBuffer = '1000', AlarmFrameCount = '1', SignalCheckColour = '#0000c0', EventPrefix = 'Home-', SectionLength = '600', FrameSkip = '0', MotionFrameSkip = '0', AnalysisUpdateDelay = '0', FPSReportInterval = '1000', DefaultView = 'Events', DefaultRate = '100', DefaultScale = '100', WebColour = 'red', Sequence = 1'
Вводим
echo "sql_mode = NO_ENGINE_SUBSTITUTION" >> /etc/mysql/mysql.conf.d/mysqld.cnf
Перезагружаем наш сервер
reboot
Установка завершена, теперь произведем базовую настройка zoneminder, добавим камеру, и сделаем что бы шла запись по движению.
Переходим на страницу http://ваш-ip/zm и зайдем в настройки (options).
Переходим во вкладку users, и жмем по пользователю admin.
Задаем ему пароль и жмем save.
В этой же вкладке можно добавить еще пользователей с ограниченными правами.
Переходим во вкладку system и ставим галку напротив Authenticate user logins to ZoneMinder, что бы нельзя было заходить на сайт без пароля.
Если вы хотите использовать отдельный диск под записи, тогда перейдите во вкладку path. И здесь можете изменить стандартные пути. Здесь наиболее интересные пути, которые стоит изменить — events, images и sounds. Вводите абсолютные пути, не забудьте предварительно создать папку и дать полный доступ, либо сделать владельцем этой папки пользователя www-data (chmod либо chown вам в помощь).
Закрываем окно, на этом основные настройки завершены. Что бы они применились нужно перезапустить zoneminder, это можно сделать из веб интерфейса, либо из терминала.
В перовом случае нажминте на Running (Console — Running)
В появившемся окне выберете restart в выпадающем списке и нажмите apply
Во втором — наберите команду
sudo /etc/init.d/zoneminder restart
Теперь добавим камеру.
В основном окне жмем Add New Monitor.
В открывшемся окне, во вкладке General выбираем Source Type — Remote, Function — Modect (Здесь функции — monitor — только просмотр, modect — запись при срабатывании события, mocord — постоянная запись, с подсветкой сработанных событий на движение, nodect — отключение встроенной функции обнаружения движения, для использования сторонних модулей)
Во вкладке source для подключения нашего телефона нужно выбрать Remote Protocol — HTTP
Remote Host Name — IP адрес устройства (он написан на экране, IPWebCam запущена)
Port должен быть — 8080 (если вы его не меняли в настройках программы на телефоне).
Remote Host Path должен быть - /video
Разрешение задавайте в зависимости от настроек/возможностей вашей камеры. Жмем save.
Должен появиться новый монитор, source должен быть зеленым, если все прошло нормально.
Если вы хотите ограничить зону детектора движения камеры, нажмите на zones, можно отредактировать стандартную зону, либо добавить новую, так же можно добавлять несколько зон. Для этого нужно либо нажать на название существующей зоны, либо добавить новую зону. Зона задается простым перетягиванием точек на углах зоны. Здесь же можно задать чувствительность детектора движения.
Вот и все, теперь на сервер будет записываться видео (если быть точнее, то последовательность изображений, zoneminder пишет именно так), при обнаружении движения.
Для того что бы посмотреть на изображение камеры нужно нажать на название монитора, что бы посмотерть события нужно нажать на число событий. И выбрать нужное.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Если вам помогла статья, вы можете >>отблагодарить автора<<
Комментарии
Привет всем. Нужна ваша помощь. Камеры в режиме Record, zoneminder пишет jpg в папки 00 10 20 40 50, есть ли возможность настроить чтоб писал за час в одну папку. Так как симлинки создаются 12 минут и 3 минуты перегон с jpg в avi. Решив эту задачу утилизация ресурсов было бы намного кратковременней.
Спасибо за подробную статью. Нашёл всю требуемую информацию для настройки подключения ip-камеры к ubuntu server!
Спасибо, буду делать как здесь описано. Только вопрос: на сайте (1 доменное имя, 1 внешний белый ip) есть один nextcloud 14й. Если я запущу всё как здесь написано, облако не сломается? Мне нужны 2 хоста или нет?
Тут описано как настроить для чистой системы. Если уже что то стоит, и делать всё в точности как у меня - практически наверняка - сломается, по крайней мере веб морда.
ZM по Вашей методе встал на сервер Ubuntu16. Камеру из тлф правда только по сети видит (/dev/video волшебный скрипт не поднял). Но видит. Зато волшебно упало облако (Nextcloud 14). Стёр все ноги танцуя с бубнами. Помогите. Ошибку 500 даёт. Mysql работает, PHP 7.0 c приблудами работает. Танцы с вирт хостами безрезультатны -/zm -ОКей, nextcloud- бида. Права на БД не менял.www-data остались. ПОДСКАЖИТЕ ПЛЗ ЧТО именно установка ZM сломала, что подкрутить обратно.
Для начала - какой веб сервер использовал Nextcloud?
Спасибо, все поставилось и работает с первого раза, с небольшой корректировкой для ZoneMinder 1.32.3 & Ubuntu 18.04.2 LTS. sudo add-apt-repository ppa:iconnor/zoneminder-1.32 sudo apt-get update Кто искал, как и я, как после установки включить thumbnails в событиях Option > Web > WEB_LIST_THUMBS > SAVE
Спасибо, вроде всё понятно, но поставить до конца не смог, линукс я знаю не достаточно хорошо. сервер 18,04--- ставлю на ноут