Как подключить камеру к 1с
Цифровые видеокамеры, которые передают видеопоток по сети Ethernet, становятся все более распространенными и востребованными. Из этой статьи можно узнать, как подключить к компьютеру и роутеру IP-камеру, какие существуют особенности подключения одного и нескольких аппаратов.
Пошаговая инструкция подключения IP-камеры к компьютеру и роутеру
Чтобы подключить любую IP-камеру к компьютеру, понадобится Ethernet-кабель (витая пара). Учитывая, что для всех устройств данного типа характерно наличие собственного адреса, перед настройкой стоит узнать его. Сделать это можно путем использования специализированного «софта», который практически всегда идет вместе с оригинальным устройством, либо же программу можно установить с официального сайта производителя.
Узнаем IP-адрес сети и камеры
Нередко IP-адрес устройства можно найти при прочтении инструкции либо же на самой коробке или наклейках на последней.
Когда нам уже становится известным IP-адрес устройства, делаем подсети идентичными для него и локальной сети ПК. Исходя из текста выше, понимаем, что необходимо узнать и IP локальной сети. Для этого следуем по такому пути:
- Заходим в центр управления сетями и общим доступом.
- Напротив строки «Подключение» нажимаем на сеть.
- Выбираем вкладку «Сведения».
- В списке находим строку «Адрес IPv4» и копируем цифровое значение напротив.
Для смены IP-адреса можно использовать те же программы, с помощью которых мы и узнавали его на камере. После смены адреса изображения, получаемые с помощью устройства, станут доступны уже по новомуIP.
Для смены IP-адреса можно использовать те же программы, с помощью которых мы и узнавали его на камере. После смены адреса изображения, получаемые с помощью устройства, станут доступны уже по новомуIP.
Подробнее о IP-адресе устройства и компьютера - читать тут .
Изменение IP-адреса локальной сети
Чтобы сделать интерфейс камеры доступным для пользователя, можно пойти и другим путем – через изменение IP-адреса локальной сети. Пользуясь данным видом настройки, мы добиваемся того, чтобы устройства работали в одной подсети.
Например: адрес камеры – ххх.ххх.1.33, локальной сети – ххх.ххх.88.44, при этом первые шесть значений – одинаковы для обоих средств, а наша цель – изменить подсеть, которая отображается в этом случае цифровыми значениями 1 либо 88. Для произведения операции действуем соответственно инструкции:
- Заходим в центр управления сетями и общим доступом.
- Напротив строки «Подключение» нажимаем на сеть.
- Переходим в свойства беспроводной сети.
- Прокручиваем список вниз и находим строку «Протокол Интернета версии 4 (TCP/IPv4)», двойным кликом открываем свойства последнего.
- Ставим отметку напротив строки «Использовать следующий IP-адрес».
- Мы получили доступ к 3-м полям, в первое из которых вписываем IP-адрес нашей локальной сети, но уже заменив значение подсети на 1 (такое, как у камеры), а в последнюю строку под названием «Основной шлюз» вбиваем полное значение адреса камеры. Перед тем как выйти из настроек, не забывайте сохранить изменения.
- Заходим в браузер, открываем новое окно и в поисковую строку копируем IP-адрес камеры. Если все настройки, произведенные ранее, были сделаны правильно, открывается окно, в котором есть 2 поля для введения логина и пароля соответственно. Данные, которые должны заполнить эти 2 строки, берутся из инструкции либо наклейки на коробке из-под устройства.
- Нажимаем клавишу «Enter» и получаем возможность просматривать видеозаписи устройства. Кроме того, только после этих действий пользователю откроются настройки самой камеры.
Настройка камеры для получения изображения
Кроме приведения в соответствие IP-адресов в настройках компьютера, это необходимо сделать и в веб-интерфейсе устройства для записи изображения. Чаще всего настройку можно произвести во вкладке «Network». В этот раз нужно будет поменять подсеть камеры на одноименное цифровое значение локальной сети, после чего ставим галочку напротив поля «Фиксированный IP-адрес».
- IP-адрес.
- Маску подсети (стандартное значение – 255.255.255.0).
- Шлюз, который будет соответствовать адресу локальной сети с измененной подсетью.
- DNSIP-адрес – в это поле копируем цифровое значение из предыдущего.
Если же Вас не интересует через Интернет, ставим галочку в поле «Dynamic IP (DCHP)».
Назначаем камере порт. Чаще всего это порт 80. В случаях, если у камеры не было никаких настроек, назначаем одноименное значение, но уже вручную. Для первой камеры назначаем порт 8081 и, если Вы используете не одно устройство видеозаписи, для него измените значение последней цифры на 2 (номер порта будет 8082).
После можем сохранить настройки, отсоединить кабель устройства от ПК и вставить его в свободный порт роутера, а все произведенные ранее настройки IP-адреса в локальной сети сбрасываем на автоматические. Далее подключаем с помощью соответствующего кабеля роутер к сетевой карте компьютера.
Настройка роутера
Для успешной настройки роутера нам нужно:
- Подключить все настроенные камеры к маршрутизатору посредством сетевых LAN-портов либо же с помощью Wi-Fi.
- Подключить устройство к ПК с помощью сетевого кабеля.
- Зайти в веб-интерфейс роутера, где мы займемся проброской портов, для того чтобы роутер различал их и камеры соответственно, подавая в ответ на обращение к нему нужное изображение.
Строки, которые требуют заполнения, обычно можно найти во вкладке «Виртуальный сервер». Перед заполнением всех подпунктов ставим галочку напротив строки «Включить виртуальный сервер?» в поле «Yes (Да)». Дальнейшие настройки зависят от модели роутера и могут включать такие пункты:
Строки, которые требуют заполнения, обычно можно найти во вкладке «Виртуальный сервер». Перед заполнением всех подпунктов ставим галочку напротив строки «Включить виртуальный сервер?» в поле «Yes (Да)». Дальнейшие настройки зависят от модели роутера и могут включать такие пункты:
- «Имя службы» – любое значение, к примеру, «Камера1»;
- «Диапазон портов» – должен отвечать порту, который был присвоен ранее первому устройству для видеозаписи;
- «Локальный IP-адрес» – отвечает адресу камеры;
- «Локальный порт» – вставляем сюда значение со второго пункта либо 80, если для Вашей камеры недоступна ручная настройка порта;
- «Протокол» – в этом поле обязательно указываем TCP, так как именно с этим протоколом работают IP-камеры;
- «Номер протокола» – можно написать любую цифру.
Данные пункты прописываем вручную для каждой камеры, не забывая изменять значения в соответствующих строках.
Подключение IP-камеры к сети Wi-Fi с помощью компьютера
Займемся настройкой Wi-Fi и камеры. Для этого:
- Устанавливаем утилиту, которая идет вместе с оригинальным устройством, либо же скачиваем софт из Интернета (к примеру – программа «VSTARCAM» для соответствующей марки камер).
- Подключаем IP-камеру к маршрутизатору, используя кабель RJ-45.
- Открываем ранее установленную программу двойным кликом и переходим в настройки камеры.
- Выбираем «Поиск сигнала», в открывшемся списке находим маршрутизатор и нажимаем «Установить».
- Вводим пароль роутера для входа в сеть Wi-Fi, нажимаем «OK».
- Может появиться окошко с ошибкой, но не стоит переживать. Чтобы решить проблему, делаем повторный поиск, проверяем состояние сетевого кабеля, его подключение к камере и роутеру.
- Если настройка произведена правильно, камера перезагружается, после чего можно отключать кабель, а IP-камера будет работать по беспроводной сети.
Настройка Wi-Fi при помощи мобильного устройства
Настройку можно проводить с любого смартфона (операционная система не играет большой роли) либо планшета. Для этого:
- Повторяем 4 первых пункта из предыдущего списка.
- Устанавливаем приложение на мобильное устройство – CSCAM, EYE
- Открываем утилиту, попадаем в «Настройки камеры».
- Переходим в «Настройки Wi-Fi» и выбираем нужную нам сеть.
- Вводим пароль маршрутизатора для входа в сеть.
Дополнительное оборудование
При подключении IP-камеры с использованием компьютера либо роутера дополнительного оборудования не понадобиться.
Если человек захочет подключить камеры не только к ПК и маршрутизатору, но и к телефону, ему могут понадобиться дополнительные программы (в зависимости от программного обеспечения мобильного устройства – Apple, Android, WindowsPhone – требуются различные утилиты для их настройки – tiniCamMonitor, DIGMASmartCam).
Особенности подключения и настройки одной и нескольких IP-камер
Среди наиболее значимых особенностей следует отметить:
- При подключении нескольких камер к компьютеру обязательно нужен маршрутизатор.
- Настройка одной камеры включает изменение только значения подсети в IP-адресе, а при введении в поля настройки роутера стоит помнить, что и последние цифры будут различными у каждого устройства видеозаписи.
- Необходимость настройки порта, значения которого должны быть разными для каждой камеры (если есть возможность ручной настройки портов).
Статический IP-адрес: для чего он нужен?
Для видеонаблюдения не со стационарной точки, а из разных мест понадобиться статический IP-адрес, который можно получить при составлении дополнительного договора с провайдером. Настройка и подключение камеры к компьютеру при этом не меняются.
Проверка работоспособности
Если настройка была произведена правильно, на экране появиться изображение с камеры.
Возможные сложности и ошибки
Учитывая, что путь подключения не такой уж сложный, а вот настройки – долгий и тернистый, могут встречаться ошибки на разных этапах введения необходимых данных в соответствующие поля.
Кроме того, для каждого роутера и IP-камеры могут быть разными поля настройки, что может создать некоторые затруднения при работе.
Также не забывайте, что скачивание утилит из неподтвержденных источников в сети Интернет может привести к заражению компьютера вирусами, потере производительности, утрате ценных данных и другим негативным последствиям.
При подключении к персональному компьютеру или роутеру и настройке IP-камеры главное – понимать, что самостоятельно сделать такую работу можно только при четком соблюдении всех пунктов и заниматься этим следует без лишней спешки, проверяя все введенные поля для одной либо нескольких камер, чтобы обеспечить их нормальную работу.
Недавно на Geektimes была опубликована статья про домашнее видеонаблюдение — «Домашнее видеонаблюдение». Автор её так и не смог настроить просмотр камер через web-интерфейс. Решил поделиться своим опытом в этом деле. Далее собственно статья с картинками о том, как это легко и быстро настроить у себя. Также вспомнил, что у меня были вопросы по ходу настройки, в связи с этим решил более подробно расписать весь процесс настройки. Внимание, много картинок.
Чтобы свою систему не ломать переустановкой, сделал всё на виртуалке, с самого начала.
— Компьютер с Win7 или выше;
— Софт – упомянутый в предыдущей статье Securos Lite (скачивается на сайте производителя) и модуль WebView. И если первое легко скачивает на сайте производителя, то вот ссылку на второе я уже и не помню как искал;
— Камера. Здесь, конечно, каждый сам должен выбирать исходя из качества изображения/цены/целей и т.д. Общие рекомендации: если на камере есть наклейка Onvif, скорее всего она заведется в любом софте. Если в описании камеры на сайте, в документации, либо на форуме написано, как завести её в VLC, то видео с такой камеры с вероятностью 99% так же сможете получить, по крайней мере в Секуросе есть механизм получения видеоизображения с любой камеры, которые показываются в VLC. Разница в HDReady и FullHD прилично влияет на архив, но если пару десятков гигов есть свободных, то лучше брать FullHD.
Настраиваем камеру
Заходим на веб-интерфейс камеры, задаем сетевые настройки (если у вас дома роутер), логин/пароль, проверяем, что она показывает в этом самом интерфейсе.
Ставим софт
Ничего сложного тут нет. Сперва запускаем первый инсталлятор. Несколько раз прощёлкиваем «Далее» и всё, программа установлена. В установке и удалении программ так же появился Postgres. Запускаем второй инсталлятор (вроде можно и потом его доставить), опять пару раз «Далее», видно, как ставится Java и сервер TomCat. Установку Томката также прощелкиваем.
Первый запуск
Замечу, что тех. поддержка заявила, что это уже поправлено в готовящейся к выпуску следующей версии 8.7. Там вручную ничего делать не надо будет, даже если включён UAC.
После запуска появляется Мастер первоначальной настройки:
В принципе, тоже его быстро прощёлкиваем. Самое главное там – это выбрать диск куда будет архив писаться, главное на SSD не указать его. Там же есть страница, где можно вручную добавить камеры, но в ней нет автопоиска, да и потом можно будет вызвать более удобный инструмент добавления камер. Так что пропустим его. Ещё одна особенность: можно сразу добавить удаленный клиент, например, свой рабочий комп. Про это я подробнее ниже напишу, сейчас это можно пропустить. В общем прощёлкиваем до конца, жмем Завершить, и появляется пустой (так как мы не добавляли камер) Монитор.
Здесь сразу сделаю отступление: как я понял, в Секуроса есть 2 встроенных средств работы с камерами. Они называются Монитор и МедиаКлиент. Как я понимаю, старый и новый. Старый функциональнее (кнопок там ненужных нам больше), второй красивее, удобнее, и с рабочего компьютера, почему-то в несколько раз меньше CPU есть (2% вместо 8%). В общем, рекомендую сразу заменить созданный по умолчанию Монитор на МедиаКлиент. Для этого вызовем дерево с объектами (правый клик по иконке в трее, показать панель, на ней нажимаем шестеренку).
В нем удаляем «Монитор», встаём на «Рабочий стол», нажимает создать, выбираем «Медиа Клиент».
Заводим камеру
На панели находим и нажимаем кнопку «Менеджер IP-устройств». Появляется окно этого менеджера. В нижней половине есть кнопка искать. Мой Beward он нашел сам. Единственное, я сразу вручную исправил модель с default на BDSeries. Если камера не нашлась, то можно вручную попытаться настроить, на скриншоте вот я выбрал ONVIF (половина камер сейчас его поддерживает, даже если на коробке с камерой нет такого слова, то в первую очередь рекомендую попробовать настроить как ONVIF). Нажимаем «Добавить», в верхней части водим логин/пароль, нажимаем «Применить», закрываем менеджер. Камера сразу показывается в медиаклиенте.
Включаем запись архива
Здесь сразу лучше проверить, что она пишет архив (поставить на запись в медиаклиенте, снять через несколько минут, зайти в архив). Если на кнопке «Запись» появился тревожный треугольник, то всё плохо, архив не пишется. По личному опыту знаю, что обычно такая проблема возникает, когда на диске мало места. Как в итоге оказалось, у меня проблема возникла по тому, что под архив я выделил диск всего на 20 гигов. А так как ставим мы всё-таки бесплатную версию коммерческого продукта, то видимо и настройки по умолчанию там для серьёзных систем. Поиск по инету, поиск настроек в реестре и даже небольшой разговор с тех. поддержкой дал найти нужные настройки. В 32-битной винде это ветка HKEY_LOCAL_MACHINE\SOFTWARE\ISS\Xpress\Niss400\Video (на 64-х битной системе: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ISS\Xpress\Niss400\Video). Я выставил параметры так: MinDelMB – 1700, FreeMB – 1350.
Далее для экономии места на диске (чтобы больше была история хранилась) лучше запись сразу отключить и подумать, как вообще будет удобнее ставить камеру на «охрану» (режим, когда архив пишется только при наличии движения на изображении). Я сперва настроил временную зону (под объектом SecurOS Lite) и две Макрокоманды, которые автоматически ставили камеру на охрану утром, и снимали с охраны вечером. Ниже пример настройки одной из макрокоманд.
Но в итоге, так как я ухожу/прихожу из дома в разное время, мне удобнее оказалось управлять записью вручную с работы, т.е. приехал на работу, поставил на «охрану», приехал домой – «снял с охраны».
Настройка Веб-Сервиса
Подошли к самому интересному. В дереве объектов создаём объект WebView Сервер, у него в настройках добавляем нашу камеру. Далее под ним создаём объект WebView Монитор. В его настройках выбираем нашу камеру (Просто нажать кнопку «Все»).
Последние шаги
Для авторизации через веб-интерфейс нельзя использовать аккаунт супер-пользователя Секуроса (написано из-за небезопасности передачи пароля). Поэтому чтобы работать дальше надо вручную создать пользователя. Опять открываем дерево объектов, выделяем объект SecurOS Lite, нажимаем Создать, выбираем в меню Отдел. Под ним тут же создаём пользователя. Название лучше сразу написать что-то адекватное, я, например, задал webview. Далее переходим в дереве на Права пользователей -> Права опытных пользователей, и в окне настройки в блоке пользователи выбираем нашего пользователя, и задаём ему пароль.
Переходим обратно в браузер, вводим webview/password, жмем Continue. Появляется страница выбора мониторов. У нас он один, выбираем его. Если браузер InternetExplorer, то предложится ActiveX поставиться. Лучше поставить, после его установки, резко снижается нагрузка на сеть (как я понимаю, гонится по сетке поток H.264). В общем сейчас можно зайти на этот web-интерфейс с любого браузера, (в том числе с мобильного) и смотреть видео, смотреть архив, который по детектору движения пишется. Чтобы ставить камеры на охрану/снимать с охраны я использовал выше упомянутые макросы. Единственный недостаток – если использовать мобильный трафик, то большой расход получится, в первом отпуске, помню, смотрел камеру только в отеле через WiFi. Кстати, этот сервер тоже умеет отдать сжатое видео (которое мало трафика потребляет, как через ActiveX в IE) по rtsp. Если кто по-продвинутей и знает, как в VLC добавлять rtsp ссылки, то всё будет работать, в том числе на смартфонах. Но это, конечно вариант только для просмотра живого видео, без архива, и без управления камерой.
Что-же получилось в итоге
Написано много, но в первый раз я запустил всё быстрее, когда ставил на реальную систему (у меня не возникло проблем с записью из-за виртуалки, да и других не было), помню осталось только приятное воспоминание, как быстро всё заработало.
И теперь опишу как это у меня сейчас работает. Мне для работы со всем этим гораздо удобнее оказался использовать клиент для виндоуз. Сделал я следующее:
— дома настроил доступ на работу через OpenVPN (на самом деле он у меня уже был). Для тех, у кого в компании нет такого, можно использовать VPN через TeamViewer. Также уверен, что можно легко и через интернет настроить, но там уже небольшие хаки нужны (либо статический ip, либо no-ip использовать ). Если будут проблемы обращайтесь в личку, постараюсь помочь;
— дома в Секуросе создал ещё один компьютер типа «Рабочее место оператора». Под ним создал Медиа Клиент. Пробовал и старый Монитор, но разница очень большая между ними. Медиа Клиент на порядок меньше грузит процессор, приятнее и удобнее;
— на работе поставил Секурос, в режиме «рабочее место оператора». Из того-же дистрибутива, только сейчас уже не прощёлкиваем быстро страницы, а находим страницу, где он спрашивает тип установки, в комбо-боксе выбираем, что это Рабочее место оператора;
— далее запускаем Секурос, вводим IP или имя (если это имя резолвится), нажимаем подсоединиться. Логин можно всё тот-же: webview. Возникает окно Медиа Клиента. Единственное, что плохо, настроить его можно только с домашнего компьютера. Т.е. я его сначала на весь экран сделал, было неудобно. Пришлось подключаться на домашний комп по TeamViewer’у и настраивать, где и как должен Медиа Клиент показываться.
Алгоритм работы у меня сейчас такой. Прихожу на работу, в Медиа Клиенте нажимаю кнопку «поставить на охрану», перед уходом с работы (или уже дома) нажимаю снять с охраны. Быстренько на 4x/8x/16x просматриваю, не было ли чего подозрительного.
Как итог
Настроить веб-интерфейс можно, это не сложно, если пол вечера не жалко, то всё получится. Если что-то не получится самому, то тех. поддержка помогает, что на самом деле удивительно для бесплатного продукта, видимо забота о бренде. Из приятного уже сейчас множество дополнительных плюшек (в том числе и нотификации, слежение за работоспособностью, работа со звуком (надо к камере подключить микрофон, и тогда при выборе камеры в Медиа Клиенте с неё ещё и звук идёт) и множество того, что я не использую, ибо даже не представляю зачем они мне нужны (это как с Фотошопом – использую только 5-10 процентов его функционала). Радует, что тех. поддержка обещает появления множества новых плюшек, которые могут лично мне понадобиться: всё-таки нативный клиент под Андроид (так как иногда всё-таки хочется поглядеть на телефоне, сейчас через мобильный браузер не самый удобный вариант), переработанный веб-интерфейс, управление потоком, который в сеть отдавать (как я понял, с камеры будут браться 2 картинки, одна будет писаться в архив, а второй с меньшим разрешением транслироваться через веб-сервер (это как я понял уже и сейчас можно сделать и с Монитором и с Медиа Клиентом).
Updated: Разобрался в новой версией софта с таким понятием как «мульти-поточность».
Мульти-поточность — это возможность забирать одновременно 2 и более картинки с камеры, разного разрешения и/или уровня сжатия, и потом возможность управлять что с этими потоками делать. Т.е. для записи в архив можно сохранять картинку в хорошем качестве (например, FullHD), а через сеть можно посылать видео, скажем среднего разрешения.
Пришлось камеру понастраивать и софт немного. Зато теперь ещё быстрее стало видео, на 3g — без тормозов и лагов. Если кому интересно, и не получилось настроить самому, пишите в личку, постараюсь всё подробно объяснить в скриншотах, какие настройки надо делать на самой камере через веб-интрерфейс, и какие в софте.
Наверное, ни для кого не секрет, что в последнее время облачные сервисы видеонаблюдения набирают популярность. И понятно почему так происходит, видео — это "тяжелый" контент, для хранения которого необходима инфраструктура и большие объемы дискового хранилища. Использование локальной системы видеонаблюдения требует средств на эксплуатацию и поддержку, как в случае организации, использующей сотни камер наблюдения, так и в случае индивидуального пользователя с несколькими камерами.
Облачные системы видеонаблюдения решают эту задачу — предоставляя клиентам уже существующую инфраструктуру хранения и обработки видео. Клиенту облачного видеонаблюдения достаточно просто подключить камеру к интернету и привязать к своему аккаунту в облаке.
Есть несколько технологических способов подключения камер к облаку. Бесспорно, наиболее удобный и дешевый способ — камера напрямую подключается и работает с облаком, без участия дополнительного оборудования типа сервера или регистратора.
Для этого необходимо, чтобы на камере был установлен модуль ПО работающий с облаком. Однако, если говорить про дешевые камеры, то у них очень ограничены аппаратные ресурсы, которые почти на 100% занимает родная прошивка вендора камеры, а ресурсов необходимых для облачного плагина — нет. Этой проблеме разработчики из ivideon посвятили статью, в которой говорится почему они не могут установить плагин на дешевые камеры. Как итог, минимальная цена камеры — 5000р ($80 долларов) и миллионы потраченных денег на оборудование.
Мы эту проблему успешно решили. Если интересно как — велком под кат
В 2016 году мы стартовали разработку платформы облачного видеонаблюдения для Ростелекома.
В части ПО камер на первом этапе пошли "стандартным" для таких задач путем: разработали свой плагин, который устанавливается в штатную прошивку камеры вендора и работает с нашим облаком. Однако, стоит отметить, что при проектировании мы использовали наиболее легковесные и эффективные решения (например, plain C реализацию protobuf, libev, mbedtls и полностью отказались от удобных, но тяжелых библиотек типа boost)
Сейчас на рынке IP камер нет универсальных решений по интеграции: у каждого вендора свой способ установки плагина, свой набор API для работы прошивки и уникальный механизм обновления.
Это означает, что для каждого вендора камер необходимо индивидуально разрабатывать объемный слой интеграционного ПО. И на момент старта разработки целесообразно работать только с 1-ним вендором, что бы сосредоточить усилия команды на разработке логики работы с облаком.
Первым вендором был выбран Hikvision — один из мировых лидеров на рынке камер, предоставляющий хорошо документированное API и грамотную инженерную техническую поддержку.
На камерах Hikvision мы и запустили наш первый пилотный проект облачное видеонаблюдение Видеокомфорт.
Практически сразу после запуска наши пользователи стали задавать вопросы о возможности подключении к сервису более дешевых камер других производителей.
Вариант с реализацией слоя интеграции под каждого вендора я отбросил практически сразу — как плохо масштабируемый и предъявляющий к железу камеры серьезные технические требования. Стоимость камеры, удовлетворяющий таким требованиям на входе: ~60-70$
Поэтому, я принял решение копать глубже — сделать полностью свою прошивку для камер любых вендоров. Этот подход существенно снижает требования к аппаратным ресурсам камеры — т.к. слой работы с облаком на порядок более эффективно интегрирован с video application, и в прошивке нет лишнего не используемого жирка.
И что важно, при работе с камерой на низком уровне есть возможность использовать аппаратный AES, который шифрует данные, не создавая дополнительной нагрузки на маломощный CPU.
В тот момент у нас не было вообще ничего. Вообще ничего.
Практически все вендоры не были готовы работать с нами на таком низком уровне. Информации о схемотехнике и компонентах — нет, официальных SDK чипсетов и документации сенсоров — нет.
Технической поддержки так же нет.
Ответы на все вопросы приходилось получать реверс инжинирингом — методом проб и ошибок. Но мы справились.
Первыми моделями камер, на которых мы набивали шишки стали камеры Xiaomi Yi Ants, Hikvision, Dahua, Spezvision, D-Link и несколько сверх дешевых безымянных китайских камер.
Камеры на чипсете Hisilicon 3518E. Аппаратные характеристики камер такие:
Xiaomi Yi Ants | Noname | |
---|---|---|
SoC | Hisilicon 3518E | Hisilicon 3518E |
RAM | 64MB | 64MB |
FLASH | 16MB | 8MB |
WiFi | mt7601/bcm43143 | - |
Sensor | ov9732 (720p) | ov9712 (720p) |
Ethernet | - | + |
MicroSD | + | + |
Microphone | + | + |
Speaker | + | + |
IRLed | + | + |
IRCut | + | + |
С них мы начинали.
Сейчас поддерживаем чипсеты Hisilicon 3516/3518, а так же Ambarella S2L/S2LM. Количество моделей камер — десятки.
uboot
uboot — это начальный загрузчик, после включения питания загружается первым, инициализирует оборудование и загружает ядро linux.
Скрипт загрузки камеры достаточно тривиален:
Из особенностей — два раза вызывается bootm , подробнее об этом чуть позже, когда дойдем до подсистемы обновления.
Обратите внимание на строчку mem=38M . Да, да, это не опечатка — ядру Linux и всем-всем-всем приложениям доступно всего лишь 38 мегабайт оперативной памяти.
Так же рядом с uboot находится специальный блок, называемый reg_info , в котором находится низкоуровневый скрипт инициализации DDR и ряда системных регистров SoC. Содержимое reg_info зависит от модели камеры, и если оно будет не корректным, то камера даже не сможет загрузить uboot, а зависнет на самом раннем этапе загрузки.
Первое время, когда мы работали без поддержки вендоров, мы просто копировали этот блок из оригинальной прошивки камеры.
Ядро linux и rootfs
На камерах используется ядро Linux, входящее в состав SDK чипа, обычно это не самые свежие ядра из ветки 3.x, поэтому часто приходится сталкиваться с тем, что драйвера дополнительного оборудования не совместимы с используемым ядром, и нам приходится их бэк-портировать под ядро камеры.
Другая проблема — это размер ядра. Когда размер FLASH всего 8MB, то каждый байт на счет и наша задача — аккуратно отключить все не используемые функции ядра, что бы сократить размер до минимума.
Rootfs — это базовая файловая система. В нее включены busybox , драйвера wifi модуля, набор стандартных системных библиотек, типа libld и libc , а так же ПО нашей разработки, отвечающее за логику управления светодиодами, управление сетевыми подключениями и за обновление прошивки.
Корневая файловая система подключена к ядру как initramfs и в результате сборки мы получаем один файл uImage , в котором есть и ядро и rootfs.
Video application
Наиболее сложная и ресурсоемкая часть прошивки — приложение, которое обеспечивает видео-аудио захват, кодирование видео, настраивает параметры картинки, реализует видео-аналитики, например, детекторы движения или звука, управляет PTZ и отвечает за переключения дневного и ночного режимов.
Важная, я бы даже сказал ключевая особенность — каким образом видео приложение взаимодействует с облачным плагином.
В традиционных решениях 'прошивка вендора + облачный плагин', которые не могут работать на дешевом железе, видео внутри камеры передается по протоколу RTSP — а это огромный оверхед: копирование и передача данных через socket, лишние syscall-ы.
Мы в этом месте используем механизм shared memory — видео не копируется и не пересылается через socket между компонентами ПО камеры, тем самым оптимально и бережно используя скромные аппаратные возможности камеры.
Подсистема обновления
Предмет отдельной гордости — подсистема fault-tolerant онлайн обновления прошивки.
Поясню проблематику. Обновление прошивки — это технически не атомарная операция и в случае если посередине обновления произойдет сбой питания, то на флеш памяти будет часть "недозаписанной" новой прошивки. Если не предпринять специальных мер, то камера после этого станет "кирпичом", который нужно нести в сервисный центр.
Мы справились и с этой проблемой. Даже если камеру выключить в момент обновления, она автоматически и без участия пользователя скачает прошивку из облака и восстановит работу.
Разберем технику подробнее:
Наиболее уязвимый момент — перезапись раздела с ядром Linux и корневой файловой системой. В случае, если один из этих компонентов окажется поврежденным, то камера вообще не загрузиться дальше начального загрузчика uboot, который не умеет скачивать прошивку из облака.
Значит, нам нужно обеспечить гарантию наличия на камере работоспособного ядра и rootfs в любой момент процесса обновления. Казалось бы самым простым решением было бы постоянно хранить на флеш памяти две копии ядра с rootfs и в случае повреждения основного ядра загружать его из резервной копии.
Годное решение — однако, ядро с rootfs занимает около 3.5MB и для постоянной резервной копии нужно выделить 3.5MB. На самых дешевых камерах просто нет столько свободного места под backup ядра.
Поэтому для backup ядра во время обновления прошивки используем application партицию.
А для выбора нужной партиции с ядром как раз и используется две команды bootm в uboot — в начале пытаемся загрузить основное ядро и если оно повреждено, то резервное.
Это гарантирует, что в любой момент времени на камере будет корректное ядро с rootfs, и она сможет загрузиться и восстановить прошивку.
CI/CD система сборки и деплоя прошивок
Для сборки прошивок мы используем gitlab CI, в котором автоматически собираются прошивки под все поддерживаемые модели камер, после сборки прошивки автоматически деплоятся на сервис обновления ПО камер.
Из сервиса обновления ПО прошивки доставляются на тестовые камеры наших QA, а по завершению всех этапов тестирования и на камеры пользователей.
Информационная безопасность
Ни для кого не секрет, что в наше время информационная безопасность — это важнейший аспект любого IoT устройства, в том числе и камеры. По интернету гуляют ботнеты типа Mirai, поражающие миллионы камер со стандартными прошивками от вендоров. При всем уважении к вендорам камер, не могу не отметить, что в стандартных прошивках заложено много функционала, который не востребован для работы с облаком, однако содержит в себе много уязвимостей, которыми пользуются ботнеты.
Поэтому, весь не используемый функционал в нашей прошивке отключен, все tcp/udp порты закрыты и при обновлении прошивки проверяется цифровая подпись ПО.
И кроме этого, прошивка проходит регулярное тестирование в лаборатории информационной безопасности.
Сейчас наша прошивка активно используется в проектах по видеонаблюдению. Пожалуй самый масштабный из них — трансляция голосования в день выборов Президента Российской Федерации.
В проекте было задействовано более 70 тысяч камер с нашей прошивкой, которые были установлены по избирательным участкам нашей страны.
Решив ряд сложных, а местами, даже на тот момент практически невозможных задач, мы, конечно, получили огромное удовлетворение как инженеры, но кроме этого, и сэкономили миллионы долларов на закупке камер. И в данном случае, экономия — это не только слова и теоретические расчёты, а результаты уже случившегося тендера на закупку оборудования. Соответственно, если говорить про облачное видеонаблюдение: есть два подхода — стратегически заложиться на низкоуровневую экспертизу и разработку, получив на выходе огромную экономию на оборудовании или использовать дорогое оборудование, которое, если смотреть именно на потребительские характеристики, практически ничем не отличается от аналогичного дешевого.
Почему стратегически важно принять решение относительно выбора подхода к способу интеграции как можно раньше? При разработке плагина, разработчики закладываются на те или иные технологии (библиотеки, протоколы, стандарты). И если выбран набор технологий только под дорогое оборудование, то в дальнейшем попытка перехода на дешевые камеры с большой вероятностью, как минимум, займет безумно большое время или вообще потерпит неудачу и произойдет возврат к дорогому оборудованию.
Иногда появляется необходимость сохранять фото гостя в карточке клиента. Для этого в программе 1С:Отель есть возможность подключения веб-камеры. Важно отметить, что камера должна работать через TWAIN драйвер. Убедитесь в этом перед её покупкой.
Чтобы настроить подключение веб-камеры, необходимо:
1) Обновите конфигурацию 1С:Отеля до последнего релиза.
2) Запустите 1С:Отель от имени администратора и откройте список рабочих мест: Настройка/Рабочие места.
3) В открывшемся окне найдите название рабочего места, соответствующее имени Вашего компьютера, и откройте его настройки двойным нажатием левой кнопки мыши. Здесь необходимо перейти на вкладку «Параметры подключения оборудования» и нажать на кнопку «Установить компоненту TWAIN сканирования». Выйдите из программы и снова зайдите .
4) Зайдите в «Параметры подключения WEB камер», которые также находятся в настройках .
5) В окне добавьте новые параметры, задайте им код и произвольное наименование, и в выпадающем меню пункта «Имя Twain WEB камеры» выберите наименование Вашей веб-камеры.
6) Осталось подключить камеру к рабочему месту. Для этого вновь откройте «Параметры подключения оборудования» Вашего рабочего места и укажите только что созданные параметры работы камеры.
Чтобы сделать снимок клиента, необходимо:
1) Откройте карточку гостя и перейдите на вкладку «Фото и подпись».
2) Нажмите «Получить с WEB камеры» – камера сделает снимок. Не понравилось/не получилось фото – можно нажать ещё раз. После удачного снимка нажмите «Ок».
Данное фото будет прикреплено к клиенту и будет отображаться в окне поиска клиента и непосредственно в его карточке.
Система Линия поддерживает совместную работу с программным обеспечением 1С версий 8.1, 8.2 и 8.3 (в режиме "толстого" клиента).
Для создания меню интеграции необходимо в режиме «1С предприятие» открыть «Меню» -> «Файл» -> «Открыть» и выбрать внешнюю обработку (с расширением EPF) для вашей версии «1С». У пользователя должно быть право на использование внешних обработок.
Ниже приведено общее описание имеющихся возможностей, процедур и функций.
1. Настройки подключения
2. Настройки отображения текста
Опции выводимого текста задаются на закладке «Настройки отображения текста». Задается цвет текста путем выбора желаемого цвета (рядом справочно выводится код цвета в hex-формате), отступ слева, отступ сверху, размер шрифта и количество строк. Количество строк указывает, какое количество строк будет задано в области камеры для выводимого текста.
3. Вывод текста на камеру
Для вывода текста на камеру сначала необходимо запросить список доступных камер посредством нажатия кнопки «Получить список камер». Текст будет добавляться на выбранную из списка камеру.
В поле «Текст для отображения» вводится текст, который должен вывестись на камеру. Кнопка «Отобразить текст» отсылает текст на камеру.
Кнопка «Очистить текст» очищает текст, не удаляя самого OSD-объекта (объект, в котором будет отображаться текст на изображении с камеры).
Возможно получение текущего изображения камеры, путем нажатия на кнопку «Получить изображение». Полученное изображение можно открыть в «1С» или внешним ассоциированным с ним приложением (переключатель «Открыть в 1С», «Внешним приложением»).
4. Вывод изображения на экран через приложение «Наблюдательный пост»
Возможен вывод изображения на экран через установленное приложение «Наблюдательный пост».
Для корректного вывода необходимо указать путь к исполняемому файлу приложения. В параметрах настройки можно указать адрес сервера, порт, логин и пароль (необязательные значения, в случае отсутствия будут использованы значения по умолчанию). В случае использования нескольких камер можно указать индекс камеры (нумерация камер начинается с нуля). Для просмотра архива необходимо указать время начала воспроизведения архива. Также можно указать координаты открытия нового окна приложения.
Добавление события на временную шкалу архива.
Обновленная обработка поддерживает события в архиве. Для того чтобы добавить событие в архив, необходимо указать время начала события и предполагаемое время конца события, его источник, а также его произвольное имя для отображения в списке событий архива.
Читайте также: