Shinobi – поднимаем сервер видеонаблюдения на Linux
Shinobi – это программное обеспечение с открытым исходным кодом, которое может быть установлено в операционных системах Linux. Shinobi в своей работе использует такие технологии как FFmpeg и написан Node.js, в основе которого лежит JavaScript. Имеет обширный функционал, хорошо русифицирован, и распространяется бесплатно. Правда, существует и платная версия – Pro. В данной статье мы будем устанавливать Shinobi бесплатной версии, которой вполне достаточно для настройки видеонаблюдения даже на некоторых боле менее средних предприятий. Хотя, на предприятиях мало вероятно что будут использовать подобного рода продукцию, так как там применяются специализированные устройства…
Но несмотря на это, вполне можно рассматривать использование Shinobi на сервере в компаниях, как альтернативный вариант. Shinobi поддерживает следующие протоколы HTTP, RTP / RTSP и ONVIF, HTTPS. Написан Shinobi как уже говорилось чуть выше, на Node.js, про установку которого вы можете прочесть в одной из предыдущих статей.
Установка Shinobi на Ubuntu
В этой статье мы рассмотрим установку Shinobi на Ubuntu, как рекомендует автор данного проекта. Но Shinobi также можно установить и на Debian и на Raspberry Pi, и на них поднять сервер видеонаблюдения. Ели вам будет интересна тема видеонаблюдения на Raspberry Pi, то в одной из будущих статей рассмотрим варианты использования малинки в этих целях. Перед началом установки Shinobi, предполагается, что у вас уже установлена утилита curl, если это не так, то установить ее можно выполнив команду:
Итак, приступим, для установки Shinobi на сервер первым делом необходимо перейти в режим суперпользователя, вводим команду “sudo su”, в Debian для этого выполняем команду “su -“:
После чего начнем установку, скачиваем установочный скрипт командой:
В процессе установки вам будут заданы некоторые вопросы, на которые отвечаем да (y) или нет (n), на этом этапе отвечаем да, вписав букву – y, после чего нажимаем Enter:
На следующем этапе установки выбираем операционную систему, так как мы устанавливаем на Ubuntu, выбираем пункт: Ubuntu – Fast and Touchless, как самый оптимальный. Вписываем цифру данного пункта и продолжаем установку:
Далее система установки спросит, отключить IPv6, рекомендуется отключить, так как заявлено, что IPv6 может привести к сбою, соответственно, отвечаем да указав букву “y”:
После некоторого времени, Shinobi будет установлены и выдаст вам информацию о доступных способах подключения и пароль с логином для дальнейшей настройки:
Пароль и логин стандартный и используется только для первоначальной настройки. Переходим по указанному IP адресу и порту:
Водим пароль который тут представлен в виде email адреса и логин, нажимаем на кнопку “Login”, после чего попадаем в админку, где предстоит настроить дальнейший доступ. Остальные поля оставляем по умолчанию (Landing Page, Authenticate):
Создание учетной записи
Теперь необходимо создать свою учетную запись, под которой и будем работать с сервером видеонаблюдения. Чтобы ее создать, нажимаем на кнопку “+Add”:
В открывшейся вкладке нас интересуют всего три поля, первое – Email, второе – Password и третье – Password Again. Заполняем их, введя в первом поле наш email адрес, а в двух остальных вводим пароль для дальнейшего доступа к админке:
Прокручиваем вкладку вниз и нажимаем на кнопку “Save”:
Выходим, что бы зайти уже под созданной нашей учетной записью, выйти можно нажав на надпись “Shinobi : Super User” в верхнем углу. После чего вводим данные от нашей учетной записи и попадаем в админку. Теперь давайте настроим язык самой админки, чтобы легче было с ней работать. В левой части админки находим пункт “Accaunt Settings” и щелкаем на нем, затем проматываем до пункта “Dashboard Language” и выбираем язык который нам нужен:
В правом углу внизу имеется кнопка “Save”, нажимаем на нее и сохраняем выбранные настройки. Затем перезагрузим страницу и язык интерфейса поменяется на выбранный вами ранее язык:
Заключение
Теперь можно добавлять видеокамеры, настраивать их и производить дальнейшие действия с Shinobi для достижения конечных результатов которые вы преследуете. Shinobi работает со многими камерами, которые имеют соответствующие протоколы. В работе вопросов к серверу Shinobi не возникало, правда, тестировался он не долго и всего с одной камерой.
Что касается RTSP потоков, через которые вы можете подключать камеры к Shinobi, то тут все зависит от самой камеры. Так как ссылки на RTSP у всех камер немного отличаются, некоторые ссылки вы можете посмотреть в статье про установку MotionEye . С MotionEye работаю довольно давно, работает отлично, видео с камер пишется без проблем, весь необходимый функционал в нем также присутствует. В общем, можете рассмотреть MotionEye как отличную альтернативу Shinobi, а затем определиться что вам больше нравится.
Для получения дополнительной информации о Shinobi вы можете посетить официальный сайт проекта.
А на этом сегодня все, если статья оказалась вам полезна, подписывайтесь на рассылку журнала в pdf формате, а так же на социальные сети журнала Cyber-X:
По вопросам работы сайта, сотрудничества, а так же по иным возникшим вопросам пишите на E-Mail . Если вам нравится журнал и вы хотите отблагодарить за труды, вы можете перечислить донат на развитие проекта.
С уважением, редакция журнала Cyber-X
Делаем систему видеонаблюдения на Ubuntu
Сегодня мы организуем полноценную систему видеонаблюдения на базе 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 , например такая:
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′
Установка завершена, теперь произведем базовую настройка 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
Во втором — наберите команду
В основном окне жмем 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 пишет именно так), при обнаружении движения.
Для того что бы посмотреть на изображение камеры нужно нажать на название монитора, что бы посмотерть события нужно нажать на число событий. И выбрать нужное.