[Модуль] Camshoter (camshoter)

Разработка дополнительных модулей, подключение различных приложений.

Модераторы: Bagir, Ivan, Vit, immortal, PAV

directman66
Сообщения: 1864
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 284 раза
Поблагодарили: 347 раз
Контактная информация:

[Модуль] Camshoter (camshoter)

Сообщение directman66 » Пн дек 03, 2018 4:27 pm

Модуль Camshoter позволяет сохранять скриншоты при срабатывании датчика движения.

Реализовано:
1) Привязка камеры к параметрам устройств (например свойство status объекта Motion);
2) При изменении привязанного свойства, сохраняется картинка камеры, которая указана в поле URL;
3) Доступен режим просмотра сохраненных фотографий и фильтрация по дате (вкладка Снапшоты);
4) Отправка полученных снапшотов в телеграм (временно реализована отправка всем подписантам) .
5) Сохранение последних снапшотов в одной папке с постоянным именем для добавления на сцену или другие модули:
код для вставки на сцену (данный вариант использования в отличии от thumb не загружает процессор при обновлении страницы)

Код: Выделить всё

<a href="/cms/cached/nvr/last/cam1.jpg" target="_blank"> <img src ="/cms/cached/nvr/last/cam1.jpg"  width="250"> </a>
6) Проверка объема занимаемого пространства в разрезе камер.
7) Добавлена возможность сохранения rtsp потока и отправки видео в формате mp4.
8) Добавлена настройка игнорировать запись, когда дома кто-то есть. Просьба протестировать.
9) Добавлена возможность отключения камер (вручную)
10) Добавлен просмотр миниатюр для видео
11) Добавлена сохранение токена mail.ru vision, который можно получить тут https://mcs.mail.ru/ (на будущее)
12) Добавлено изменение размера миниатюр в режиме просмотра
13) Добавлено распознавание объектов с помощью сервиса vision от mail.ru. Необходимо зарегистрироваться на сайте https://mcs.mail.ru/ и после активации аккаунта на странице https://mcs.mail.ru/app/services/machin ... ng/vision/ получить токен с разрешениями (Объекты, Лица). Далее полученный токен необходимо сохранить на вкладке настройки. Информация о распознанных фотографиях хранится в таблице camshoter_recognize и выводится на экран при наведении курсора мыши на фотографию в режиме просмотра. Начальный аккаунт дает возможность производить 5000 запросов в месяц бесплатно. Функционал тестировался пока только под линукс.

Тарифы mail.ru
СпойлерПоказать
44f302ca-292a-485e-9496-dcd44e687d49.jpg
44f302ca-292a-485e-9496-dcd44e687d49.jpg (55.18 КБ) 99 просмотров

14) Добавлена эмуляция сработки привязанного датчика. Для тестирования функционала. Вызывается с основного окна модуля.
15) Для тех, у кого кодеки камеры отличаются от h264, возможно требуется перекодировка на ходу. Для этого предусмотрел в настройках камеры кастомный путь FFMEGCMD. Заполнять только если сохраняются пустые файлы. Пример заполнения:

Код: Выделить всё

 ffmpeg -y -i rtsp://192.168.1.32:554/user=admin_password=tlJwpbo6_channel=1_stream=1.sdp?real_stream -t #sec -f mp4 -vcodec copy -pix_fmt yuv420p -acodec copy -an -r 15 #savename 
Далее в процессе выполнения #sec и #savename будут заменены на нужные пути модуля. Вы можете поиграть с настройками кодеков:
для видео:
-vcodec copy
-vcodec libx264
для аудио
-acodec copy
-acodec ac3

Возможны другие варианты. Настройки зависят от того, какие кодеки поддерживает камера и какие драйвера установлены в системе.




В планах:
1) Очистка хранилища в зависимости от настроек модуля;
2) Отправка полученного изображения на анализ в сервис vision от mail.ru для распознавания объектов в кадре и распознавания лиц (платный функционал).

Как настроить:

Реакция по движению в камере:
Многие камеры ONVIF позволяют подписываться на "движение в кадре". Для того, чтобы это настроить, необходимо:
1) Создать простое устройство "Датчик движения".
2) Установить модуль ONVIF, найти или добавить вручную нужные камеры. На вкладке "общие" выбрать Enable ONVIF events polling. На вкладке "данные" привязать метрику tns1:RuleEngine/CellMotionDetector/Motion/IsMotion к созданному ранее датчику движения и свойству status или методу MotionDetected.

Проверить, поддерживает ли камера подписку и корректно ли работает подписка можно с помощью программы
ONVIF Device Manager Ссылка на программу https://yadi.sk/d/kXCND7Nmt3tAYQ
Обзор программы https://habr.com/company/synesis/blog/120747/

Реакция по внешнему датчику движения, например из модуля MiHome:
1) Создать простое устройство "Датчик движения" или "Датчик открытия";
2) Внешний датчик движения добавляется в систему мажордомо через модуль XiaomiHome, проверяется факт сработки, т.е. данные во вкладке "данные" должны быть актуальты;
2) Привязывается метрика "motion" к ранее добавленному Простому устройству "Датчик движения"

Для всех вариантов
Далее в модуле Camshoter:
1) Добавляется камера (необходимо указать Имя устройства, путь к снапшотам устройств, ip адрес (нужен для определения доступности).
2) Добавленную камеру необходимо привязать к Простому устройству "Датчик движения" на вкладке "Настройки".
3) Посмотреть снапшоты можно на вкладке "Снапшоты". Для сохранения контента используется путь /var/www/cms/cached/nvr/camX
СпойлерПоказать
cs1.png
cs1.png (19.88 КБ) 379 просмотров
cs2.png
cs2.png (140.65 КБ) 379 просмотров


Поддержать проект можно через коннект https://connect.smartliving.ru/tasks/332.html
Последний раз редактировалось directman66 Вт дек 11, 2018 12:31 pm, всего редактировалось 17 раз.
За это сообщение автора directman66 поблагодарили (всего 6):
VooDooN (Пн дек 03, 2018 4:33 pm) • K070HY (Вт дек 04, 2018 3:00 pm) • alex.frost (Вт дек 04, 2018 5:35 pm) • Igor.P (Вт дек 04, 2018 9:14 pm) • skysilver (Ср дек 05, 2018 12:42 am) • ypiter2006 (Пт дек 07, 2018 6:57 pm)
Рейтинг: 8.22%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
directman66
Сообщения: 1864
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 284 раза
Поблагодарили: 347 раз
Контактная информация:

Re: [Модуль] Camshoter (camshoter)

Сообщение directman66 » Пн дек 03, 2018 9:55 pm

В этом сообщении собираем список камер и пути к snapshot и rtsp потокам.

1) H264 HI3516C + 1/2. 8 ''Sony imx222 https://ru.aliexpress.com/item/Ultral-L ... 33edjWeK16

Onvif polling работает
snapshot: http://ip/webcapture.jpg?command=snap&channel=0
rtsp: rtsp://192.168.1.32:554/user=admin_password=tlJwpbo6_channel=1_stream=1.sdp?real_stream
инструкция по увеличению разрешения статической фотографии https://connect.smartliving.ru/profile/1502/blog60.html


2) XM 1080 P PTZ https://ru.aliexpress.com/item/XM-1080P ... 33eduHW275

Onvif отсутствует
snapshot: http://ip/webcapture.jpg?command=snap&channel=0
rtsp: rtsp://192.168.1.32:554/user=admin_password=tlJwpbo6_channel=1_stream=1.sdp?real_stream
Последний раз редактировалось directman66 Вт дек 04, 2018 8:24 pm, всего редактировалось 1 раз.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
K070HY
Сообщения: 20
Зарегистрирован: Ср янв 10, 2018 3:24 pm
Благодарил (а): 13 раз
Поблагодарили: 2 раза

Re: [Модуль] Camshoter (camshoter)

Сообщение K070HY » Вт дек 04, 2018 3:00 pm

directman66 писал(а):
Пн дек 03, 2018 9:55 pm
Место для рекламы )

зыж: допилили модуль onvif, теперь датчик движения срабатывает только когда действительно от камеры пришел alarm.

Есть постоянная ссылка на последнее фото, поэтому ее всегда можно добавить на сцену.
<a href="/cms/cached/nvr/last/cam1.jpg" target="_blank"> <img src ="/cms/cached/nvr/last/cam1.jpg" width="250"> </a>
Модуль гуд! Спасибо!
Придирку можно? Опечатка в "SLACK".
Аватара пользователя
VooDooN
Сообщения: 291
Зарегистрирован: Сб июн 11, 2016 12:02 am
Благодарил (а): 143 раза
Поблагодарили: 54 раза

Re: [Модуль] Camshoter (camshoter)

Сообщение VooDooN » Вт дек 04, 2018 3:32 pm

Модуль еще не ставил (жду камеру), пока смотрю по скринам. Хотелось бы еще:
1) как-то указывать модулю, нужно ли ему сейчас делать снэпшоты или нет. Допустим, в свойстве камеры где-то ставить 1 или 0. Когда все дома, снэпшоты не нужны, а в режиме Охраны нужны. Или в других специфических случаях.
2) было бы полезным указывать место хранения снэпшотов. Чтобы не грузить карту памяти, я бы указывал сетевой диск, например.
Спасибо за модуль!
directman66
Сообщения: 1864
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 284 раза
Поблагодарили: 347 раз
Контактная информация:

Re: [Модуль] Camshoter (camshoter)

Сообщение directman66 » Ср дек 05, 2018 6:26 am

Добавлена возможность сохранения rtsp потока и отправки видео в формате mp4.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
directman66
Сообщения: 1864
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 284 раза
Поблагодарили: 347 раз
Контактная информация:

Re: [Модуль] Camshoter (camshoter)

Сообщение directman66 » Ср дек 05, 2018 9:04 am

VooDooN писал(а):
Вт дек 04, 2018 3:32 pm

2) было бы полезным указывать место хранения снэпшотов. Чтобы не грузить карту памяти, я бы указывал сетевой диск, например.
Спасибо за модуль!
Если вынести сохраняемую папку за пределы домашнего каталога проекта, не будет доступа на просмотр контента. Для использования сетевых дисков, внешних носителей, предлагаю смонтировать их внутри домашнего каталога majordomo.

вручную:

Код: Выделить всё

mount -t cifs -o user=User //192.168.1.104/nvr  /var/www/cms/nvr 
или в автозагрузку (добавить строку в /etc/fstab):

Код: Выделить всё

//192.168.1.104/nvr cifs user=User,pass=Password 0 0
За это сообщение автора directman66 поблагодарили (всего 2):
VooDooN (Ср дек 05, 2018 11:46 am) • olegvolk75 (Ср дек 05, 2018 4:30 pm)
Рейтинг: 2.74%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
K070HY
Сообщения: 20
Зарегистрирован: Ср янв 10, 2018 3:24 pm
Благодарил (а): 13 раз
Поблагодарили: 2 раза

Re: [Модуль] Camshoter (camshoter)

Сообщение K070HY » Чт дек 06, 2018 5:16 pm

В планах:
4) Отправка полученного изображения на анализ в сервис vision от mail.ru для распознавания объектов в кадре и распознавания лиц (платный функционал).


Кстати, связался с руководителем продуктов технологии компьютерного зрения Vision мэйлру. Интересовался распознаванием голоса, фэйса и номера автомобиля. Ответили, что если количество запросов небольшое, то можно все сделать на их API, тем более, что есть бесплатный тариф. Так что возможно и бесплатно.
directman66
Сообщения: 1864
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 284 раза
Поблагодарили: 347 раз
Контактная информация:

Re: [Модуль] Camshoter (camshoter)

Сообщение directman66 » Чт дек 06, 2018 5:34 pm

5000 запросов в месяц бесплатно, это всего 166 запросов в день. Думаю выбрать этот показатель легко и за четверть месяца.

Работаю в этом направлении.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
ILGAS
Сообщения: 338
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 59 раз
Поблагодарили: 13 раз

Re: [Модуль] Camshoter (camshoter)

Сообщение ILGAS » Пт дек 07, 2018 12:07 am

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

PS еще программа ONVIF Device Manager версия 0.9.4 тоже картинку не показывала, а версия 2.2.25 работает, можно скачать https://sourceforge.net/projects/onvifd ... -v2.2.250/
directman66
Сообщения: 1864
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 284 раза
Поблагодарили: 347 раз
Контактная информация:

Re: [Модуль] Camshoter (camshoter)

Сообщение directman66 » Пт дек 07, 2018 5:27 am

Пробуйте получить картинку через vlc. Как появится, можно будет настраивать. Onvif нужен только для эмуляции датчика движения. Его с легкостью можно заменить любым другим датчиком движения.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
Ответить