01.12.2021

Технология WebRTC получила статус стандарта

Консорциум W3C объявил о придании API, связанного с технологией WebRTC, статуса рекомендованного стандарта. Одновременно комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, опубликовал 11 RFC (8825-8835, 8854) с описанием архитектуры, элементов протокола, видов транспорта и механизмов коррекции ошибок, применяемых в WebRTC. Данные RFC получили статус «Предложенного стандарта».

Технологий WebRTC была создана компанией GIPS, специализирующейся на разработке технологий цифровой обработки сигналов и передачи мультимедийных потоков в режиме реального времени. Компания Google, заинтересованная в создании альтернативы Adobe Flash, поглотила GIPS и в 2011 году открыла все связанные с WebRTC наработки под лицензией BSD и предоставила безвозмездный доступ к патентам. С тех пор поддержка WebRTC была реализована во всех современных браузерах и получала распространение в коммуникационных приложениях и online-сервисах, которым необходима организация прямого канала связи между браузерами.

Например, WebRTC активно применяется в приложениях для организации видео- и аудиоконференций, играх, платформах организации совместной работы, мессенджерах, системах потокового вещания и распространения контента.
При помощи WebRTC коммуникационные приложения могут обрабатывать голосовой и видео трафик в реальном режиме времени, используя только HTML и JavaScript, без задействования сторонних проприетарных технологий и внешних плагинов.

WebRTC состоит из четырех базовых компонентов: системы управления пользовательскими сеансами, движка для обработки звука, движка для обработки видео и транспортного уровня. Движки обработки звука и видео позволяют использовать разные кодеки (VP8, H.264), а также методы подавления шумов. Все данные передаются только в зашифрованном виде. Для передачи данных в реальном времени могут использоваться протоколы DTLS и SRTP (Secure Real-time Transport Protocol) в сочетании с технологиями организации P2P-каналов связи и обеспечения работы через межсетевые экраны и трансляторы адресов (ICE, STUN, TURN, RTP-over-TCP, возможность работы через прокси).

Помимо стандартизированных базовых частей рабочими группами W3C и IETF также развиваются пока не утверждённые расширения, позволяющие использовать протокол QUIC в качестве транспорта и допускающие применение видеокодека AV1. Создана рабочая группа для разработки API WebTransport, упрощающего организацию потокового вещания нескольким получателям, и API Scalable Video Coding для адаптации видеопотока под пропускную способность клиента. Для следующей версии WebRTC также развиваются такие возможности как сквозное шифрование видеоконференций, live-обработка потоков звука и видео (в том числе с использованием систем машинного обучения), средства для установки постоянного канала связи с сенсорами в IoT-устройствах.

Доступ web-приложений к возможностям WebRTC производится через специально подготовленный JavaScript API, включающий интерфейсы:

  • getUserMedia — получение мультимедийного потока (видео, звук) из локально подключенного устройства (web-камера, микрофон, видеокамера) или файла.
  • RTCPeerConnection — установка прямого соединения между пользователями, обработка сигналов, работа с кодеками, управление пропускной способностью, организация защищённого канала связи.
  • RTCDataChannel — обмен произвольными данными по двунаправленному каналу связи c использованием типового API WebSockets.
  • getStats — получение статистики.

Источник.