Страница 1 из 19

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

Добавлено: Пн дек 03, 2018 4:27 pm
directman66
Модуль 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 КБ) 8906 просмотров

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/

Наблюдение:
Две камеры h264 в одно и тоже время примерно через месяц перестали присылать статусы о сработках. Перезагрузка не помогает, но запуск
приложения CMS, просмотр параметров настроек и закрытие приложения.


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

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


Поддержать проект можно через коннект https://connect.smartliving.ru/tasks/332.html

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

Добавлено: Пн дек 03, 2018 9:55 pm
directman66
В этом сообщении собираем список камер и пути к 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

3) reolink RLC-420
snapshot: http://192.168.1.13/cgi-bin/api.cgi?cmd ... rd=XXXXXXX

4) herospeed 3516d imx123
snapshot: http://user:password@IP_адрес:80/snap.jpg

5) Вызывная панель Hikvision DS-KB8112-IM
onvif есть
По идее должна отдавать уведомления об открытой двери и принимать команду на открытие.
RTSP HQ: rtsp://IPADDRESS:554/h264/ch01/main/av_stream
rtsp://user:password@IPADDRESS:554/ISAPI/Streaming/Channels/101
RTSP HQ: rtsp://IPADDRESS:554/h264/ch01/main/av_stream
rtsp://user:password@IPADDRESS:554/ISAPI/Streaming/Channels/102
snapshot: http://IPADDRESS/Streaming/channels/1/preview

6) Камера DS-2CD2032-I
onvif есть
RTSP HQ: rtsp://IPADDRESS:554/mpeg4/sub/main/av_stream
RTSP LQ: rtsp://IPADDRESS:554/mpeg4/ch01/sub/av_stream
snapshot: http://IPADDRESS/Streaming/channels/1/picture

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

Добавлено: Вт дек 04, 2018 3:00 pm
K070HY
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".

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

Добавлено: Вт дек 04, 2018 3:32 pm
VooDooN
Модуль еще не ставил (жду камеру), пока смотрю по скринам. Хотелось бы еще:
1) как-то указывать модулю, нужно ли ему сейчас делать снэпшоты или нет. Допустим, в свойстве камеры где-то ставить 1 или 0. Когда все дома, снэпшоты не нужны, а в режиме Охраны нужны. Или в других специфических случаях.
2) было бы полезным указывать место хранения снэпшотов. Чтобы не грузить карту памяти, я бы указывал сетевой диск, например.
Спасибо за модуль!

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

Добавлено: Ср дек 05, 2018 6:26 am
directman66
Добавлена возможность сохранения rtsp потока и отправки видео в формате mp4.

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

Добавлено: Ср дек 05, 2018 9:04 am
directman66
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

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

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


Кстати, связался с руководителем продуктов технологии компьютерного зрения Vision мэйлру. Интересовался распознаванием голоса, фэйса и номера автомобиля. Ответили, что если количество запросов небольшое, то можно все сделать на их API, тем более, что есть бесплатный тариф. Так что возможно и бесплатно.

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

Добавлено: Чт дек 06, 2018 5:34 pm
directman66
5000 запросов в месяц бесплатно, это всего 166 запросов в день. Думаю выбрать этот показатель легко и за четверть месяца.

Работаю в этом направлении.

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

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

PS еще программа ONVIF Device Manager версия 0.9.4 тоже картинку не показывала, а версия 2.2.25 работает, можно скачать https://sourceforge.net/projects/onvifd ... -v2.2.250/

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

Добавлено: Пт дек 07, 2018 5:27 am
directman66
Пробуйте получить картинку через vlc. Как появится, можно будет настраивать. Onvif нужен только для эмуляции датчика движения. Его с легкостью можно заменить любым другим датчиком движения.