Консорциум W3C объявил о придании API, связанного с технологией WebRTC, статуса рекомендованного стандарта. Одновременно комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, опубликовал 11 RFC (8825-8835, 8854) с описанием архитектуры, элементов протокола, видов транспорта и механизмов коррекции ошибок, применяемых в WebRTC. Данные RFC получили статус “Предложенного стандарта”.
Технологий WebRTC была создана компанией GIPS, специализирующейся на разработке технологий цифровой обработки сигналов и передачи мультимедийных потоков в режиме реального времени. В 2011 году GIPS поглотила компания Google, которая открыла все связанные с WebRTC наработки под лицензией BSD и предоставила безвозмездный доступ к патентам. С тех пор поддержка WebRTC была реализована во всех современных браузерах и получала распространение в коммуникационных приложениях, которым необходима организация прямого канала связи между браузерами.
Например, 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 для адаптации видеопотока под пропускную способность клиента. Для следующей версии API WebRTC развиваются такие возможности как сквозное шифрование видеоконференций, live-обработка потоков звука и видео (в том числе с использованием систем машинного обучения), возможности для установки канала связи с сенсорами в IoT-устройствах.
Доступ web-приложений к указанным подсистемам производится через специально подготовленный JavaScript API, включающий интерфейсы:
- getUserMedia – получение мультимедийного потока (видео, звук) из локально подключенного устройства (web-камера, микрофон, видеокамера) или файла.
- RTCPeerConnection – установка прямого соединения между пользователями, обработка сигналов, работа с кодеками, управление пропускной способностью, организация защищённого канала связи.
- RTCDataChannel – обмен произвольными данными по двунаправленному каналу связи c использованием типового API WebSockets.
- getStats – получение статистики.