Облачное хранилище, доступное в России?
Подскажите у каких производителей камер видеонаблюдения есть облачное хранилище, доступное в России? Чтоб реально было купить, а не выхватывать сообщения про санкции...
Подскажите у каких производителей камер видеонаблюдения есть облачное хранилище, доступное в России? Чтоб реально было купить, а не выхватывать сообщения про санкции...
Есть в наличии несколько камер Tiandy TC-C321N I3EY2.8(4)
У них заявлена поддержка PoE 802.3af, но нет разъема для 12V, только RJ-45.
Вопрос следующий: Можно ли подключить данную камеру через инжектор как на скриншоте? Дом не сгорит?
geekworm X832 V1.2
Наверняка у многих есть дача на которой у вас есть какие, то ценности, сарай с бензопилой или вроде того. А ещё там обязательно есть маргинальные соседи или незваные проходимцы которые так и видят как бы стырить с вашего участвка поддон с кирпичами. Предотвратить кражу не получится, но вот узнать кто это был, видеонаблюдение может помочь. Так однажды мой бывший коллега поставил камеры и у узнал, что доски для строительства ворует его сосед, а запись с камер и заявление в полицию стало хорошим аргументом, для возврата всего украденного за последниый год. Сосед был краснее всех наших помидоров из теплицы )) Установка камер окупилась буквально за 1 неделю наблюдений.
Но выбор и установка камер не такой большой вопрос, берёте почти любые не самые дешёвые с алиэкспресс, и с вероятностью 99% они будут работать отлично. А если вы гик, то можете узать какие лучше купить камеры у ребят из OpenIPC, тут их ТГ. А вот куда писать архив с камер и как его смотреть в условиях если интернет на даче только через 4G модем?
Для начала давайте я определю свои требования к видеорегистратору:
можно подключить несколько камер
всё должно работать через стандартный браузер, желательно должно быть мобильное приложение
должен быть удобный просмотр архива и его выгрузка
должна быть детекция движения, что бы не отсматривать дни видео
всё должно работать стабильно
Почти все железные видеорегистраторы с алиэкспресс до сих пор работают отвратительно и пользоваться этом сложно, хотя тенденция на улучшение есть, но всё же. По этому я сразу решил делать сам на каком нибудь одноплатнике или станом ноуте. Одноплтник лучше, так как электричества он всё таки жрёт меньше да новый доноплатик явно лучше старого ноута, который и сломаться может. Выбор пал на geekworm X832 V1.2 правда пока я писал эту статью конкретно эту модель сняли с продажи, но появился аналог на 2 диска Geekworm NASPi Gemini 3,5 Dual , да и в целом на сайте и в магазине aliexpress у них много решений, есть и на 2.5 диски и на m.2 ssd.
Компоненты
Диск под у меня WD Purple на 8 терабайт, но для видорегистратора подойдёт любой из серии WD Purple или Seagate SkyHawk.
Сразу замечу, что OS надо устанавливать на этот же диск, так как OS на флешке в Raspberry Pi мрут как мухи. Процесс установки я описывать не буду, инструкций по этому поводу в интернете масса.
На рынке много решения но я остановился на Yucca, одной из главных причин наличие функции туннеля. Если коротко это именно то, что нужно для доступа к видеорегистратору на даче за 4G модемом без белго IP. При этом всё сделано так просто, что даже думать не надо. Просто нажимаешь кнопку, получаешь ссылку, копируешь её в прилдожение, и всё, можно забыть.
Картинка с сайта документации docs.yucca.app
Правда туннель это платная функция и стоит 300р. в месяц, есть и бесплатная версия, и если у вас есть белый IP, то её будет достаточно, но мне нужен был доступ за NAT через 4G модем, по этому я купил подписку Yucca Plus. Можно заморачиваться с арендой VPS построением VPN или SSH туннелей, вот только по цене это выйдет столько же или дороже, по этому купить эту фичу мне показалось выгоднее.
По сути Yucca закрывает все потербности, которые озвучены выше, а из бонусов вот эта функция с туннелем. Есть приятный интерфейс, есть мобильное приложение, всё стабильно работает.
Я не стал вставлять скриншоты своей инталяции на даче, так как это немного приватная история.
Сколько всего потратил:
Raspberry Pi 4B (2GB) - 5 500 ₽
Плата Geekworm X832 с корпусом ~ 8 000 ₽
Диск WD Purple8tb ~ 20 000 ₽
Итого около ~ 35000 рублей, это без камер. Но диск конечно можно брать не такой большой, просто я планирую ещё каталог с фильмами и сериалами туда закинуть и смотреть летом всё это, правда придётся менять Raspberry Pi 4B(2GB) на версию с 8GB памяти, чтобы запустить там Kodi.
Как мне кажется в итоге такое решение получается очень гибким и достаточно бюджетным, по этому DYI решения всегда будут лучше готовой коробки вроде Synology, но это ИМХО.
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Так уж вышло, что подгнил разъем на камере Tp-Link VIGI C440. Ну думаю значит пора откусить штатный и обжать самостоятельно. А там провода всех цветов, только не тех что нужно...
Разъем старый препарировать буду в последнюю очередь. Гугол результатов вменяемых не дал. Помогите может кто чем сможет. Пост без рейтинга.
UPD: В комментариях помогли, спасибо всем кто уделил время!
UPD2: По итогу прозвона схема следующая. Может кому будет полезно.
========568b -> TP-Link custom========
Полуоранжевый -> оранжевый
Оранжевый -> синий
Полузеленый -> фиолетовый
Синий -> желтый
Полусиний -> зеленый
Зеленый -> коричневый
Полукоричневый -> серый
Коричневый -> Белый
Сколько слышал за камеры на дорогах с автоматическим распознаванием номеров.
Сколько слышал за камеры в метро с распознаванием лиц в интересах служб.
Но ни разу не слышал про камеры распознающие дым или инфракрасные излучения очаги возгорания. Думаю контроль дамб или подобных объектов так же возможен. Распознавание на сервере сейчас с таким справится, тем более проверяя последовательно огромную сеть камер. И датчики в здании не так и нужны. Помехи (от погоды например) в принципе фильтруются. Можно добавить контроль воздуха от БПЛА например для военных или каких- либо птиц- для заинтересованных орнитологов. Но про такое не слышал.
Про коррупции и отмывы не поверю: любому государству выгоднее предотвращать или давить в зародыше любую чрезвычайную ситуацию. А на местах это целый нацпроект, который пахнет деньгами куда нужно.
UPD: #comment_300516925
Ждем массовых внедрений. Ну и подобное на прочие катаклизмы и беспорядки
На днях заметил, что в неотапливаемой пристройке к дому кто-то обгрыз хранящиеся там яблоки, а с кастрюли с супом пытался крышку сдвинуть..
Положил я на пол кусочек собачьего корма - утром он исчез, а яблоки остались нетронутыми. На следующий день всё повторилось.
Поставил я вчера камеру, положил "дань".
Утром увидел вот что:
В видео показываю пример подключения двух IP камер видеонаблюдения по одному кабелю витой пары по PoE.
Вопросы и комментарии приветствуются!
PS. Для тех кто в танке, идём учить матчасть! Дружно читаем статьи про Power over Ethernet на ПедиВикии. Для особо одаренных, обращаем внимание на стандарты PoE 2-pairs! На допуски по вольтажу PSE, PD, силе тока и тд. Потом открываем букварь по кабелю КСВППэТ 0.51, читаем на какие нагрузки он рассчитан. И только потом, в комментариях пишем можно или нельзя по 4х парноному кабелю подключать две камеры! И желательно в своей речи не использовать мат, это вас не красит!
Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.
https://habr.com/ru/articles/783352/ - Оригинал
Камеры видеонаблюдения стали для многих стран обыденностью, например в Китае, они могут свисать гроздьями, через каждые 5 метров, по улице. Но в провинции России это все еще может быть в новинку. Я отношусь к видеонаблюдению по большей мере положительно. Ведь вид камеры, даже превентивно может предотвратить хулиганство (однажды я использовал муляжи камер в офисе:)), а главное это возможность контролировать объект наблюдения.
Этот пост про монтаж уличной камеры, на стену многоквартирного дома и программную реализацию - вывод изображения, без использования стандартной программы, оптимизацию, для размещения на raspberry pi.
Коробка
Внутри помещения, я уже успешно использовал камеры фирмы vstarcam, по этому, лояльное отношение, подтолкнуло сделать заказ на али vstarcam CS64. Забегая вперед скажу, что это не лучший выбор - мыльная картинка, как будто нет даже заявленных 3 МегаПикселей.
План таков: повесить на внешнюю стену электрическую распределительную коробку, внутрь нее поместить блок питания, на крышку прикрепить камеру. Сигнал передается по wi-fi, питание - провести кабель через раму окна.
Примерный бюджет: ip-камера 3500р., коробка 600р., винтики-гаечки (продаются в леруа на развес) 5р., кабель/вилка/клеммы 200р.
Порядок работ:
Блок питания закинут в коробку(не стал его там крепить), отрезан кабель питания. На клеммы прикрутил новый кусок кабеля(брал его с запасом, но в итоге понадобилась только половина), кабель вывел из коробки;
В крышке коробки(она съемная), просверлил 4 отверстия и закрепил на ней камеру болтами с гайками;
Вылез из окна во внешний мир и под окном просверлил отверстия в стене, вбил дюпеля. Прикрутил открытую коробку, из которой, пока что, болтается моток кабеля.
Взял крышку с камерой, продел и подключил внутрь коробки кабеля(питание и не нужный lan), закрыл крышку, таким образом смонтировав камеру.
Просверлил в пластиковой раме окна отверстие наружу и всунул в него кабель питания, положил кабель канал, обрезал кабель до нужной длины и прикрутил вилку. Получилось довольно сурово, но это и к лучшему :)
Улица
Мотивом для дальнейшей части повествование было желание поделится с соседями видом со стены, ну и желание разобраться как захватывать видеопоток. Не было желания объяснять старшему поколению, как работает стандартное приложение eye4, по этому я решил реализовать веб страничку. Деплой будет на, уже обитавшую для домашних проектов, raspberry pi 4 4Gb.
В спецификации камеры было указано что она умеет в rtsp, его и выбрал. ip адрес камеры было просто вычислить в настройках маршрутизатора и задать его статичным. Предварительно надо было получить ссылку на видеопоток - а его нет! Я аж вспомнил nmap, а то мало ли с портом промахнулся. В документации нет ни слова, оказывается, в отличии от предыдущих моделей, в программе eye4, зайдя в настройки камеры надо включить опцию "незащищенный пароль". И как то напахнуло старыми китайскими девайсами, с непонятными настройками.
eye4
Итоговая ссылка rtsp://admin:password@192.168.0.119:10554/tcp/av0_0
Можно проверить ее подключившись например vlc
Пароль задавался в фирменной утилите.
Программная часть будет использовать python (не судите строго, только год приручаю питона:)). Веб фреймворк Flask был выбран из-за простоты (для одностраничника больше и не надо); Для оптимизации, захват и генерацию кадров было решено разделить на разные процессы, с помощью multiprocessing (в надежде, что это поможет хилому rpi); Для захвата кадров видеопотока и их кодирования, оказалось лучшим вариантом будет использование библиотеки OpenCV.
Непосредственно код:
Файл скрипта на питоне webstreaming.py: (См. Оригинал)
Файл шаблона templates/index.html: (См. Оригинал)
Шаблон, состоит из нескольких тегов хтмл и думаю в объяснении не нуждается, по скрипту пройдемся более детально.
Здесь фласк приложение, при открытие страницы клиентом, обращается к генератору кадров, который выбирает изображение, постоянно создаваемое в отдельном процессе, захватывая видеопоток камеры.
Кеширование реализовано с помощью глобальной переменной last_frame, которая для обмена между процессами представляет из себя manager(данные внутри обернуты в list, так как это условие его использования). Это позволяет не генерировать для каждого нового клиента уникальные данные, они смотрят одни и те же картинки, не увеличивая нагрузку.
Сначала запускается процесс p, это позволит параллельно создавать кадры, не нагружая основной процесс.
Далее запускается фласк приложение app.run. Блок try, я добавил для того что бы нормально обработать ctrl-c в терминале. По его завершению, происходят методы завершения созданного процесса.
Функция создания кадра cache_frames. Именно в ней происходит основная нагрузка, которую надо оптимизировать, для маломощного одноплатника. Будем резать качество! Если у Вас будет довольно мощный сервер, вероятно не стоит повторять все советы(оставив хотя бы нормальное разрешение). Для начала я пробовал снижать частоту кадров, это приводило к появлению старых кадров и очевидному замедлению воспроизведения. Обнулить буфер камеры в VideoCapture можно только вытащив из него все кадры. Запускать cap.grab() в цикле это действенный механизм, но это приводит к недопустимой для меня нагрузке. В моей камере есть второй поток с более низким разрешением, это позволило снизить разрешение без cv2.resize, что существенно уменьшило нагрузку, позволив оставить штатную частоту кадров камеры. Все эти моменты могут различаться в разных моделях камер. Давайте пройдемся по строкам главной функции. Сначала мы открываем видеопоток(cap) и узнаем какой у него fps. Далее идет цикл в котором мы читаем кадр(cap.read). Закомментирована строка с изменением размера, так как удалось это сделать на стороне камеры. Далее происходит кодирование в jpeg, с уменьшением качества(imencode). По итогу мы преобразуем массив в необработанную строку байтов, так как именно такой результирующий вид требуется, и размещаем в наш кеш last_frame. Цикл каждый раз засыпает, что бы снизить нагрузку, интервал чуть выше фпс, что бы вычитывать все кадры из буфера камеры. По выходу из цикла ресурсы видеопотока будут освобождены(release).
Функция generate, при подключении клиента, генерирует хттп mjpeg ответ изображения с кадрами из кеша, который будет отображаться в браузере.
Вы можете заметить, что здесь нет работы над стабильностью. Например если соединение с камерой пропадет на время, скрипт просто сломается и такие ситуации надо обрабатывать.
Так же стоит провести работу по адаптации для нормального wsgi сервера. Это сделано, что бы не раздувать текущий текст и на своем гитхабе я постараюсь выложить доработанную версию.
Перекинув файлы на распберри пай и запустив их, нагрузка составила:
Я посчитал, что чуть более 20% использования cpu(BCM2711), хороший результат, не стеснит остальные проекты.
Осталось только пробросить порт на маршрутизаторе и можно делиться видео наблюдениями. Соседи рады, я рад :-)
Этот текст я написал, так как увидел скудность ру доков по rtsp+python. Возможно кого то это мотивирует на эксперименты с наблюдением и обработкой видеозахвата:) Всем удачи!