Системы видеонаблюдения/видеофиксации сейчас очень популярны. И хотя на рынке их великое множество, желание сэкономить, особенно для использования дома или в секторе SOHO, часто приводит к мукам выбора.  В частности, у меня были следующие условия для домашнего NVR:  Первая система видеонаблюдения, которая проработала чуть больше года и явлалась первым опытом использования систем видеонаблюдения была ZoneMinder. Честно сказать, ZoneMinder достаточно сложен в установке и настройке, но даже не это стало основной проблемой в его использовании. Основная проблема появилась, когда я стал потихоньку заменять старые MJPEG камеры, на H.264-видеокамеры. Не знаю как сейчас, но версия с которой я работал несколько лет назад (1.28) не поддерживала H.264 потоки "из коробки", а то что получалось сделать подключив ffmpeg, хоть и работало, но достаточно сильно нагружало процессор, а качество детектирования движения оставляла желать лучшего. Попросту получалось либо записывать видео с камер почти непрерывно, либо при "загрублении" детектирования движения приходилсоь мириться с пропуском "важных" кадров. Кроме того, видимо из-за бешеной нагрузки на процессор, процессы ffmpeg, декодирующие H.264, падали и часто запись не велась вовсе. Пришлось искать что-то другое.  В общем, переехал на AVReg. Установка AVReg уже проще, однако все равно далеко не тривиальна. AVReg работал в бесплатном режиме, поэтому из 6ти установленных камер запись производилась только с 4-х, однако запись видеоданных уже была стабильной. AVreg стабильнее, чем ZoneMinder, видеопотоки не "отваливаются". Однако сложность и нетривиальность настроек и "аляповатый" интерфейс немного раздражаал. Качество детектирования движения также оставляло желать лучшего. AVReg записывал очень много, поиск в архиве нужных событий неудобен. В конечном счете как мне сейчас кажется цена лицензии 1000 рублей за одну камеру для этого проекта сильно завышена. Адекватный ценник для AVReg рублей 400 за канал, не больше.  В общем, при работе с указанными выше проектами, было потрачено уйма времени и то, что в итоге получалось, не вызывало восторга. Время от времени, обращаясь к Гуглу за советом, что же еще хорошего имеется по теме NVR для Linux, пришел к выводу что небольшая плата за качественный софт для организации системы видеонаблюдения не такая уж плохая мысль.  Первое на что упал взор это была XEOMA.
Нужно сказать, что взор упал удачно, потому что, как оказалось указанный софт для NVR обладал всем тем, что мне и требовалось для организации домашнего видеонаблюдения: Как я уже писал одним из ключевых условий для использования NVR — это возможность ее запуске в виртуальной среде (VMWare ESXi 6.5 на машине i5-3570 @ 3.40Ghz/RAM 32Gb), причем конечно же очень желательно обеспечить минимизацию потребляемых ресурсов системой.  В связи с этим для начала была создана ВМ с CentOS 7.3, которой были выделены достаточно скромные ресурсы: Сервер XEOMA запускается не просто, а предельно просто. Честно сказать я был очень удивлен процессом установки и запуска системы в Linux, особенно после мытарств с ZoneMinder и AVReg.
Тут все просто:  На рабочую станцию (работающей, к примеру, уже под Windows), также необходимо загрузить программный модуль XEOMA по указанной выше странице загрузки и запустить его командой:  Программа, запущенная в режиме клиента, сама обнаружит xeoma-сервер, подключится к нему (если он находится в той же подсети), предложит на выбор автоматическое сканирование сети или ручной ввод камер. Адрес сервера Xeoma также можно ввести вручную при помощи меню "Удаленный доступ" > "Подключение к удаленному серверу":   Здесь вводим IP-Адрес и пароль доступа, полученный ранее (см раздел 4.2.):   В итоге получаем приблизительно следующую картинку:   Собственно конфигурирование Xeoma такое же простое и интуитивно понятное как и установка этой системы. Полное руководство приведено на сайте производителя. Честно сказать, учитывая то, что Xeoma самостоятельно производит детектирование движения на основании которого производит запись видеопотока, у меня были сомнения в достаточности 1го ядра для виртуальной машины с запущенным Xeoma-сервером. Однако загрузка едиственного ядра при включенной детекции движения 6ти камерах составляла около 30-40% и оставалась в указанных пределах даже при активности на всех камерах. При отсутствии движения, загрузка опускалась ниже 20%:   Средняя HDD Latency при максимальной загрузке составляет 35-50ms, что достаточно много, однако такая задержка соответсвует одновременной записи видеопотока с 5-6 камер. Такая нагрузка случается нечасто, однако все таки стоит для записи видеопотоков выделить отдельный диск, подключив его как RDM-диск:   Выделенного объема дискового пространства в 200 Гб оказалось достаточно для хранения видеоданных от 6ти HD видеокамер в течении 2х недель:   В целом настройки детектирования и архива ведеоданных, предлагаемые Xeoma по умолчанию вполне нормально работают без каких либо изменений, однако учитывая ограничения ресурсов виртуальной машины с Xeoma-сервером, и отсутствие необходимости хранения излишней информации все-таки порекомендую сразу внести небольшие изменения в настройке модуля "детектор движения":    Изменяем порог чуствительности. Нужно немного понаблюдать за показаниями текущего уровня чуствительности при различных изменениях видеокадра и принять решение о минимальном пороге чуствительности. Меня устраивает значение 10, при котором детектор не пропускает никакого движения в камере. Значение же 5, установленное по умолчанию, фактически фиксирует "шум" видеокамер и незначительные изменения освещенности, приводя к большому объему записи в видеоархив.
 Изменяем область детектирования. При помощи кисти и режима "стереть" удаляем лишние области, фиксация движения в которых нам не интересно.
 Изменяем минимальный размер объекта. Точнее, немного увеличиваем. Размер объекта "по умолчанию", очень мал, что также приводит к ошибочному срабатыванию детектора и избыточной записи кадров, не содержащих ничего полезного. Настройки модуля "Просмотр и Архив" также возможно Вам стоит немного откорректировать. Мои настройки например выглядят так:     Предзапись.  Я установил 5 секунд, что гарантирует, что за счет буферизации видеопотоков в видеоархив будет записана информация, не только с начала обнаружения движения, но и за пять секунд до него.
 Время хранения этого архива.  Учитывая что общий доступный объем дискового пространства, выделенного под видеоархив равен 200Гб, 2 недели — оказались оптимальной глубиной хранения. Для снижения нагрузки на сервер, при подключении к нему клиентов рекомендуется производить декодирование видеопотоков на клиентах. Для этого стоит установить настройки декодирования как показано на следующем рисунке:    На работу Xeoma в виртуальной среде, производителем установлены ограничения, которые могут быть для кого-то критичными. В частности в полной инструкции на систему написано следующее: Работает это следующим образом: При пропадании Интернет, сервер Xeoma на виртуальной машине в течении 2х суток продолжает работать как ни в чем не бывало, записывает архивы, разрешает подключение клиентом, но все это работает до перезапуска сервера. Если при перезапуске сервер не сможет обратиться через интернет за Активацией лицензии, то продуктивная работа сервера будет прекращена, т.е. данные с камер поступать не будут, архив прекратит записываться. При попытке запустить клиент, вы увидите следующее предупреждение:    Теперь пока у Вас не появится Интернет Xeomу вы сможете использовать только для просмотра архива. Для этого нажмите кнопку "Продолжить работу".  Однако, после возобновления доступа к Интернет, вас ждет одна неприятность (по крайней мере в последней версии 17.11.24). Несмотря на то, что с возобновлением доступа к Интернет функционал Xeoма заработает в полном объеме, при просмотре информации о Вашей активной лицензии (Меню > Информация > Активные лицензии) вы увидите следующее:   Ожидание в течении суток с небольшим, не исправило ситуацию, поэтому мне пришлось повторно ввести код активации лицензии вручную.  Учитывая не совсем понятную логику работы Xeoma, запущенной в виртуальной машине, я могу порекомедовать защитить себя от сброса настроек, которые вы сделали ранее, сохранив их одним из двух способов:  Xeoma очень хорошая система видеорегистрации. Своих денег она безусловно стоит. Это, как было указано выше, 875 рублей за 1 камеру при использовании стандартной лицензии. Для 6ти камер ее использование обойдется около 5000 рублей. Учитывая, то, сколько времени вы потратите на то, чтобы добиться приемлемой работы бесплатных решений — это безусловно невысокая цена. Хочу отметить превосходную систему обнаружения движения, которая позволяет сохранять и быстро находить все без исключения значимые события, попадающие под ваши видеокамеры, без боязни что-то упустить. За счет этого, для двухнедельной записи с 6ти FullHD-камер достаточно выделить всего 200Гб дискового пространства, тогда как во многих недорогих регистраторах (например на базе CMS), для того, чтобы не пропустить события, приходится включать непрерывную запись, что для той же двухнедельной глубины архива потребует уже порядка 2Тб.