WebRTC

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Fractalone (обсуждение | вклад) в 10:16, 30 марта 2018. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
WebRTC
Логотип программы WebRTC
Тип Real-time communication
Автор Global IP Solutions
Разработчик Google
Репозиторий github.com/w3c/webrtc-pc
Лицензия Лицензия BSD
Сайт webrtc.org
Логотип Викисклада Медиафайлы на Викискладе

WebRTC (англ. 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][7].

Технология

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

В WebRTC используются два аудиокодека, G711 и OPUS, а также видеокодеки VP8 и H.264.[9][10]

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

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

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

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

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

Chrome Safari Firefox Opera
23+[14] 11+[15] 40+[16] 12+[17]

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

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

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

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

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 терминалов.[20][21]

См. также

Примечания

Ссылки