WebRTC - что это такое, настройка, как работает

WebRTC - что это такое, настройка, как работает

Стандартом WebRTC называют передачу видео, аудио данных напрямую через браузеры, без установки дополнительных программ. По сути, это готовый канал коммуникации без сложной настройки сети и дорогостоящего оборудования. Технологию разработала компания Google.

WebRTC изначально была создана для одноранговой видеосвязи без дополнительного сервера. Однако, со временем технология стала популярнее и сейчас на базе WebRTC разработчики систем ВКС создают мобильные приложения для групповых конференций, обмена сообщениями и передачи файлов. Пользователи такого ПО устанавливают соединение через интернет или в локальной сети.

h1 | Изображение 1WebRTC: что такое в локальных сетях и сетях интернет

Принцип работы WebRTC

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

Чтобы установить соединение, при запуске WebRTC сначала формируются медиа потоки (MediaStream).

1. Создание MediaStream

Потоки состоят из видео- и аудиоданных, которые отправляет пользователь. Бывает удаленный и локальный поток. Первый получает данные по сети, а второй — с ваших устройств, например, камер.

Может быть один или несколько не синхронизированных локальных медиа потоков. Обычно используется первый вариант, когда один поток объединяет две дорожки — видео и аудио, каждая из которых направлена из своего основного канала. В локальном описании при настройке звука и картинки используются специальные метки потока.

2. Сигнализация

Подготовка звонка осуществляется протоколом описания сессии SDP. Дескриптор сессии состоит из текстового файла настроек соединения и параметров сессии. Он формируется когда один из агентов делает отправку запроса на подключение. Что сохраняется в файле протокола SDP:

  • Аудио и видеокодеки, которые поддерживает каждый из терминалов.
  • Описания локального медиапотока.
  • Тип данных, которые будут передаваться (аудио или видео).
  • IP и порты для последующего доступа агентов друг к другу.

Несмотря на то, что WebRTC предоставляет интерфейсы для разных задач, протокола для отправки данных о соединении у технологии нет. Нужны другие способы передачи. Передачу SDP осуществляет сигнальный сервер или технология WebSocket. После получения и обработки данных принимающий клиент отправляет аналогичный файл со своими параметрами.

h1 | Изображение 2Для подключения формируются дескрипторы с описаниями сессий

3. Попытка соединения с помощью NAT и ICE

Чтобы произвести установку p2p соединения браузеры должны обнаружить друг друга и это сложнее, чем в случае серверной видеосвязи. На это есть две возможных причины:

  • Агенты не имеют публичных внешних IP.
  • Узлы находятся в разных сетях: локальный пир и публичный.

Эту проблему можно решить, используя протоколы ICE, серверы TURN, STUN и функцию преобразования сетевых адресов NAT.

Механизм NAT помогает временно перевести локальный IP в публичный внешний IP-адрес. Протоколы STUN и TURN предоставляют информацию о созданных IP и портах. Через STUN создаются отображения NAT и определяются публичные IP-адреса клиентов. TURN является частью STUN, иногда используется как подобие сервера в клиент-серверной связи.

На этапе сигнализации каждый терминал формирует информацию о транспортном пути (candidates), по которому его можно найти. Эти данные передаются в текстовом виде в SDP. Одни транспортные пути передаются из локальных сетевых интерфейсов, другие могут быть сформированы STUN или TURN сервером.

Агенты ICE получают данные пути и создают оптимальное соединение. Они позволяют устанавливать наиболее подходящую пару адресов, используя локальные пути и дополнительных кандидатов, найденных с помощью серверов.

4. Обеспечение шифрования

Технологии WebRTC позволяют передавать информацию через зашифрованные протоколами DTLS и SRTP каналы данных. После шифрования, при стабильном соединении, начинается обмен данными.

h1 | Изображение 3WebRTC обеспечивает прямую передачу данных и обмен файлами без сторонних дополнений

Плюсы стандарта

По сравнению с серверными решениями, эта технология предоставляет некоторые преимущества своим пользователям:

  • Это простой способ видеосвязи, потому что не требуется дополнительное оборудование. Вы сможете организовать конференцию с вашим компьютером, смартфоном или планшетом без потери качества видео.
  • Нет необходимости также и в дополнительном программном обеспечении. Поддержку WebRTC осуществляют все основные браузеры, включая Chrome, Mozilla Firefox, Safari, Yandex и Edge. Организатору видеовстречи не придется устанавливать плагины (flash и другие).
  • Для приглашенных на онлайн-встречу конечных пользователей коммуникация также становится удобнее — они могут открывать страницу с мероприятием без регистрации во всех популярных браузерах.
  • Еще одно преимущество в том, что технология поддерживает передачу данных с минимальной задержкой. Когда пользователям сначала приходится отправлять данные на сервер, задержка увеличивается и это сказывается на качестве общения. WebRTC гарантирует низкую задержку 0,5 секунд потому что агенты передают данные напрямую и без обработки.
  • Каналы передачи зашифровываются. DTLS, SRTP и работа по протоколу HTTPS обеспечивают безопасные коммуникации. Кроме того, для полноценной работы с WebRTC ваш сайт необходимо подписать сертификатом.
  • Эта технология — с доступным исходным кодом и она наилучший способ внедрить видеосвязь в свой проект.

 

h1 | Изображение 4При обмене информацией WebRTC может открывать реальный и локальный ip-адрес

Минусы стандарта

Первый недостаток WebRTC заключается в возможной утечке вашего IP-адреса пользователя в процессе коммуникации. Это приводит к необходимости использования VPN сервисов, скрывающих реальный IP-адрес.

Однако, этого бывает недостаточно и у пользователя VPN также может происходить утечка данных, связанная уже со второй уязвимостью технологии. Она заключается в возможности утечки данных WebRTC из-за плохого шифрования. Стандарт поддерживает протоколы DTLS и SRTP, но их бывает недостаточно для обеспечения безопасности.

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

h1 | Изображение 5Браузеры определяют ваш реальный публичный ip адрес

Кодеки в технологии WebRTC

В WebRTC поддерживаются две группы кодеков: стандартные и дополнительные. Поддержку кодеков из первой группы осуществляют все браузеры с WebRTC, вторые присутствуют не везде.

Аудиокодеки

  • Opus.

Этот кодек создан для кодирования и передачи данных в нестабильных сетях. Поддержку аудио кодека Opus обеспечивают все браузеры.

  • G.722.

Бесплатное ПО, работающее со скоростью до 64 кбит/с. Поддерживается всеми популярными браузерами: Chrome, Firefox, Safari.

  • iLBC.

Дополнительное ПО с открытым исходным кодом. Этот узкополосный речевой кодек хорошо сжимает данные, но одновременно с этим сильно нагружает процессор.

  • iSAC.

Широкополосный кодек, не обязательная часть программного обеспечения WebRTC. Поддерживается только двумя агентами: Chrome и Safari.

Видеокодеки

Поддержку обмена видео осуществляют 4 кодека:

  • VP8

Универсальный кодек с открытой лицензией. Обеспечивает высокую скорость кодирования и низкую потерю кадров. Включен во всех популярных браузерах: Chrome, Edge, Firefox и Safari.

  • H.264

Второй обязательный видеософт — H.264 также гарантирует хорошее качество видео с высокой степенью сжатия.

  • VP9.

Усовершенствованный VP8, также в свободном доступе, но поддержка есть только в Chrome и Firefox.

  • H.265.

Обеспечивает качество видео H.264, но с более низким битрейтом.

Проблемы WebRTC на мобильных устройствах

Технология работает на любом устройстве, но с разработкой мобильных приложений на ее базе могут возникнуть несколько проблем:

  • Неустойчивое соединение при передвижении пользователя.
  • Большая нагрузка на процессор и быстрая разрядка устройства.
  • Невозможность отображения всех пользователей из-за небольшого экрана.

Способы решения проблем:

  • Использование бинарных данных для уменьшения объема данных.
  • Оптимизация команд сигнального протокола (количество подключений и отключений).
  • Использование минимально возможного количества PeerConnection, STUN и TURN-серверов.
  • Приоритизация кандидатов с использованием параметра network-kost.
  • Использование архитектуры SVC или MCU.

h1 | Изображение 2Стандарт поддерживает передачу медиа потоков без сторонних программ

Как подключить WebRTC

Большинство браузеров автоматически поддерживает этот протокол и для включения не потребуется использования дополнительных плагинов.

Однако бывает, что стандарт отключили вручную. В этом случае нужно зайти в список скачанных расширений и поискать в перечне плагины типа WebRTC Control, WebRTC Network Limiter или Easy WebRTC Block. Если они есть, удалите их.

В браузере Opera активировать протокол можно в разделе с настройками. Найдите в поиске этого раздела WebRTC и активируйте режим. В Safari также нужно зайти в «Настройки», выбрать «Дополнения», прокрутить вниз и открыть меню «Разработка». Затем в появившемся меню выбрать экспериментальные функции.

Настройка WebRTC также может потребовать настройки HTTPS соединения на сервере. В противном случае приглашенные абоненты при открытии страницы с видеоконференцией будут получать предупреждение о небезопасности ссылки.

h1 | Изображение 7Для включения WebRTC не требуется дополнительный инструмент

Проблемы безопасности WebRTC

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

В рамках обеспечения конфиденциальности также рекомендуется:

  • Использование браузеров и ПО только из официальных источников.
  • Отзыв неактуальных разрешений на камеру и микрофон.
  • Использование https вместо http.
  • Установка случайного ключа сессии.
  • Использование протокола шифрования DTLS для передачи ключей SRTP.
  • Аутентификация пользователей.

Как отключать WebRTC

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

В браузере Mozilla Firefox можно применять второй способ. В верхнюю строку скопируйте команду about:config. Нажмите «Принять». В открывшемся окне вставьте в пустую строку текст media.peerconnection.enabled. Кликните по стрелкам в этой же строке справа, чтобы надпись true заменилась на false. Всё. WebRTC отключен, можно перезагружать браузер и работать.

h1 | Изображение 8Технология может открывать реальные ip-адреса при обмене данными

В Google Chrome придется установить плагин. Для этого нужно зайти в «Настройки», прокрутить страницу вниз и слева выбрать «Расширения». Найти и скачать WebRTC Control. После установки плагина, его нужно активировать, нажав на значок-паззл рядом с адресной строкой.

h1 | Изображение 9Для защиты ip-адрес пользователя иногда используют VPN

В Edge также потребуется плагин. Для его установки нужно набрать в адресной строке edge://extensions/, найти WebRTC Control, установить дополнение и перезагрузить браузер. Таким же образом, за исключением адреса магазина, действуйте в Opera и «Яндекс».

В Safari технология отключается в меню «Дополнения». Нужно открыть раздел «Разработка в меню» и в списке настроек отключить Remove Legacy WebRTC API.

h1 | Изображение 10Отключить технологию можно, если установить расширение

Какое влияние оказал стандарт WebRTC на рынок ВКС

Через несколько лет после появления, WebRTC опередил остальные типы стандартов, включая SIP-телефонию и протоколы Microsoft Teams, Cisco Webex. Первые браузеры с поддержкой новой технологии увеличили число потенциальных терминалов ВКС на 1 млрд — каждый из них стал готовым терминалом для участия в конференциях.

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

3 сервиса видеосвязи, использующих WebRTC

1. Вебинары от МТС Линк

Это российская платформа для онлайн-обучения и вебинаров, доступная в двух версиях: для облачного использования и для локальной сети. Пользователи платформы Вебинары — промышленные предприятия, госсектор, вузы и школы, частный бизнес. Инструменты платформы позволяют передавать аудио и видео в хорошем качестве для 5000 слушателей одновременно. Основной набор инструментов включает:

  • Загрузку и обмен файлами во всех популярных форматах.
  • Интеграцию с онлайн-доской для совместной работы.
  • Деление участников на группы для практических заданий.
  • Редактор лендинга вебинара и рассылку приглашений.
  • Автоматическую запись мероприятия.
  • Демонстрацию экрана.
  • Тестирование и опросы.

При необходимости можно подключать дополнительные настройки, например, брендирование, автовебинары, метрики. Реализация WebRTC отличается от других вебинарных площадок — разработана собственная технология с поддержкой HD и внедрением технологии в мобильные приложения. Здесь вы можете ознакомиться со списком совместимых браузеров, в которых поддерживается разработанный стандарт.

h1 | Изображение 11Для использования платформы Вебинары от МТС Линк не требуется специальное дополнение

2. Trueconf

Многофункциональный видеосервис для бизнеса. Trueconf реализуют в облачной и коробочной версии. Есть все необходимые функции для проведения конференций:

  • Быстрый запуск видеозвонка.
  • Демонстрация экрана спикера.
  • Простая интеграция с IT-системами.
  • Мультиплатформенность.
  • Корпоративный мессенджер.

Trueconf не использует сторонние ресурсы и все сервисы уже встроены в продукт.

3. Jitsi Meet

Данная площадка представляет собой пример бесплатного программного обеспечения с открытым исходным кодом. JItsi работает на стационарных и мобильных устройствах через интернет. Для участников конференций — при прямом соединении через браузер. Информация об установке и настройке ПО выложена на сайте.

Возможности программы:

  • Трансляция видео, рабочего стола и презентации.
  • Общение с телефонными абонентами.
  • Чат для обмена аудио и текстовыми сообщениями.
  • Редактор текста с функцией совместной работы.

Инструменты Jitsi предоставляют возможность доработки сервиса под свои нужды.

Как отключается WebRTC?
Для отключения технологии в настройках Google Chrome используем плагин WebRTC Control из магазина приложений. Для блокировки WebRTC в других браузерах также потребуется установить специальное дополнение. Сторонние дополнения не потребуются для отключения стандарта в Mozilla Firefox и на мобильных устройствах iOS, Android.
Что такое WebRTC?
Это создание одноранговых соединений в режиме реального времени без использования пользователями дополнительных сервисов. Технология позволяет разработчикам создавать свои решения и приложения для звонков.