Контакты
Подписка
МЕНЮ
Контакты
Подписка

Применение технологии WebRTC в системе облачного видеонаблюдения

В рубрику "Видеонаблюдение (CCTV)" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Применение технологии WebRTC в системе облачного видеонаблюдения

Передача звука и видео по Интернету становится все более актуальной задачей. Сложность ее решения заключается в многообразии Web-клиентов и поддерживаемых ими стандартов. Один из основных способов реализации RTC через браузеры – плагины. Для пользователей наиболее заметным недостатком плагинов является сложность их установки и настройки. Для разработчиков реализация RTC-плагинов требует значительных ресурсов для обеспечения интеграции с существующей инфраструктурой VoIP, поддержки различных аудио- и видеокодеков, а также корректной работы при наличии Network Address Translators (NAT) и файрволов. В связи с такими трудностями набирает популярность технология WebRTC – стандарт Peer-to-Peer обмена аудио, видео и данными между Web-браузерами без использования плагинов или приложений. Расскажу об опыте использования данной технологии в системе облачного видеонаблюдения, спроектированной специалистами компании MERA
Максим Тюлин
Руководитель программы компании MERA

Изначально задача по разработке системы облачного видеонаблюдения предполагала реализацию базовой функциональности – возможность посылать видео с камеры в облако, переводить его в необходимый формат и транслировать клиентам. Для решения задачи были разработаны архитектура и каркас основных компонентов облачного сервиса, а в качестве протоколов передачи видео клиентам были выбраны RTSP и HLS.

Первые шаги и проблемы

Проверка сервиса проводилась на двух приемниках медиапотока (клиентах) – кроссплатформенном декстоп-клиенте и браузере. Десктоп-клиент работал с облачным сервисом по RTSP-протоколу, и наблюдаемые задержки были минимальны. Однако данный клиент рассматривался как вспомогательный и использовался преимущественно для тестирования. Целевым являлся браузер, позволяющий подключаться к сервису без установки каких-либо плагинов или приложений. Еще одно важное достоинство технологии передачи видео в браузер – возможность применения протокола HLS и кодека H.264. Кодек H.264 считается стандартным в системах видеонаблюдения – трансляция видео с его помощью не требует перекодировки и не загружает медиа-сервер. Единственной, но принципиальной проблемой при тестировании приема видеопотока стала задержка. Так, взмах рукой перед камерой отображался на клиенте минимум через 5–10 секунд. Стало очевидно, что HLS не подходит для передачи видео в реальном времени и что для реализации облачного сервиса видеонаблюдения необходимо использовать иную технологию.

Альтернативы решения

В разное время на роль доминирующих технологий, которые позволяют через браузер передавать звук и видео, претендовали Java-апплеты и плагин для браузера Adobe Flash Player. Java-код выполняется десктопом или JRE- (Java Runtime Environment) плагином для браузера, который захватывает аудио и видео с устройств и отправляет их на сервер по стандартному RTP-протоколу. К недостаткам Java следует отнести отсутствие многих необходимых алгоритмов передачи и обработки цифрового звука. Перед разработчиками возникает дилемма: реализовывать алгоритмы с нуля, затрачивая время и деньги, или использовать готовые решения на других языках программирования, теряя при этом кроссплатформенность.


Flash Player также обеспечивает доступ к аудиоустройствам, хотя требует наличия серверного решения. В Flash Player 6 для передачи аудио и видео применялся протокол RTMP. Использование в качестве транспорта протокола TCP – существенный недостаток RTMP, поскольку гарантированная целостность передаваемых данных при реализации общения в реальном времени не так важна, как своевременность передачи этих данных.

WebRTC: решение и инструменты

Анализ возможных решений имеющейся проблемы привел к идее использования более современной технологии – WebRTC, в которой голосовая и видео Peer-to-Peer коммуникация с возможностью обмена данными предоставляется браузером как набор Javascript API (для внедрения WebRTC на мобильных устройствах применяются различные SDK).

Стандартизацию технологии разделили между W3C WebRTC, который работает над API, и IETF RTCWeb, занимающимся регуляцией используемых протоколов, в которых учли все недостатки прочих устаревших подходов. Чтобы решить проблему установки WebRTC-соединения при наличии NAT и файрволов, был расширен ICE-протокол (RFC 5245), который оптимизировал процесс долгого сбора информации обо всех известных IP-адресах удаленного узла. Сфера применения WebRTC охватывает широкий спектр услуг доступа к информационным ресурсам и не ограничивается аудио- и видеозвонками через браузер.

К недостаткам полученного решения можно отнести следующие. Во-первых, WebRTC ориентирован на Peer-to-Peer соединение, и, как следствие, каждый новый пользователь сервера – это новое соединение, новый медиапоток, создающий нагрузку на сервер (в нашей реализации WebRTC-агентом является не сама камера, а специальный сервер). В этом отношении протокол HLS, при реализации которого нагрузка на сервер мало зависит от числа пользователей, имеет преимущество перед WebRTC. Во-вторых, все еще существуют браузеры, не полностью поддерживающие WebRTC

Для реализации новой версии сервиса на основе WebRTC был использован GStreamer – мультимедийный фреймворк, главными преимуществами которого являются кроссплатформенность, свободная лицензия, активная разработка и поддержка. Компания Ericsson создала плагины, базирующиеся на GStreamer и позволяющие браузерам устанавливать видеосоединение по WebRTC. Реализация WebRTC в сфере видеонаблюдения – не такая простая задача, какой может показаться. Она включает в себя и обмен SDP-сообщениями между браузером и сервером, и ICE, и безопасность (DTLS), и правильный подбор кодеков, и многое другое. Все это было необходимо предусмотреть на стороне сервера, в чем крайне полезными оказались плагины для GStreamer от Ericsson.


Если со стороны браузера нужно было лишь вызвать несколько функций из API WebRTC, то разработка серверной части требовала больших усилий. Пришлось потратить немало времени на подбор параметров безопасности для установки WebRTC-соединения, а также на настройку медиапотока. В результате реализации WebRTC-решения задержка между действием в кадре и трансляцией этого действия на клиентском устройстве стала минимальной, практически неотличимой от десктоп-клиента, который служил образцом. Вторым очень важным плюсом была безопасность соединения, изначально поддерживаемая WebRTC.

Перспектива – есть

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

Опубликовано: Спец.приложение "Video & Vision"-2015
Посещений: 5798

  Автор

Максим Тюлин

Максим Тюлин

Руководитель программы компании MERA

Всего статей:  1

В рубрику "Видеонаблюдение (CCTV)" | К списку рубрик  |  К списку авторов  |  К списку публикаций