WebRTC


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

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

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


Технология:

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

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


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

— Проведение конференции в браузере значительно упрощает процесс проведения конференции — пользователю не нужно устанавливать для этого отдельные приложения;

— Используемые кодеки обеспечивают хорошее качество связи;

— Возможность реализации любых элементов интерфейса средствами HTML5 и JavaScript;

— Открытый исходный код даёт больше возможностей для использования.


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

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

— Обеспечение групповых конференций требует дополнительных разработок поверх WebRTC.


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

Chrome — 23+.

Safari — 11+.

Firefox — 38+.

Opera — 12+.

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

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


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

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


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

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


   Программное обеспечение