Статья

Motion Eye - что это, и зачем оно вообще?

После покупки NAS от Synology встал вопрос - что использовать в качестве регистратора для камер и основы для автоматизаций, связанных с камерами? Вроде бы есть свой SurveillanceStation, мощный и хороший софт, но! Как всегда есть некое «но», и это - стоимость лицензий на добавление камер. Бесплатно можно добавить 2 камеры, дальше:

  • 4690 руб. за одну камеру;
  • 18790 руб. за две камеры;
  • 32790 руб. за комплект из 8 камер.

Отдавать 80% стоимости NAS за комплект только из 8 камер жаба, естественно, задушила. Немного погуглив, наткнулся на интересный open source проект с web интерфейсом MotionEye и уже 6 месяцев он работает без единого сбоя. Что же такое этот MotionEye и где его можно использовать?

P.S. Как его устанавливать я не буду описывать т.к. у меня он работает в докере на NAS и моя установка подходит разве что 0,01% читателей ресурса. Просто оставлю ссылку на GitHub разработчика.

Немного про интерфейс

Интерфейс позволяет настроить:

  • сетку от 1 камеры на экран (сетка 1*1) до 16 камер (сетка 4*4). Я использую сетку 2*2 т.к. пока используется 4 камеры;
  • frame rate для показа на главной странице со всеми камерами (2 FPS более чем достаточно: и ресурсов мало используется, и избыточно в принципе);
  • в один клик можно открыть любую камеру во весь экран с нормальным для просмотра real-time видео FPS (также настраивается для каждой камеры, я выбрал 20);
  • в один клик также можно посмотреть видео записи и скриншоты с любой камеры (об этом позже) и открыть настройки.

Сам интерфейс минималистичен и прост, но есть все необходимое, скрин ниже (изображения с камер, конечно же, размыты).

Варианты добавления камер.
Настройки для добавления RTSP потока камер.
Базовые настройки интерфейса.
Базовые настройки камеры.

Видеонаблюдение и запись

Все настройки выложу скринами, там все просто и не требует в принципе каких-либо знаний (у каждого пункта настроек есть tooltip с подсказкой что это, и зачем). Кликаем на изображения, чтобы увидеть все.

1. Указываем путь для сохранения видео/изображений. Можно вызвать web hook, если хочется сильно покастомизировать.
2. Указываем: как будут называться файлы;сколько они будут храниться;в каком качестве сохраняться;формат видео (для пользователей Apple рекомендую родной HEVC);триггер ручной либо по движению.
3. Указываем условия, при которых сработка на движение начнет запись или сделает скриншот. Рекомендую использовать настройки как у меня на скриншоте, иначе можно начать ловить большое количество ложных сработок и лишних видеозаписей.
4. Указываем, хотим ли мы выполнять дополнительные действия при сработке (если уж брать под контроль каждый чих дома =) ).
5. Можно указать даже расписание по дням и часам. Сохраняем. Все настроено и сразу работает.

Самое логичное использование MotionEye мы рассмотрели - никаких сложностей, никакого кода, большая часть настраивается мышкой. Я специально упустил в описаниях изображений один интересный пункт Useful URLs в разделе Video Streaming, в который входит 3 ссылки:

  • Snapshot URL - линк формата http://ip:порт motioneye/picture/номер камеры/current/, делает скриншот текущего изображения по запросу (удобно использовать для телеграм бота и камер в HomeBridge);
  • Streaming URL - линк формата http://ip:порт камеры/, позволяет по данной ссылке просматривать камеры real-time (тоже можно использовать для телеграм бота в некоторых случаях);
  • Embed URL - линк формата http://ip:порт камеры/picture/номер камеры/frame/, позволяет по данной ссылке встраивать в web камеры real-time (можно, например, встроить в Home Assistant через iFrame в lovelace).

Давайте, для начала, придадим камерам в HomeBridge молниеносную скорость получения скриншотов. Чтобы видеть текущее изображение сразу, как только открыли камеру (и ждете загрузку стрима) в HomeKit на просмотр или просто комнату с камерой, просто добавляем/заменяем в конфиге камеры одну строчку и перезагружаем HomeBridge.

"stillImageSource": "-i http://ip:порт motioneye/picture/номер камеры/current/",

А теперь, при помощи команды телеграм-боту в Node-Red (я использую node-red-contrib-telegrambot т.к. в нем предусмотрена возможность использования socks), отправим текущий скриншот, и заодно ссылку на онлайн-стрим, чтобы не выходя из телеграма можно было, при необходимости, посмотреть, что происходить в real-time.

Вот так выглядит флоу:

  • Отправляем команду.
  • Получаем изображение по ссылке http://ip:порт motioneye/picture/номер камеры/current/.
  • Отправляем изображение и подпись к нему с текстом и ссылкой на онлайн-стрим видео.

А само флоу для экспериментов (вы можете, например, встроить его в свои автоматизации node-red, используя со 2 по 4 ноду) доступно по ссылке. Импортируйте себе и эксперементируйте на здоровье =)

Как итог, я использую MotionEye уже около полугода, и за это время у меня не возникло ни одной претензии к нему и он ни разу не "упал" и не заглючил. Если придумаете для MotionEye другие кейсы, делитесь в комментариях =)


Класс, до камер и фото через HP Телеграмм я еще не добрался, а вот мой старый Synology очень хочется заменить на такой как у тебя. Хотя на старом Домотик работает до сих пор 2.5 года.

Ссылка в телеге только в локальной сети работает? Или подключение осуществляется через VPN?


И как с мобильными клиентами для этого софта? Есть что-то для удаленного мониторинга с мобилы? 


В этом плане синоложи удобен из-за своих облаков.

- я решил этот вопрос белым IP;

- клиентов нет, это open source, просто закладка в браузере; я его заводил в первую очередь для записи по триггерам и отсылки скриншотов в телеграм бот, ссылка к скриншоту уже дополнительная фича.

А ivideon для видеонаблюдения не пробовали использовать? Там все эти ф-ии есть и клиент хороший и облака...

Скажите у вас хорошо работает просмотр архива через интернет? Потому что live просмотр рабоатет прекрасно, а вот архив очень плохо (открывается через раз с длительным ожиданием, ускоренный просмотр тоже плохо работает). Пробовал ivideon server и под windows и под debian, железо номральное (core i5 + 8gb + ssd), подключено 4 ip-камеры по rtsp.

Алексей привет, можешь уточнить Motion eye сам определяет движение на видео потоке или это информация береться с камеры и должна быть доступна в спецификации? Задача создать виртуалный датчкик движения в хоумкит через НР.


Вернуться назад
Вернуться назад