WebRTC теперь является стандартом W3C и IETF.

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

Хуиб Кляйнхаут
Huib Kleinhout

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

История

WebRTC — это платформа, предоставляющая браузерам, мобильным и настольным приложениям возможности связи в режиме реального времени, обычно используемую для видеозвонков. Платформа состоит из комплексного набора технологий и стандартов. Компания Google инициировала идею создания WebRTC в 2009 году в качестве альтернативы Adobe Flash и настольным приложениям, которые не могут работать в браузере. Предыдущее поколение браузерных продуктов было создано на основе лицензированной запатентованной технологии. С использованием этой технологии были созданы различные продукты, включая Hangouts. Затем Google приобрела компании, у которых лицензировала эту технологию, и сделала ее доступной как проект WebRTC с открытым исходным кодом. Эта база кода интегрирована в Chrome и используется большинством приложений, использующих WebRTC. Совместно с другими поставщиками браузеров и лидерами отрасли, такими как Mozilla, Microsoft, Cisco и Ericsson, стандартизация WebRTC была начата как в W3C, так и в IETF. В 2013 году Mozilla и Google продемонстрировали видеосвязь между своими браузерами. В ходе эволюции стандарта многие архитектурные дискуссии привели к различиям в реализации в разных браузерах и поставили под вопрос совместимость и взаимодействие. Большинство этих разногласий в конечном итоге были урегулированы, когда стандарт был окончательно доработан в последние годы. Спецификация WebRTC теперь сопровождается полным набором платформенных тестов и инструментов для обеспечения совместимости, и браузеры в значительной степени адаптировали свои реализации соответствующим образом. Это положило конец сложному периоду, когда веб-разработчикам приходилось постоянно адаптировать свои сервисы к различным реализациям браузеров и изменениям спецификаций.

Архитектура и функциональность

API RTCPeerConnection является центральной частью спецификации WebRTC. RTCPeerConnection занимается подключением двух приложений на разных конечных точках для связи с использованием однорангового протокола. API PeerConnection тесно взаимодействует с getUserMedia для доступа к камере и микрофону и getDisplayMedia для захвата содержимого экрана. WebRTC позволяет отправлять и получать потоки, включающие аудио- и/или видеоконтент, а также произвольные двоичные данные через DataChannel . Функциональность мультимедиа для обработки, кодирования и декодирования аудио и видео составляет основу любой реализации WebRTC. WebRTC поддерживает различные аудиокодеки, наиболее часто используемым и универсальным из которых является Opus. Реализации WebRTC должны поддерживать как бесплатный видеокодек Google VP8, так и H.264 для обработки видео. Соединения WebRTC всегда шифруются, что достигается за счет двух существующих протоколов: DTLS и SRTP. WebRTC в значительной степени опирается на существующие стандарты и технологии: от видеокодеков (VP8, H264), обхода сети (ICE), транспорта (RTP, SCTP) до протоколов описания мультимедиа (SDP). Это объединено в более чем 50 RFC.

Случаи использования: когда дело в миллисекундах

WebRTC широко используется в срочных приложениях, таких как удаленная хирургия, системный мониторинг и удаленное управление автономными автомобилями, а также в голосовых или видеовызовах, построенных на UDP, где буферизация невозможна. Почти все службы видеозвонков на основе браузера от таких компаний, как Google, Facebook, Cisco, RingCentral и Jitsi, используют WebRTC. Google Stadia и NVIDIA GeForce NOW используют WebRTC для передачи потока игрового процесса из облака в веб-браузер без заметной задержки.

Пандемия уделяет особое внимание производительности видеозвонков

За последний год использование WebRTC в Chrome выросло в 100 раз из-за увеличения количества видеовызовов из браузера. Признавая, что во время пандемии видеосвязь стала фундаментальной частью жизни многих людей, производители браузеров начали оптимизировать технологии, от которых зависит видеосвязь. Это было особенно важно, поскольку ресурсоемкие большие встречи и видеоэффекты на видеоконференциях стали более распространенными, когда сотрудники и студенты начали работать и учиться из дома. За последний год Chrome стал на 30 % более экономичным при видеозвонках, а для сценариев интенсивного использования будет добавлено больше оптимизаций. Mozilla, Apple и Microsoft добились значительных улучшений в реализации WebRTC во время пандемии, в частности, обеспечив соблюдение теперь формализованного стандарта.

Будущее WebRTC

Хотя WebRTC теперь стал стандартом W3C, улучшения продолжаются. Новый видеокодек AV1, экономящий до 50% пропускной способности, становится доступен в WebRTC и веб-браузерах. Ожидается, что дальнейшее совершенствование базы открытого исходного кода позволит еще больше сократить задержку и улучшить качество потокового видео. WebRTC NV объединяет инициативу по созданию дополнительных API для реализации новых вариантов использования. Они состоят из расширений существующих API, обеспечивающих больший контроль над существующими функциями, такими как масштабируемое видеокодирование, а также API, которые предоставляют доступ к компонентам более низкого уровня . Последнее дает веб-разработчикам больше гибкости для внедрения инноваций за счет интеграции высокопроизводительных пользовательских компонентов WebAssembly. С появлением сетей 5G и спросом на большее количество интерактивных услуг мы ожидаем увидеть продолжающийся рост количества услуг, построенных на базе WebRTC, в следующем году.