Видеонаблюдение в linux с помощью motion

Содержание:

Настройка ZoneMinder

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

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

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

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

  • Protocol = HTTP (если на смартфоне выбран этот протокол);
  • Method = Simple;
  • Host Name = 192.168.0.184 (это адрес смартфона с камерой);
  • Port = 8080 (как в настройках смартфона);
  • Path = /video;
  • Capture Resolution (pixels) = 320×240 (должно соответствовать потоку с камеры).

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

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

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

Установка Motion

Итак, перейдем к установке. Вводим команду:

$ sudo apt-get install motion

Вам предложено будет вместе с основной утилитой установить несколько зависимостей. Соглашайтесь.

После скачивания и установки система попробует запустить Motion, но вы увидите сообщение:

 Not starting motion daemon, disabled via /etc/default/ motion ... (warning)

То есть режим демона отключен. Включаем:

nano /etc/default/motion

Меняем в конце единственной строки “no” на “yes”.

Но это еще не всё, теперь тот же режим надо включить в другом файле:

nano /etc/motion/motion.conf

Ищем строки

# Start in daemon (background) mode and release terminal (default: off) daemon off

Меняем снова на “on” и запускаем Motion с конфигурационным файлом по умолчанию:

service motion start

Проверьте, стартовал ли сервис:

ps aux|grep motion
motion 19971 2.0 0.9 51316 8380 ? Sl 13:56 0:00 /usr/bin/motion

Всё в порядке. Есть желание посмотреть на сырые данные, которые камера отправляет на микро-НТТР-сервер? Тогда наберите из сессии SSH:

telnet localhost 8081

8081 — порт HTTP-микросервера по умолчанию, изначально доступен только локально (только с localhost), это мы потом поправим. Будьте готовы, что в окно терминала повалятся кракозябры, и корректно закрыть терминал не получится.

Откройте другой терминал и снимите процесс, который вы обнаружили на предыдущем шаге:

# kill 19971

Это было маленькое отступление, почти шутка. Зато вы теперь знаете, что с помощью telnet можно проверять активность сервисов на внешних портах localhost.

Возможности функционала. Популярное ПО на linux для организации видеонаблюдения.

Базирующиеся на ОС Линукс, программы, осуществляющие видеонаблюдение, обладают различными функциями и спецификой. Это обуславливает их использование на практике. Ниже представлен список лучшего ПО для видеонаблюдения на Linux.

AVReg представляет собой продукт, который способен создать видеорегистратор на основе ПК с ОС Linux. Его лицензирование несвободно. Но он может бесплатно устанавливаться и применяться для некоммерческих дел. Содержит не так много функций, но для большинства задач подойдет, как нельзя лучше. Он поможет устроить наблюдение в квартире либо в доме загородом. Плюсом этого приложения является использование русского языка в документации и меню.

LinuxDVR – программа, созданная отечественными специалистами от фирмы «Сетевые информационные системы». Справляется с формированием распределённых систем и отдельного видеорегистратора. Лёгкая адаптация к сети происходит за счёт гибких настроек. Обладает форматом MJPEG. Поддержание 32 аналоговых каналов возможно на одном ПК, которые передают чёрно-белые либо цветные видеосигналы. Присутствует функция обнаружения движения и реагирования на то, что происходит перед камерой. Нет ограничений по поводу устранения наблюдателей. События попадают под протокол. Осуществлять поиск в архиве не составляет труда.

ZoneMinder является наиболее профессиональной программой по сравнению с AVReg. Поскольку обладает большим функционалом, проводит серьёзный контроль. Однако есть и минус. Только пользователь с неплохим знанием английского языка способен работать в данной программе. Распространение программы проходит в наборе пакетов, относящихся к главным Linux дистрибутивам.

NetAvis Observer считается приложением, созданным для работы с видео, которое имеет интегрированную информационную аналитику. В целом программа представляет собой сильную профессиональную платформу, отвечающую за организацию видеонаблюдения над разными объектами. Программы адаптируются специально для пользователя благодаря огромному выбору настроек и высокой производительности. Основные видео форматы поддерживаются ПО. Данное приложение гарантирует полную безопасность, не допускает какой-либо утечки данных. Гибкая архитектура, в которую внедрена масштабируемость системы.

Motion eye является программой, пользующейся большой популярностью. Ноутбук либо персональный компьютер используются как сервер. Эта консольная программа не создаёт трудностей при работе с Линукс. Каждая версия обладает веб-сервисом. С помощью него проходит видеопоток с камеры наблюдения в формате MJPEG. Программа оснащена опцией, распознающей движение. Это даёт возможность проводить запись информации выборочно. Полное контролирование объекта гарантировано благодаря простоте в применении, понятному интерфейсу и настройкам.

Ivideon – это программа, сформировавшаяся из 2 разделов под названиями Client и Server. Посредством интернета на любой территории можно вести видеонаблюдение без привязанности к конкретному адресу. Установка Server проводится на ПК либо ноутбук, куда проходит видеопоток и где осуществляется запись на жёсткий диск. Для «слепого сервера» применяется нетбук. Устройство будет вести видеозапись, но это не будет видно на мониторе. Ещё смартфон либо планшет подойдёт для просмотра записанного материала.

Линия – российская разработка, сделанная краснодарской компанией «ДевЛайн». ПО получило высокие позиции на отечественном рынке, потому что имеет совместимость с программами иных разработчиков. Преимущества данного продукта обусловлены широкими возможностями, простой интеграцией, доступной стоимость и точностью настроек.

Установка iVMS-4200 и необходимых компонентов

Установку программы будем выполнять с помощью командной строки linux.

Загрузка и распаковка

Скачиваем программу с официального сайта командой:

wget http://hikvision.msk.ru/download/software/en/EN_iVMS-4200_Linux.zip

Распаковываем скачанный архив zip:

unzip EN_iVMS-4200_Linux.zip

Переходим в распакованный каталог:

cd Hikvision\ iVMS-4200\ \(Linux\)/

В нем мы увидим архив tar.gz — распаковываем и его:

tar zxvf iVMS4200-Linux.tar.gz

Полученный каталог Linux переименовываем и переносим в папку /opt:

mv Linux /opt/iVMS

Готово. Наша программа находится в /opt/iVMS.

Установка зависимостей

Чтобы программа могла запуститься на Linux, необходимы дополнительные библиотеки. Их список можно получить командой:

ldd /opt/iVMS/iVMS-4200

Если мы увидим не список, а сообщение:

        не является динамическим исполняемым файлом

… устанавливаем пакет:

apt-get install libc6-i386

* обратите внимание, что мы ставим пакеты x32, так как приложение iVMS 32-х битное

1. Настройка ldconfig

Часть библиотек находится в каталоге /opt/iVMS/PlugIns. Необходимо его добавить в ldconfig. Для этого создаем файл:

vi /etc/ld.so.conf.d/ivms.conf

/opt/iVMS/PlugIns

Применяем настройки:

ldconfig

Смотрим недостающие библиотеки:

ldd /opt/iVMS/iVMS-4200 | grep «not found»

2. libstdc++.so.6

Для получения данной библиотеки скачиваем пакет:

wget http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libstdc++6_8.4.0-1ubuntu1~18.04_i386.deb

И пробуем его установить командой:

dpkg -i libstdc++6_8.4.0-1ubuntu1~18.04_i386.deb

Если мы получим сообщение об ошибке зависимостей, то выполняем:

apt-get install -f

Повторяем установку:

dpkg -i libstdc++6_8.4.0-1ubuntu1~18.04_i386.deb

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

ldd /opt/iVMS/iVMS-4200 | grep «not found»

* возможно, станут доступными несколько библиотек, а не только libstdc++.so.6.

3. libuuid.so.1

Просто ставим:

apt-get install libuuid1:i386

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

ldd /opt/iVMS/iVMS-4200 | grep «not found»

4. libGL.so.1

Для данной библиотеки установим:

apt-get install libgl1-mesa-dev:i386

Проверим, что это помогло:

ldd /opt/iVMS/iVMS-4200 | grep «not found»

* список должен стать еще меньше.

5. libGLU.so.1

Устанавливаем пакет:

apt-get install libglu1-mesa-dev:i386

Команда:

ldd /opt/iVMS/iVMS-4200 | grep «not found»

… должна вернуть пустой ответ.

Выбор веб-камеры для Linux

Одно дело если ваша веб-камера встроена в ноутбук и вы ничего уже не можете поменять, но другое, если вы покупаете ее сами. В таком случае к выбору web-камеры linux нужно подойти серьезно

Несмотря на то, что сейчас все больше и больше оборудования поддерживается ядром Linux, и достаточно хорошо поддерживаются многие камеры, важно обезопасить себя от проблем

В Linux, для подключения веб-камер чаще всего используется драйвер v4l, он по умолчанию включен в ядро. Если ваша веб камера linux будет совместима с этим драйвером, скорее всего, с ней проблем не будет. Посмотреть список совместимых устройств можно на сайте Ubuntu. Если кратко, то — вот основные производители:

  • A4 Tech
  • Creative
  • Genius
  • Hercules
  • Jenoptik
  • Logitech
  • MediaForte
  • Micro Innovations
  • Microsoft
  • Mustek
  • Philips
  • Samsung
  • Sanyo
  • Sony
  • Tevion
  • Trust
  • Typhoon

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

Настройка веб-камеры в Linux

Если веб камера linux совместима с вашей системой, то она автоматически определится и будет работать. Давайте посмотрим определилась ли веб-камера в вашей системе:

Устройство video0 и есть ваша webcam linux, если все в порядке, вы можете с ней работать. Но что же делать если камеры нет? Не все камеры поддерживаются по умолчанию ядром и драйвером v4l. Но для некоторых есть сторонние драйвера, так что еще есть шанс заставить все это работать. Сначала посмотрим что скажет система о состоянии драйверов нашей веб камеры:

В этом примере программа сообщает что нужно использовать драйвер gspca_zc3xx, он готов к использованию и осталось его только загрузить командой:

Теперь еще раз проверьте есть ли устройство видео в каталоге /dev/.

Обычно система в этом сообщении должна сказать какой драйвер нужен, а уже с помощью интернета вы сможете найти как его установить в своей системе. Если предыдущий драйвер не работает или у вас другая веб-камера можно попробовать также драйвер uvcvideo:

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

$ sudo chmod g+rw /dev/video0

Настройка веб-камеры linux завершена. Теперь давайте рассмотрим как использовать веб-камеру в Linux.

Условия распространения

ОС Линукс распространяется абсолютно бесплатно, что в сравнении со значительной стоимостью лицензионных версий Виндоус является большим преимуществом. После установки пользователь получает комплект из нескольких тысяч приложений, хотя они и не столь обыкновенны, как для Windows, но не менее функциональны. Если вам нужна программа для Linux для видеонаблюдения, вы можете выбрать один из трех вариантов:

  • доступно бесплатное распространение ZoneMinder, LinuxDVR, Motion и некоторых других;
  • бесплатное скачивание версии с ограниченным функционалом: Линия, Xeoma и AVReg;
  • остальные программы нужно покупать.

Автоматический запуск (CRON).

avreg-unlink запускается периодически через системный шедулер
CRON.

Время и период запуска определяются в файле
«/etc/cron.d/avreg-unlink»:

# Расписание cron для пакета avreg-unlink
# синтаксис смотрите: man 5 crontab
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# раскомментируйте строку ниже, если локаль "ru_RU.UTF8" НЕ поддерживается syslog
# LANG=C

# раскомментируйте 3 строки ниже, если локаль "ru_RU.UTF8" ПОДДЕРЖИВАЕТСЯ syslog
LC_ALL='ru_RU.UTF-8'
CONTENT_TYPE='text/plain; charset="utf-8"'
CONTENT_TRANSFER_ENCODING='8bit'

# по умолчанию: каждыe 10 минут
*/10 *    * * *   root    /usr/sbin/avreg-unlink >/dev/null

# дополнительно, каждую неделю во вторник в 05:00
# выполниить удаление и упаковать базу (см. MySQL OPTIMIZE TABLE)
00 5    * * 2   root    /usr/sbin/avreg-unlink --optimize >/dev/null

Подробнее о том как составлять задания для cron см. Cron.

Различная глубина
архива для разных камер

Для avreg-unlink >= 6.1p1

Если необходимо обеспечить увеличенную глубину архива для
небольшого списка камер, то используйте следующее задание CRON.

задание CRON /etc/cron.d/avreg-unlink

# Расписание cron для пакета avreg-unlink
# синтаксис смотрите: man 5 crontab
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# раскомментируйте строку ниже,
# если локаль "ru_RU.UTF8" НЕ поддерживается syslog
# LANG=C

# раскомментируйте 3 строки ниже,
# если локаль "ru_RU.UTF8" ПОДДЕРЖИВАЕТСЯ syslog
LC_ALL='ru_RU.UTF-8'
CONTENT_TYPE='text/plain; charset="utf-8"'
CONTENT_TRANSFER_ENCODING='8bit'

# список "важных" камер
CAMS_LIST1=3,5,7-10
# остальные камеры
CAMS_LIST2=1,2,4,6,11-100

# каждые 15 мин. удалять ролики камер из списка CAMS_LIST2
# в автоматическом режиме с контролем свободного места на устройстве 
# с архивом AVReg
*/15 *    * * *   root    avreg-unlink "$CAMS_LIST2" >/dev/null


# каждую ночь в 04:37 удалять ролики "важных" камер
# из списка CAMS_LIST1, которые старше чем 90 дней (для примера)
37 04  * * *  root avreg-unlink "$CAMS_LIST1" "..$(date -d '90 day ago' +\%F)" >/dev/null
#                                подставьте своё значение   ^^ 

# дополнительно, каждую неделю во вторник в 05:00
# выполниить удаление и упаковать базу (см. MySQL OPTIMIZE TABLE)
00 5    * * 2   root    avreg-unlink --optimize >/dev/null

Бесплатные с ограниченным функционалом

В этом разделе производители софта которые ограничивают функционал, но не ограничивают длительность использования

5) XProtect Go

Датская компания Milestone признанный мировой лидер в области разработки программного обеспечения для систем видеонаблюдения. Программное обеспечение русифицировано. Максимальное количество IP-камер – 8

6) SecurOS Lite

Программный продукт от российского разработчика компании ISS.Размер и срок хранения видеоархива – неограниченМаксимальное количество IP-камер – 32 канала видео + аудио

7) Axxon Next

Высокопроизводительная система видеонаблюдения нового поколения на открытой программной платформе с интуитивно понятным пользовательским интерфейсом, от российской компании ITV.www.itv.ru/products/axxon_next/free_version.php

Любопытно что условия на бесплатные версии отличаются в зависимости от выбора языка

Для англоязычных гражданНе более 4 камер, 1 сервер (неограниченное число клиентов), максимальный размер архива – 1 ТбСкачать: www.axxonsoft.com/products/axxon_next/free_version.php

Для русскоязычных и украиноязычныхОзнакомительная версия работает с 8:00 до 18:00 — 1 месяц работы после первой установки, любое количество камер, серверов и удаленных рабочих мест (УРМ), без ограничения размера архивовСкачать: www.itv.ru/products/axxon_next/price.php

8) VideoNet Prime

Программный продукт от корпорации Скайрос для построения небольших систем видеонаблюдения с использованием IP и web-камер.

Подключение до 16-и IP-камер в режиме 25 к/с., до 2-х web-камер в режиме 25 к/с., до 4-х удаленных рабочих мест, глубина архива 1 Тб или 14 календарных дней.

9) Линия

Компания Девлайн позиционирует себя как разработчика бюджетных систем видеонаблюдения.Подключение до 16-и IP-камер

10) Xeoma

Бесплатный режим позволяет использовать не более 8 источников видео и не более трёх модулей. 5 дней хранения архива. Полное сравнение возможностейбесплатного с платным функционалом

11) AVReg

12) Трассир — Не более 30 минут за один сеанс, суммарно не более 4-х часов в день.

13) Alnet Systems Netstation — 4 канала, 7 дней видеоархив.

14) Argus DVR — Полнофункционально, водяной знак — не зарегистрировано.

15) Arteco Me — 2 канала.

16) ATVideo VMS — Без ограничений

17) GeniusVision NVR — 16 каналов

18) Herospeed VMS — 64 канала

19) ipConfigure Orchid — 4 канала

20) Luxriot Evo Максимальное разрешение 19201080 пикселей

21) March Networks Command Lite 6 каналов, одна неделя записи.

22) NovoSun — 64 канала

23) Pelco DigitalSentry — 4 канала

24) Випакс — 6 часов записи в архив

25) ru.ivideon.com/programma-videonabljudenija Ivideon — без ограничений

26) Globoss кол-во каналов захвата видео — до 4-х; (видео с плат видеозахвата и/или с IP-камер);кол-во каналов принимаемых по сети — до 16-ти (видео с других серверов GLOBOSS FREE);не поддерживается модуль веб-трансляции;количество подключаемых клиентов к одному серверу — не более 4-х

Работа с веб-камерой в Linux

Кроме стандартного использования web-камеры linux по назначению для видеозвонков в программе Skype, можно делать еще много вещей, например писать видео или делать фотографии. В Linux существует несколько способов записи видео с помощью веб-камеры.

Рассмотрим самые распространенные из них. Во-первых, вы можете транслировать вывод веб камеры сразу на экран компьютера или ноутбука просто выполнив команду:

А с помощью mencoder вы можете сразу писать вывод веб-камеры в avi файл:

Если в вашей системе не установлены эти утилиты, то вы можете использовать даже ffmpeg для записи видео с веб камеры:

Вам необязательно использовать для этой задачи консольные утилиты. Записывать видео с различных устройств позволяет и такая программа, как vlc. Запустите программу из главного меню, откройте меню файл, устройство захвата:

Выберите устройство для записи видеокамера, файл устройства video0:

Дальше нажмите на стрелочку около кнопки Play и выберите Convert (конвертировать) такое решение необходимо для сохранения данных в файл, если сохранять ничего не нужно, можно сразу нажать Play, чтобы проигрывать видео на экране в реальном времени:

Здесь осталось только выбрать файл для сохранения в поле конвертировать в файл:

После того как вы нажмете Старт начнется запись и засветится лампочка на веб-камере:

В набор программ v4l-tools входит утилита streamer, которая позволяет выполнять различные действия веб-камерой в Linux, записывать фото и видео.

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

Теперь можно использовать программу. Для записи одного фрейма выполните:

Следующая команда сохранит 10 фреймов:

А такой командой можно записать видео, длительностью 30 секунд и с расширением 352 х 240 пикселей:

Настройка веб-интерфейса

По умолчанию, веб-интерфейс motion запускается на адресе localhost, что означает, что он будет доступен только с локального компьютера, что не совсем удобно для сервера.

Открываем конфигурационный файл:

vi /etc/motion/motion.conf

Редактируем следующие строки:

webcontrol_localhost off

stream_localhost off

Перезапускаем демона:

systemctl restart motion

Зайти на веб-интерфейс можно по адресу http://192.168.0.15:8080 для управления конфигурацией сервера, и http://192.168.0.15:8081 для подключения к трансляции в реальном времени (где 192.168.0.15 — адрес сервера с установленным motion).

Совместимые браузеры

Ниже описываются совместимость основных браузеров при
использовании 3 основных модулей веб-интерфейса AVReg.

MSIE — да!

просмотр
архива

Обеспечивается.

Обеспечивается через ActiveX.

Gecko (Firefox и др.) — да.

просмотр
архива

Обеспечивается, для просмотра видео прямо на странице в Linux
нужен плагин totem-mozilla.

Обеспечивается нативно , но:

  • высокая нагрузка на систему — не рекомендуем
    использовать при многокамерном просмотре (условно от 50 fps и
    выше),
  • для просмотра более чем 15(FF3) или 8(FF4/5)
    или 6(FF6) камер нужно увеличить значение
    (см. about:config)
    или разбить камеры на группы (не более чем по 6) и сформировать
    соответствующие профили
    avregd;

  • нет возможности автоматического
    восстановления просмотра камер(ы) при обрыве соединения.

Webkit (Google Chrome и др.) —
нет.

просмотр
архива

Обеспечивается нативно , но:

  • высокая нагрузка на систему — не рекомендуем
    использовать при многокамерном просмотре (условно от 50 fps и
    выше),
  • для просмотра более чем 6 камер одновременно
    необходимо разбить камеры на группы (не более чем по 6) и
    сформировать соответствующие профили
    avregd;
просмотр
архива

Bluecherry

 

Если вы хотите использовать исключительно программное обеспечение с открытым исходным кодом, Bluecherry — это Linux NVR для вас. Это кроссплатформенная система видеонаблюдения, поэтому вы можете запускать ее на других платформах.

Установка проста, с однострочным установочным скриптом, доступным для Ubuntu, Debian и CentOS. Он поддерживает более 2600 IP-камер с возможностью воспроизведения записей и потокового вещания в браузере. К сожалению, в Bluecherry отсутствует собственное мобильное приложение для Android и iOS, но поддерживается интеграция с IP Cam Viewer.

Хотя Bluecherry является бесплатным и с открытым исходным кодом, платные пакеты поддержки доступны для бизнес-пользователей. Благодаря богатому набору функций и платной поддержке, Bluecherry является отличным вариантом для использования как в бизнесе, так и в быту.

Бесплатные в течении пробного периода

27) Aimetis Symphony — 30 дней

28) Avigilon Control Center — 30 дней

29) Axis Camera Station — 30 дней

30) Blue Iris — 15 дней

31) CathexisVision — 5 каналов, 60 дней

32) Digifort VMS — 30 дней

33) Exacq — 45 дней

34) IndigoVision Control Center — 5 каналов, 45 дней

35) Logiware go1984 — 30 дней

36) Ksenos — 90 дней

37) Macroscop — 30 дней

38) Milestone XProtect — 30 дней

39) Netavis Observer — 30

40) Network Optix nxWitness — 4 камеры, 38 дней

41) OnSSI Occularis — 30 дней

42) SecuritySpy — 30 дней

43) SeeTec Cayuga — 30 дней

44) Sony RealShot Manager 30

45) Vicon Valerus — 30 дней

46) VideoInsight VI Monitor — 60 дней

47) Wavestore VMS — 30 дней

Запуск iVMS-4200

Можно попробовать запустить программу из командной строки:

/opt/iVMS/iVMS-4200

Мы должны увидеть:

iVMS-4200: cannot connect to X server

Это означает, что программа запустилась, но ей нужна графическая оболочка.

Настройка прав

При первом запуске программе необходимо создать базу данных. Для этого необходимы права пользователю, из под которого планируется выполнять запуск программы. Мы можем поступить 2 способами:

а) задать в качестве владельца каталога с программой нужного нам пользователя:

chown -R user:user /opt/iVMS

* где user:user — соответственно пользователь и группа владелец. 

б) или дать полные права на каталог:

chmod -R 777 /opt/iVMS

Запуск

Запуск программы выполняется в графическом интерфейсе. Для этого просто переходим в каталог с программой (в нашем примере, /opt/iVMS) и выполняем запуск двойным кликом по файлу iVMS-4200.

Система запросит создать пользователя — задаем логин и пароль.

Можно работать с программой.

Настройка оборудования для захвата видео/аудио.

  • Cетевые устройства:

    • с поддержкой rtsp (кодирование
      h264,mpeg4,mjpg);
    • Motion JPEG по протоколу
      http:
  • PCI-платы видеозахвата для
    подключения CCTV видеокамер с аналоговым композитным
    видеосигналом;

    • полностью совместимые:

      • актуальные:

        • на декодерах Techwell tw68 (cм. драйвера):
    • возможно совместимые: и ;

    • как проверить: «Платы видеозахвата в Linux.».
  • USB-камеры (поддерживаемые
    video4linux2 драйверами).

Рекомендуемые максимальные
разрешения для PCI устройств аналогового видеозахвата:

  • 4 камеры — макс. возможное, например 720×576 для
    saa7134, 768×576 для bt8xx, 704х576 для techwell;
  • 5 камер — 640х480;
  • 6,7 камер — 560×420;
  • 8 камер — 480х360;

Поддерживаемые устройства
аудиоввода

  • IP-камеры с возможностью
    трансляции звуковых потоков по rtsp. Некоторые модели камер с
    возможностью трансляции звуковых потоков по http.

  • ALSA -совместимые
    устройства:

    • звуковые карты,
    • платы видеозахвата с возможностью аудиоввода,
    • микрофоны USB-камер (linux alsa-совмеcтимых).

Подгонка веб-интерфейса «под себя»

Мы предусмотрели штатный механизм изменения веб-страниц
веб-интерфейса AVReg с сохранением ваших изменений при обновлениях
пакета .

В каталоге «» вы можете
разместить свои колонтитулы почти к любой странице веб-интерфейса
AVReg:

  • верхний (HEADER) — шаблон

  • нижний (FOOTER) — шаблон

где:

  • RELDIR — часть пути файла URL целевой страницы;
  • BASE — имя файла целевой страницы без
    расширения.

Пример:

целевая страница «/avreg/online/view.php»
RELDIR = «online»
BASE   = «view»
HEADER = «online/view_header.inc.php»
FOOTER = «online/view_footer.inc.php»

В HEADER и FOOTER вы можете добавлять произвольные прямоугольные
блоки с текстом и изображениями. В HEADER вы можете
добавлять/переопределять CSS-стили, добавлять свои
скрипты и даже делать автоматические перенаправления на другие
страницы (только с главной страницы).

Если вам нужно полностью переопределить
страницу, разместите ваш контент в HEADER файле и поместите вызов
php-функции в конце кода.

Если вы установите (см. выше ), то
на страницах веб-интерфейса пунктирной красной линией будут
отмечены колонтитулы HEADER и FOOTER и приведены абсолютные имена
включаемых файлов, контент которых может быть размещён внутри
колотнитулов.

Добавление камер

Добавим несколько камер. Для этого сначала открываем конфигурационный файл:

vi /etc/motion/motion.conf

Добавляем строки с описаниями камер (для каждой камеры свой файл с настройками):

camera /etc/motion/camera1.conf
camera /etc/motion/camera2.conf

* до версии 3.4.1 вместо camera используется thread.

Теперь создаем данные файлы:

vi /etc/motion/camera1.conf

Задаем настройки:

width 1920
height 1080
framerate 20
netcam_url http://192.168.0.15/video
netcam_userpass login:password
text_left CAMERA 1
\nStreet 1
target_dir /video/motion/cam1
threshold 2000
lightswitch_percent 60
minimum_motion_frames 5
event_gap 10
locate_motion_mode on
locate_motion_style redbox
text_changes on

* до версии 4.1.1 вместо lightswitch_percent используется lightswitch.

… и для второй камеры: 

vi /etc/motion/camera2.conf

width 1280
height 768
framerate 20
netcam_url rtsp://192.168.0.16:554/user=admin&password=&channel=1&stream=1.sdp
text_left CAMERA 2\nStreet 2
target_dir /video/motion/cam2
threshold 2000
lightswitch_percent 60
minimum_motion_frames 5
event_gap 10
locate_motion_mode on
locate_motion_style redbox
text_changes on
ffmpeg_timelapse 1

* где:

  • width — разрешение видео по горизонтали.
  • height — разрешение видео по вертикали.
  • framerate — число кадров в секунду.
  • netcam_url — ссылка на поток камеры.
  • netcam_userpass — логин и пароль для доступа к видеопотоку.
  • text_left — текст, который будет наложен слева снизу экрана.
  • target_dir — каталог для хранения записи с камеры.
  • threshold — число пикселей, которые должны измениться для срабатывания детектора движения.
  • lightswitch_percent — игнорировать резкие изменения интенсивности света.
  • minimum_motion_frames — количества кадров, в которых должно быть замечено движение, чтобы сработал детектор.
  • event_gap — количество секунд, по прошествии которых без движения отключать действие детектора.
  • locate_motion_mode — отрисовка рамки вокруг движущегося объекта.
  • locate_motion_style — стиль окна. Возможны значения box, redbox, cross, redcross.
  • text_changes — текст, отображающий измененные пиксели при движении.
  • ffmpeg_timelapse — как часто делать запись фрагмента в файл, если нет движения.

* первая камера настроена на запись при движении, видеопоток берем посредством http-запроса. Вторая — на запись при движении + посекундная постоянная запись, видеопоток забираем с использованием RTSP.

Создаем каталоги для видео файлов:

mkdir -p /video/motion/cam{1,2}

Задаем владельца для созданных каталогов:

chown motion:motion /video/motion/cam{1,2}

Перезапускаем motion:

systemctl restart motion

AVReg

В общем, переехал на AVReg. Установка AVReg уже проще, однако все равно далеко не тривиальна. AVReg работал в бесплатном режиме, поэтому из 6ти установленных камер запись производилась только с 4-х, однако запись видеоданных уже была стабильной. AVreg стабильнее, чем ZoneMinder, видеопотоки не «отваливаются». Однако сложность и нетривиальность настроек и «аляповатый» интерфейс немного раздражаал. Качество детектирования движения также оставляло желать лучшего. AVReg записывал очень много, поиск в архиве нужных событий неудобен. В конечном счете как мне сейчас кажется цена лицензии 1000 рублей за одну камеру для этого проекта сильно завышена. Адекватный ценник для AVReg рублей 400 за канал, не больше.

В общем, при работе с указанными выше проектами, было потрачено уйма времени и то, что в итоге получалось, не вызывало восторга. Время от времени, обращаясь к Гуглу за советом, что же еще хорошего имеется по теме NVR для Linux, пришел к выводу что небольшая плата за качественный софт для организации системы видеонаблюдения не такая уж плохая мысль.

Настройки.

Все настройки avreg-unlink вынесены в файл
«», в
основном в секции «».

Каждый параметр в конфигурационном файле комментирован, поэтому
просто приведём часть его содержимого.

...

# Имя хоста SQL-сервера и имя базы данных.
# По умолчанию:
; db-host = 'пусто'
; db-name = 'avreg5_db'

# Каталог, в который должны сохраняться аудио/видео файлы.
# По умолчанию:
; storage-dir = '/var/spool/avreg'

# Имя текстового файла-журнала, в который записываются "вручную"
# удалённые из архива файлы, например, для сокрытия каких-то проишествий.
# Журнал создаётся в каталоге "{{storage-dir}}".
# По умолчанию: "removed-manually.txt"
; removed-manually = 'removed-manually.txt'

# Системные пользователь/группа, с привилегиями которых ("под которыми")
# будут работать приложения серверной части AVReg - avregd и avreg-unlink.
# Такие же атрибуты "владелец:группа" получат все создаваемые каталоги и файлы.
# Прим. по группе: если при монтировании файловой системы использовалась опция
# grpid (man 8 mount), то группа созданного в ней каталога/файла будет
# установлена значением группы родительского каталога.
# По умолчанию: avreg/avreg
; user  = avreg
; group = www-data

avreg-unlink {
   ### Настройки "чистильщика" архива от старых медиа-файлов (версия 5.5),   ###
   ### автоматически запускаемого системным шедулером CRON по расписанию:    ###
   ### см. файл-задание "/etc/cron.d/avreg-unlink"                           ###
   ### Значениями параметров start-space и end-space, в сочетании с частотой ###
   ### запуска "чистильщика", вы должны предотвратить 100% заполнение        ###
   ### дискового устройства используемого для записи файлов, и тем самым     ###
   ### останов процесса записи. Значениями параметров del-per-once и timeout ###
   ### вы должны предотвратить пиковую перегрузку системы вызванную          ###
   ### процессом удаления файлов с файловой системы и записей в базе данных. ###

   #    Устанавливайте имя "db-user" и пароль "db-passwd" доступа к базе данных
   # в приватном ( 0600 root:root ) файле c именем "avreg-unlink.secret" 
   include /etc/avreg/avreg-unlink.secret

   #    Команда для получения размеров диска в 1КБ блоках,
   # требуемый stdout вывод: "1Kблоков_ИСПОЛЬЗОВАНО 1Kблоков_ВСЕГО",
   # Параметр "disk-usage-cmd" предназначен прежде всего для ипользования
   # дисковых системных квот quota(1)/quotactl(2) или xfs_quota(8).
   # В команде можно использовать переменные:
   #  - @USER/@GROUP - раскрываются как "user"/"group" в avreg.conf;
   #  - @DIR/@FS/@MNTPOINT - раскрываются как имя каталога "storage-dir"
   #   в avreg.conf, имя блочного устройства и точка монтирования, соотв.
   # По умолчанию: не задано, т.е. будет использоваться вызов statfs(2)
   # Для ext3/ext4 файловых систем смонтированных с опцией "usrquota":
   ; disk-usage-cmd = "quotatool -b -u @USER -d @MNTPOINT | awk '{ print $3,$5 }'"
   # Для XFS файловой системы смонтированной с опцией "uquota":
   ; disk-usage-cmd = "xfs_quota -c 'quota -vbN @USER' | awk '{ print $2,$4 }'"

   #    В трёх нижеследующих параметрах допустимо использование
   # суффиксов-модификаторов: k, M and G байт,
   # например: 2500M or 1G (пишите латинскими буквами и слитно)
   #    Для "-space" опций вы пожете также задавать знаяения в процентах,
   # от общего размера устройства "storage-dir".

   #    Размер свободного места на архивном устройстве,
   # при котором начинается процесс очистки.
   # По умолчанию: остаток - '10%', суффикс-модификатор - 'G'(Гигабайт)
   ; start-space = 35G

   #    Размер свободного места на архивном устройстве,
   # при котором заканчивается процесс очистки.
   # Рекомендуется устанавливать не менее чем 1,5 размера start-space
   # По умолчанию: остаток - '15%', суффикс-модификатор - 'G'(Гигабайт)
   ; end-space = 50G

   #    Внутри сеанса удаления процесс разбит на небольшие транзакции.
   # Это нужно для того, чтобы не перегрузить систему длительным и непрерывным
   # процессом удаления файлов с жестких дисков (особенно на ext3 или 
   # программных RAID 4,5) одновременно с процессом записи новых файлов.
   # В рамках одной транзакции удаляется набор файлов с общим размером
   # не более чем значение "del-per-once".
   # По умолчанию: удалять по 100M, суффикс-модификатор - 'M'(Мегабайт)
   ; del-per-once = 200M

   #    Перерыв между транзакциями timeout в секундах,
   # по умолчанию: 1 секунда
   ; timeout = 2

   #    Читать за один раз rows-per-select записей из таблицы EVENTS.
   # Если не очень понимаете зачем нужен этот параметр - не трогайте.
   # По умолчанию: 5000
   ; rows-per-select = 10000

   #    Не удалять записи и файлы новее чем "select-now-minus" минут.
   # Поставьте как максимальное возможное значение длительности (mtime - ctime)
   # медиа-файлов (см. V.max_minutes и A.max_minutes) с небольшим запасом.
   # По умолчанию: 60 минут (1 час.)
   ; select-now-minus = 120
}
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector