Технология WebRTC: что это такое, настройка, как работает

МТС Линк Встречи
Сервис для совещаний и онлайн-встреч
  • Стабильная связь
  • Техподдержка 24/7
  • ИИ-функции

Видеосвязь часто требует установки дополнительных программ и настроек. Технология WebRTC позволяет начать звонок сразу в браузере, без совершения лишних шагов.

Разбираемся, что такое стандарт WebRTC, как работает и какие у этой технологии есть преимущества и недостатки. 

Что такое стандарт WebRTC

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

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

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

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

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

1. Создание MediaStream

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

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

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

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

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

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

Для подключения формируются дескрипторы с описаниями сессий.

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

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

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

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

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

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

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

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

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

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

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

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

1. Не требуется дополнительное оборудование

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

2. Не требуется дополнительное ПО

Нет необходимости также и в дополнительном программном обеспечении. Поддержку WebRTC осуществляют все основные браузеры, включая Chrome, Mozilla Firefox, Safari, Yandex и Edge. Организатору видеовстречи не придется устанавливать плагины (Flash и другие).

3. Не нужна регистрация на мероприятие

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

4. Передача данных с минимальной задержкой

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

5. Каналы передачи зашифровываются

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

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

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

Первый недостаток WebRTC заключается в возможной утечке IP-адреса пользователя в процессе коммуникации.

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

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

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

Аудиокодеки

Opus

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

G.711 (PCMA / PCMU)

Этот кодек обязателен по спецификации WebRTC.

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, но с более низким битрейтом.

AV1

Появляется в новых браузерах как дополнительный (необязательный).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Сервис МТС Линк Встречи

Сервис для онлайн-встреч и совещаний. Входит в реестр отечественного ПО, данные хранятся на российских серверах. 

Что позволяет:

  • общаться в чате, ставить реакции и включать таймер, чтобы повышать активность участников  
  • работать с командой на онлайн-доске во время онлайн-мероприятия
  • настраивать автоматическую запись мероприятия и транскрибацию речи
  • включать демонстрацию экрана
  • проводить тестирование и опросы
  • включать функцию перевода субтитров на иностранные языки в режиме реального времени
  • делегировать ИИ-помощнику рутину: он проанализирует прошедшие встречи, расскажет, что обсуждали и какие задачи поставили.

Также есть технология единого входа SSO (авторизация через корпоративную систему).   

2. Trueconf

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

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

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

3. Jitsi Meet

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

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

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

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

Блок FAQ

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

Подпишитесь на рассылку МТС Линк Медиа

Каждую пятницу присылаем самые интересные статьи об эффективной работе и коммуникациях в онлайне на почту