Афоризм
Вы мне хотели жизнь испортить? Спасибо, справилась сама.
Последние статьи

 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Пример MVVM
Пример использования MVVM в Android
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Пример TreeTable
Пример использования TreeTable
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • Визуальные компоненты
Улучшен компонент выбора даты из календаря
 • Анимация jQuery
Описание и примеры анимации элементов DOM
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Технология WebRTC

Содержание

Введение открыть
Пример включения камеры и захвата видеокадра открыть
Пример обмена данными с помошью RTCDataChannel открыть

Введение

WebRTC (Web Real Time Communication) – это открытый стандарт мультимедийной связи между пользователями, реализованный непосредственно в браузере. Поскольку WebRTC интегририруется в браузер, то пользователю не нужно устанавливать дополнительные программы, надстройки и расширения. На уровне API технология WebRTC стандартизирована консорциумом W3C, а на протокольном уровне – сообществом IETF.

WebRTC позволяет организовывать коммуникации в реальном времени без использования дополнительных плагинов при помощи API на основе Javascript. WebRTC состоит из нескольких взаимосвязанных программных интерфейсов (API) и протоколов, которые работают вместе, и поддерживает видеокодек VP9 (Video Compression Format or Video Compression Specification) – это спецификация для кодирования и декодирования высококачественного видео, являющегося файлом или цифровым потоком для просмотра изображения.

Достоинство технологии WebRTC

Скорость
WebRTC позволяет легко встраиваться в WEB-страницы и устанавливать соединение пользователей через Интернет. Больше не нужно специалистам маршрутизировать соединение через сервер, что снижает задержку и расширяет полосу пропускания. Кроме этого, не требуется дополнительное программное обеспечения, плагины : прямое общение повышает скорость передачи данных и обмена файлами.

Совместимость реализаций
Технология WebRTC поддерживается такими популярными браузерами, как Google Chrome, Microsoft Edge, Mozilla Firefox, Safari, Opera. Кроме этого, данная технология поддерживается также Android, Chrome OS, Firefox OS, BlackBerry 10, iOS, Tizen.

Большое количество провайдеров WebRTC, включая и их разработчиков, неизбежно могут внести незначительные отличия в реализацию данной технологии. И поскольку в каждом браузере имеется различный уровень поддержки кодеков и функций WebRTC, то Google настоятельно рекомендует использовать библиотеку adapter.js. В примере использования интерфейса RTCDataChannel (API WebRTC) для обмена данными между пользователями демонстрируется включение adapter.js в контент страницы.

Быстрая реализация
WebRTC позволяет снизить усилия и сократить время разработки для реализации однорангового соединения P2P. Все функциональные возможности могут быть реализованы в клиентской части. Разработчикам просто необходимо использовать WebRTC-совместимый браузер. Представленные на странице примеры позволяют проверить совместимость используемого Вами браузера с технологией WebRTC.

Безопасное соединение
Обязательной функцией всех компонентов WebRTC является шифрование. Поскольку WebRTC не плагин, а интегрированная в браузер технология, то никакие вредоносные программы не могут проникнуть в созданную разработчиками систему. Дополнительным бонусом использования WebRTC является отсутствие необходимости контроля обновлений; вместе с обновлением браузера Вы получаете обновленную версию WebRTC.

Видеокодек VP9

Одно из преимуществ использования WebRTC связано с потоковым видео. Поскольку «живое» видео получает всё бо́льшее распространение и начинает приобретать бо́лее высокое качество, то для него требуется более быстрая передача данных и меньший размер пакета.

Видеокодек VP9, являющийся улучшением VP8, представляет собой формат сжатия и распаковки аудио и/или видео, и способствует распространению потокового видео. VP9 позволяет использовать WebRTC для потоковой передачи видео без потери пакетов или задержки, а также может поддерживать видеовызов при той же полосе пропускания и помогает сократить количество плохих соединений. Данный видекодек позволяет скрыть потерю пакетов и очистить зашумленные изображения, а также обеспечивает возможность захвата видеокадра и воспроизведения на нескольких платформах.

Кандидаты ICE

Каналы связи между узлами определяются разными параметрами. А поскольку условия сети могут варьироваться в зависимости от ряда факторов, то прежде чем два одноранговых узла установят канал связи с помощью WebRTC, им необходимо обменяться информацией о подключении. Для обнаружения возможных «кандидатов» на подключение к одноранговому узлу обычно используется внешний сервис, называемый ICE (Internet Connectivity Establishment).

Сервис ICE использует либо сервер STUN, либо TURN. В большинстве приложений WebRTC использует TURN (Traversal Using Relay NAT) - это более продвинутое решение, которое включает протоколы STUN (Session Traversal Utilities for NAT). Аббревиатура NAT расшифровывается как Network Address Translation.

ICE-кандидаты бывают трех типов : host, srflx и relay. Тип host содержит локальную информацию, srflx включает информацию для внешнего сервера STUN, а relay включает информацию для проксирования трафика через сервер TURN. Если узел находится за NAT’ом, то host-кандидаты с локальными адресами будут бесполезны, кандидаты srflx можно будет использовать только при определенных видах NAT. И только relay могут позволить пропустить трафик через промежуточный сервер.

Формат определения серверов STUN/TURN может быть представлен следующим образом :


var servers = { 
   "iceServers" : [
      { 
        "url": "stun:stun.stunprotocol.org:3478" 
      },{
        "url": "turn:user@host:port", 
        "credential": "password"
      }
    ]
};
 

В интернете много публичных STUN-серверов. Публичных же TURN-серверов практически нет, поскольку они пропускают через себя медиапотоки и значительно загружают сетевой канал, и сам сервер.

Сетевой протокол SDP

SDP (Session Description Protocol) — это сетевой протокол прикладного уровня, используемый для описания сессии передачи потоковых данных. Согласно SDP может быть реализовано несколько потоков данных : аудио, видео, данные, управление и приложения (поточные), сходные с MIME типами электронной почты в Интернет-адресах. В сообщение SDP может быть указано :

  • адреса места назначения;
  • номера UDP портов для отправителя и получателя;
  • медиа-форматы (например кодеки), которые могут быть использованы во время сессии;
  • время старта и остановки.
  Рейтинг@Mail.ru