WebRTC

WebRTC
Логотип программы WebRTC
Тип Web API[вд]
Автор Global IP Solutions
Разработчик Google
Репозиторий github.com/w3c/webrtc-pc
Лицензия BSD
Сайт w3c.github.io/web… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

WebRTC (англ. web real-time communications — коммуникации по сети в реальном времени) — технология с открытым исходным кодом, предназначенная для организации передачи потоковых данных между браузерами или другими поддерживающими его приложениями по технологии точка-точка.

На уровне API технология стандартизируется консорциумом W3C, а на протокольном уровне — сообществом IETF[1]. Его включение в рекомендации W3C поддерживается Google Chrome (и других на его основе), Mozilla и Opera[2][3][4].

WebRTC распространяется по лицензии BSD-3 и исходный код основывается на продукте от Global IP Solution, которая была куплена компанией Google в мае 2010[2][5][6].

Технология

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

В WebRTC используются два аудиокодека, G.711 и Opus, а также видеокодеки VP8 и H.264[8].

Преимущества технологии

  • проведение конференции в браузере значительно упрощает процесс проведения конференции — пользователю не нужно устанавливать для этого отдельные приложения;
  • используемые кодеки обеспечивают хорошее качество связи;
  • возможность реализации любых элементов интерфейса средствами HTML5 и JavaScript;
  • открытый исходный код даёт больше возможностей для использования.

Недостатки технологии

  • технология определяет только общий стандарт передачи данных (видео и звука), но отдельные решения разных браузеров относительно адресации абонентов и прочих управляющих процессов не совместимы между собой. Поэтому даже звонки между парой различных браузеров представляют отдельную сложность[9][10][11].
  • обеспечение групповых конференций требует дополнительных разработок поверх WebRTC.
  • использование технологии WebRTC, которая по умолчанию включена во многих популярных браузерах, позволяет третьей стороне определить реальный публичный IP-адрес устройства, работающего через VPN[12]. Для предотвращения утечки адреса рекомендуется либо полностью отключить WebRTC в настройках браузера[13], либо установить специальное дополнение[14][15] или конфиденциально-ориентированный браузер (например, LibreWolf).

Поддержка в браузерах

Chrome Safari Firefox Opera MS Edge Brave
23+[16] 11+[17] 38+[18] 12+[19] 103.+ [20] 1.5+ [21]

В браузере Edge используется собственная альтернатива этой технологии: ORTC (Object Real-Time Communications)

Для IE9+ существует аналогичное приложение webrtc4all[22].

Пример использования

Браузеры, которые поддерживают WebRTC, имеют функцию getUserMedia с вендорным префиксом. Она используется для получения доступа к устройствам и принимает на вход 3 параметра: вид устройства (аудио, видео или оба), функция, которая получит управление, если всё пройдёт успешно, и функция, которая получит управление в случае ошибки[23].

navigator.getUserMedia({audio: true, video: true}, success, error);

function success(pLocalMediaStream) {
    /* обработка видеопотока */
}

function error(pError) {
    /* вывод ошибки */
    console.log(pError);
}

WebRTC в групповых конференциях

Хотя WebRTC изначально рассчитано на соединения типа точка-точка и peer-to-peer, существует несколько готовых реализаций WebRTC-серверов, организующих сложные групповые конференции между разными браузерами. Такие серверы также обеспечивают присоединение к связи с браузерами сторонних устройств — IP-камер, использующих протокол RTSP/RTP, а также SIP и H.323-терминалов[24].

См. также

Примечания

  1. Технология WebRTC. Дата обращения: 30 марта 2018. Архивировано 29 ноября 2018 года.
  2. 1 2 Google open source WebRTC for open video/audio chat — The H Open Source: News and Features. Дата обращения: 22 июня 2011. Архивировано 25 июня 2011 года.
  3. WebRTC. Дата обращения: 22 июня 2011. Архивировано 4 июня 2011 года.
  4. Introducing WebRTC — an open real-time communications project Архивная копия от 28 июня 2011 на Wayback Machine — WebRTC
  5. License & Rights Архивная копия от 4 июня 2011 на Wayback Machine — WebRTC
  6. iLBC Freeware Архивировано 4 июня 2011 года. — WebRTC
  7. Видеопрезентация технологии на примере Firefox Hello. Дата обращения: 29 сентября 2017. Архивировано 12 августа 2016 года.
  8. WebRTC Audio Codec and Processing Requirements (англ.). Дата обращения: 1 ноября 2013. Архивировано 19 ноября 2013 года.
  9. Как Chrome и Firefox договариваются о передаче двух видеопотоков Архивная копия от 30 марта 2018 на Wayback Machine;
  10. Первый видеозвонок между Chrome и Firefox. Дата обращения: 5 февраля 2013. Архивировано 6 февраля 2013 года.
  11. Maire Reavy, Robert Nyman. Hello Chrome, it’s Firefox calling! (англ.) (4 февраля 2013). Дата обращения: 5 февраля 2013. Архивировано 6 февраля 2013 года.
  12. Тест на утечку через WebRTC. ExpressVPN. Дата обращения: 28 октября 2023.
  13. rotifer. Where can I disable WebRTC and PeerConnection? (англ.). Firefox Support Forum. Mozilla. Дата обращения: 28 октября 2023. Архивировано 27 февраля 2021 года.
  14. video-cmi. WebRTC Network Limiter (англ.). Chrome Web Store. Дата обращения: 28 октября 2023. Архивировано 20 декабря 2018 года.
  15. Antaki, Chris. Disable WebRTC (англ.). Firefox add-ons (18 апреля 2020). — WebRTC leaks your actual IP addresses from behind your VPN, by default. Дата обращения: 28 октября 2023. Архивировано 28 октября 2023 года.
  16. onsip: "Chrome and WebRTC". Дата обращения: 30 марта 2018. Архивировано 30 марта 2018 года.
  17. WebRTC support in Safari 11. Дата обращения: 30 марта 2018. Архивировано 30 марта 2018 года.
  18. Mozilla Wiki: Media/WebRTC. Дата обращения: 30 марта 2018. Архивировано 30 марта 2018 года.
  19. Dev.Opera: "Head Tracking With WebRTC". Дата обращения: 30 марта 2018. Архивировано 13 февраля 2018 года.
  20. WebRTC support in Microsoft Edge browser.
  21. WebRTC Privacy settings in Edge Browser. Дата обращения: 22 июля 2022.
  22. webrtc4all - WebRTC for Safari, Opera, Firefox and IE - Google Project Hosting. Дата обращения: 9 января 2013. Архивировано 12 января 2013 года.
  23. WebRTC Архивировано 3 июня 2013 года. — Rasta Coding
  24. WebRTC Media & Broadcasting Server. Дата обращения: 1 июля 2014. Архивировано 21 октября 2014 года.

Ссылки