Подключение 4Мп IP-камеры Hikvision DS-2CD2742FWD-IZS

31/12/2018 21:31:52

Почти 10 лет в своем доме я использовал преимущественно аналоговое видеонаблюдение. Это просто, недорого и при этом надежно. Но качество картинки по современным представлениям было невысоким, детализации никакой, про разрешение и говорить не стоит. Номер автомобиля, припаркованного рядом с домом, прочитать было в принципе невозможно. Кроме того, уличная камера CNB XCM-21VF все чаще стала показывать вместо изображения синий экран и явно просилась на заслуженный отдых. Я задался вопросом, на что ее поменять.

Обычно я тщательным образом изучаю Интернет: форумы, мнения, сайты производителей, обзоры, рейтинги, тесты. Однако в этот раз я решил поступить иначе и позвонил дяде Васе (это его настоящее имя), у которого на объекте установлена пара сотен различных IP-камер: дорогих, очень дорогих и страшно дорогих. Мне было важно узнать мнение опытного и искушенного в этом деле человека. "Бери хиквижн. Проверено!" - сказал дядя Вася. После пары уточняющих вопросов я понял, что мне достаточно будет "дешевой" 4-мегапиксельной камеры, можно с моторизированным вариообъективом. Мне не нравилось, что прежняя цилиндрическая камера своими выступающими формами несколько портила фасад дома, поэтому эксперт предложил малозаметную "дешевую" купольную Hikvision DS-2CD2742FWD-IZS. "Дешевая" - это в понимании дяди Васи, потому что когда каждый день имеешь дело с PTZ-камерами Axis, то все остальное кажется весьма скромным и бюджетным. Да и сам производитель эту серию позиционирует как "Демократичную". У них так на русскоязычном сайте и написано. Розничная цена из серии изделий для нищебродов на момент написания статьи всего 26990 руб. Я вспомнил, что днем ранее мне в местечковом магазине систем видеонаблюдения предлагали: "Хорошую и качественную камеру за 4 600 руб. Что, дорого? Можно дешевле!" Дядя Вася на это от души посмеялся. Я тоже, но смеялись мы, кажется, по разному поводу и разным смехом.

Hikvision DS-2CD2742FWD-IZS
Купольная IP-камера Hikvision с моторизированным объективом. Демократичная серия

Не стану рассуждать, насколько DS-2CD2742FWD-IZS оптимальный выбор в части бюджета. Между тем, у меня был негативный опыт, связанный с дешевой китайской камерой. Настало время попробовать дорогую китайскую камеру. Помимо этого, было любопытно протестировать моторизированный вариообъектив (оптический зум). Но была одна загвоздка. Hikvision, как и многие другие брендовые производители уличных камер, окрашивают свои камеры в белый цвет. Возможно, это связано с тем, что на солнце такие камеры меньше нагреваются. А мне было нужно, чтобы уличная камера не выделялась на фасаде, была скромной и неприметной. Постоянные читатели, конечно, знают про мои странные и неоднозначные наклонности и поэтому не удивятся тому, что камера была перекрашена...


Думаю, Малевич бы позавидовал

Чтобы как следует покрасить камеру, пришлось ее полностью разобрать. А сделать это было совсем не сложно. Никаких пломб нет, крепежа минимум, термоклей отсутствует, словом, качественный продукт. Прежде чем заняться окрашиванием камеры в радикально-черный цвет, я протестировал несколько недорогих (до 150 руб за балон) аэрозольных эмалей, которые купил в строительном магазине. Лучше всего на уже крашенном металле из протестированных образцов держалась китайская акриловая краска под брендом Veslee - модель VL-P6 9005, предназначенная для подкрашивания металлочерепицы. Но не устроил глянец. Ужасно не к месту. Поэтому пришлось красить камеру матовой алкидной KUDO. Держится плоховато. Думаю, лет через 5-7 облезет. Но сразу после нанесения 3-го слоя и сушки его на солнце и у примуса, камера выглядела ничего...
Как я случайно выяснил позже, Hikvision выпускает модель и в черном цвете: DS-2CD2742FWD-IZS(B)

IP-камера 4Мп против аналоговой
Маленький 5% участок полного кадра без ресайза. Ácer platanoídes (клен остролистный)
Кажется, новая 4-Мп камера показывает немного лучше старой аналоговой CNB XCM-21VF (600ТВЛ)

Стоит сказать, что новая камера была смонтирована на место старой, то есть на стене. Да, купольная камера на стене. Почему бы и нет? Регулировок внутри Hikvision хватило, чтобы выставить горизонт, если, конечно, такой термин вообще допустим в отношении широкоугольных объективов. Качество картинки на видео заметно улучшилось. На порядок. Это как если бы вы смотрели телевизор со зрением в минус 8 и одели очки. Теперь стало возможным даже рассмотреть номер припаркованного в 15 метрах от дома автомобиля. Ну дык... 2688х1520 при 20 кадрах в секунду.

Размещение купольной камеры на стене имеет небольшие недостатки. У нее нет козырька. В дождь капли иногда остаются на стекле и могут бликовать, пока не высохнут. Так как камера висит на южной стороне, то в конце декабря солнце немного засвечивает центр изображения, чего не было с прежней камерой. Но есть и очевидные плюсы. Пауки, собаки страшные, теперь не могут свить паутину. На старой камере я в конце лета частенько наблюдал не свой двор, а душераздирающую картину поедания огромным пауком очередной жертвы, что немного бесило.

Моторизированный объектив - хорошая игрушка, учитывая, что центр изображения почти попадал на калитку. Возможным стало даже рассмотреть гостя в подробностях. Но самое важное преимущество привода объектива даже не в этом, а в том, что есть функция автофокуса. Наконец-то не нужно делать точную настройку фокуса вручную. Это очень утомительно. С новой камерой проблема решилась.

А теперь о главном. Видео со старой камеры обрабатывал сервер через Zoneminder посредством платы оцифровки изображения. Это нормально работало. Видео с разрешением 720х576, сконвертированное в mjpeg, я мог смотреть его через любой браузер. Но из новых версий Debian программа Zoneminder была удалена. Да и с разрешением новой камеры Zoneminder вряд ли бы справился. Моя основная задача заключалась в том, чтобы добиться просмотра видео с любого устройства (ПК, телефон, планшет) из стандартного браузера без всяких дополнительных приложений, с максимальным качеством и с минимальной нагрузкой на сервер. Как?

У IP-камеры Hikvision, разумеется, есть встроенный Web-интерфейс. Если вы попробуете обратиться к открытому 80-порту произвольного IP в Интернете, то велика вероятность увидеть это.


Камер Hikvision в сети очень много

Но как вы думаете, работает ли видео из Web-интерфейса камеры в Google Chrom? А в Mozilla Firefox? А в Safari? А в Opera? Правильно. Как вы угадали? Конечно же не работает. Более того, не работает видео даже в Microsoft Edge.
Здесь следует сказать, что все остальные функции доступны. Можно менять любые настройки, которых огромное количество. Можно управлять моторами. Можно задавать условия, при которых камера делает снимки или самостоятельно записывает видео на флешку (у камеры есть для нее слот). Работает все, кроме непосредственно просмотра видео.


Ну как же так?

Видео отображается только через ActiveX плагин в Microsoft Internet Explorer. И у этого есть целый ряд объяснений. По сути именно по той причине, по которой видео работает в IE, оно не работает во всех остальных современных браузерах. На момент написания статьи (декабрь 2018) мне неизвестны способы прямого воспроизведения видео-потока RTSP стандарта H.264 в браузере. Не существует HTML-плееров или плагинов. Ранее в некоторые браузеры возможно было установить VLC-плагин, но теперь и этот вариант отпадает. VLC в виде отдельного приложения или другие медиа-плееры, конечно, без проблем будут играть RTSP-поток. Этим я и пользовался какое-то время. И VLC есть везде: Windows, Linux, MacOS, iOS. Но это отдельное приложение, которое нужно запускать, указывать URL. Неудобно для каждодневного использования. Еще одной альтернативной является родное ПО от производителя iVMS-4200, с помощью которого также можно смотреть камеры (причем не одну), управлять записью и осуществлять настройку. Но оно очень медленное, нормально поддерживается только для Windows и вообще, откровенно говоря, не для этого.

Остается только один вариант - конвертировать RTSP (H264) на сервере и отдавать поток в том формате, который поддерживается браузерами. Это рабочий вариант, потому что сервер может не только транслировать и конвертировать видео, но также одновременно записывать или обрабатывать поток.

Самым оптимальным было бы транслировать RTSP в WebRTC. Такой подход обеспечил бы передачу видео с минимальными задержками (Low Latency WebRTC Streaming). И такое серверное программное обеспечение существует. Есть только один маааленький минус. По больше части такое ПО платное. Flashphoner Web Call Server 5 - всего $1995 с годовой поддержкой. Какие пустяки. Wowza Streaming Engine - $1995. Это какой-то сговор. nanoStream - $199 в месяц, Ant Media Server Enterprise - $49 в месяц. И так далее.. Есть условно бесплатный Unreal Media Server с ограничениями, которые можно снять за деньги, но только для Windows. Конечно, есть бесплатный Kurento Media Server но с наскока поставить и настроить его не получилось, что часто бывает с open source разработками.

Но удалось найти надеюсь временную и простую альтернативу - Ant Media Server Community Edition. Это ПО с отключенной функцией Low Latency WebRTC Streaming, зато оно умеет быстро и качественно обеспечить конвертацию из RTSP в HLS - протокол, который поддерживается всеми браузерами. Этот софт выгодно отличается тем, что его установка занимает ровно 2 минуты (запускал на Debian 9). Справится и начинающий.

1. Качаем архив
2. Распаковываем zip-файл
3. Запускаем ./start.sh
4. Добавляем в Web-интерфейсе RTSP-поток камеры

И это все! Теперь в Web-интерфейсе сервера появится иконка для просмотра видео любым (!) браузером и иконка для копирования HTML-кода для интеграции плеера с домашним сайтом. Кстати, в качестве плеера используется flowplayer. Также сервер может одновременно записывать видео на диск. При этом загрузка моего уже пожилого сервера на базе Core 2 Quad Q6600 при добавлении одного потока составляет всего 2%. Настроек минимум. Большинство настроек заблокированы в версии Community.

А вот, как происходит интеграция плеера с домашним сайтом. Копируем Live Embed Code и встраиваем в нужное место сайта.

<iframe width="560" height="315" src="//192.168.0.251:5080/WebRTCApp/play.html?name=217471342397794001935059" frameborder="0" allowfullscreen></iframe>

Я сделал только пару изменений. Во-первых, увеличил размер превью по умолчанию, а во-вторых, настроил автозапуск воспроизведения.

<iframe width="1200" height="700" src="//192.168.0.251:5080/WebRTCApp/play.html?name=217471342397794001935059&autoplay=true" frameborder="0" allowfullscreen></iframe>

И еще одна маленькая особенность. По умолчанию автозапуск воспроизведения не работает на мобильных устройствах (телефонах, планшетах), но это решается просто. Нужно отредактировать файл webapps/WebRTCApp/play.html и заменить:
if (pAutoplay == "true" && !isMobile()) {
на
if (pAutoplay == "true" ) {

Теперь порядок! Я могу смотреть камеру с любого устройства без плагинов и без дополнительных приложений со своего домашнего сайта. Качество видео никак не отличается от того, что я вижу напрямую с камеры через VLC. Но "в чем же прикол"? Почему полноценное серверное ПО для трансляции стоит денег, когда можно взять и использовать Community Edition? А прикол в том... что видео идет с задержкой. Нет, не полсекунды, не секунда. Восемь секунд не хотите?! Причина тут в самой технологии конвертирования RTSP/H264 в HLS. И чем больше значение "I Frame Interval", которое влияет на плавность и качество видео, тем больше задержка. Минимальную задержку в 8 секунд я получил только при условии, что значение I Frame Interval не превышает 6. Платные же продукты предлагают другую технологию, когда видео не конвертируется из RTSP, в HLS, а отдается как WebRTC. Задержка в таком случае не превышает 1-2 секунд.

Спустя какое-то время, я пришел к интересному наблюдению. Оказывается, видео с задержкой - это даже удобно. Например, я слышу какой-то шум на улице, тут же захожу на сайт, включаю трансляцию и вижу этакую запись того, как все происходило, что явилось источником шума. Если бы видео было без задержки, то пришлось бы лезть в архив записей. Тем не менее, поиск достойного и бесплатного ответа на вопрос об RTSP -> WebRTC будет продолжен.

Кстати, по поводу архива. Как его делать? Есть много способов. И этот вопрос решается в сущности намного легче. Даже Ant Media Server может одновременно вести запись. Но и здесь есть о чем подумать. Чтобы лицезреть в браузере отличную картинку, я установил в настройках камеры "Качество: Супер; Битрейт: 16384". Стоит ли говорить, что при разрешении 2688х1520 и колышущимся под порывами ветра Ácer platanoídes, который занимает треть изображения, объем данных огромный. Минута занимает более 100Мб. А вот реальная потребность в архиве возникает не часто. Но в камерах Hikvision есть интересная возможность. Камера может отдавать "Основной поток" в максимальном качестве, а "Вторичный поток" с разрешением похуже - 640х360.

Что касается самой записи, то в Интернете, на stackoverflow и других полезных ресурсах можно найти массу различных рекомендаций. Например, следующий код будет вести постоянную запись, где каждая минута будет сохраняться в отдельном файле. Основной поток записывать или вторичный и сколько дней хранить записи зависит в данном случае от объема диска.

ffmpeg -i rtsp://admin:password@192.168.0.70 -c copy -map 0 -f segment -segment_time 60 -segment_format mp4 -reset_timestamps 1 -strftime 1 "Monitor1-%Y%m%d-%H%M.mp4"

Кстати, в данном случае видео не перекодируется (опция -c copy), а значит запись данных не загружает процессор сервера. Просматривать архивы можно также с помощью браузера. В отличие от RTSP-потока с проигрыванием файлов, записанных на диске, через HTML5 <video> проблем нет никаких. Ну а я при необходимости просто захожу на сервер через Samba-ресурс (доступ к файлам через протокол Microsoft SMB) и открываю нужный файл по имени, так как в имени файла присутствует дата и время. Удаление старых видео-файлов (старше 5 месяцев) происходит через cron автоматически.

Кроме того, каждую минуту я сохряняю снимок с камеры в формате JPEG. В отличие от видео эти данные не занимают много места на диске храняться вечно для истории.
Для этого в cron прописано следующее:

curl --digest -s http://admin:password@192.168.0.70/ISAPI/Streaming/channels/1/picture > /var/www/snap/Monitor1.jpg; /var/scripts/snap_archive.sh

Содержимое скрипта snap_archive.sh

#/bin/sh
sleep 5
if [ ! -d /var/www/snap/archive/`date +%Y%m%d` ]
then
mkdir /var/www/snap/archive/`date +%Y%m%d`
fi
cp /var/www/snap/Monitor1.jpg /var/www/snap/archive/`date +%Y%m%d`/`date +%Y%m%d%H%M`.jpg

И последнее. В камерах Hikvision есть возможность менять любые настройки через специальный ISAPI интерфейс. Простой пример. Мне нужно было перенести дату и время, которые накладываются на изображение в ту область, где оно не мешает. Во встроенном Web-интерфейсе этой возможности попросту нет. Можно выровнять по левому или правому краю, но в произвольную область дату и время поставить нельзя. Но через ISAPI можно.

Нужно создать файл, например, osd.xls со следующим содержимым

<VideoOverlay version="2.0">
    <DateTimeOverlay>
        <enabled>true</enabled>
        <positionX>500</positionX>
        <positionY>544</positionY>
        <dateStyle>CHR-DD/MM/YYYY</dateStyle>
        <timeStyle>24hour</timeStyle>
        <displayWeek>false</displayWeek>
    </DateTimeOverlay>
</VideoOverlay>

А далее запустить команду вида

curl -X PUT -T osd.xml --digest http://admin:password@192.168.0.70/ISAPI/System/Video/inputs/channels/1/overlays

Также можно по расписанию, к примеру, включать или выключать WDR и изменять другие настройки. Полную документацию по ISAPI камер Hikvision можно найти в Интернете.
Прошло уже достаточно много времени с тех пор, как я установил новую камеру. Пока никаких проблем с ней не возникло. А дяде Васе спасибо за помощь в выборе.

 

 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2019-01-01 00:25:59 | Ruslan
Спасибо за новую интересную статью! Всем начинающим, кто пытается прикрутить камеру к своей системе УД, описанный опыт наверняка будет полезен. Не у всех же есть знакомый дядя Вася.


2019-01-03 19:03:31 | THK
Андрей, здравствуйте.

Расскажите пожалуйста как у этой камеры обстоят дела с изображением в вечернее и ночное время?


2019-01-03 20:29:43 | Andrey_B
Виктор, не отношу себя к экспертам в области видеонаблюдения, но ночное изображение с этой камеры меня полностью устраивает. Двор освещается натриевой лампой. Изображение с камеры почти как днем. Если лампу выключить, камера включает ИК-подсветку и переходит в ч/б режим. Конечно, видно хуже, подсветка не в состоянии освещать сотни квадратных метров, да и глубина резкости, разумеется, падает, но в целом вполне достойно. Если интересно, могу прислать фотографии.


2019-01-04 13:16:10 | THK
Андрей, спасибо за быстрый и развернутый ответ, для меня Вашего мнения достаточно.
Был негативный опыт с камерами Ubiquiti AirCam - уже в сумерках показывают "Квадрат Малевича". Сейчас снова смотрю в сторону аналоговых камер, только без подсветки и для работы при низкой освещенности.


2019-01-08 10:20:24 | Михаил
Synology Surveillance Station уже лет пять наверное использую. Пожаловаться не на что.


2019-01-08 11:32:12 | Andrey_B
Михаил, согласен, отличное решение, если есть устройство от Synology (например, Disk Station). А если нет и не планируется?
Кроме того, если камер несколько, то может потребоваться покупка дополнительных лицензий.


2019-01-08 14:26:16 | Михаил
Раньше у меня Synology Surveillance Station на xpenology работала и физически Synology не было. На самой Synology надежнее конечно как показала практика.
По лицензиям: 2 бесплатно - а дальше есть за прозрачность то надо купить, а если экономный, то можно найти варианты без проблем.


2019-01-10 19:17:23 | Burst
В хроме можно смотреть. Ставите IE tabs, потом плагин от Hikvision


2019-01-10 20:47:55 | Andrey_B
Burst, все это полумеры - камеры я чаще всего смотрю с планшета или телефона (Safari). Кроме того, и эти полумеры в любой момент могут перестать работать с очередным обновлением браузера или его политиками. Нет ничего лучше и надежнее твердого стандарта, поддержанного всем сообществом. В данном случае WebRTC. Тем не менее, спасибо за наводку. Не знал, что есть такое специфическое расширение для браузеров.