Skip to content

Использование протокола WebRTC

WebRTC (Web Real-Time Communications) — это P2P (peer-to-peer) протокол общения между двумя клиентами, регламентирующий двунаправленную безопасную передачу данных в реальном времени.

Давайте разобьём определение на части. P2P (peer-to-peer) значит, что два агента (клиента) взаимодействуют друг с другом напрямую без каких-либо посредников. Двунаправленный указывает на функционирование в двух (противоположных) направлениях. Безопасный значит, что доступ к информации осуществляется через шифрование одним или несколькими протоколами безопасности. Коммуникация в реальном времени говорит о том, что обмен данными происходит без задержек либо с минимальными задержками.

У WebRTC есть множество преимуществ, например:

  • сверхнизкая задержка (менее одной секунды),
  • обязательное шифрование по протоколам DTLS и SRTP,
  • стандарт с открытым исходным кодом,
  • не требует установки программного обеспечения, плагинов и т.д.
  • поддержка адаптивного потокового вещания (ABR).

Попробуйте сами

Как работает WebRTC

Протокол WebRTC используется для обмена данными между браузерами (без установки плагинов или иных расширений) или другими поддерживающими его приложениями по типу "один-к-одному", или "клиент-клиент". Например, для связи двух браузеров по протоколу WebRTC необходимо зайти на один и тот же сайт в интернете.

Однако используя Flussonic как сигнальный сервер между клиентами, вы можете с легкостью организовать и связь "один-ко-многим". Сигнальный сервер — посредник, который позволяет передавать данные о соединении от одного клиента к другому. Следовательно, соединение из "клиент-клиент" превращается в "клиент-сервер-клиент". С помощью него возможно перейти от "один-к-одному" к "один-ко-многим", предоставляя бо́льшую функциональность.

Flussonic как сигнальный сервер WebRTC

Чтобы начать коммуникацию между клиентами, или агентами, по WebRTC, необходимо последовательное успешное выполнение четырёх шагов:

Подробнее об этих шагах читайте в официальном руководстве по созданию приложений, реализующих протокол WebRTC.

Публикация и проигрывание по WebRTC. Стандарты WHIP и WHEP

Долгое время WebRTC не использовался в области вещания и проигрывания потоков, так как у него нет стандартного протокола сигнализации и он слишком сложен для внедрения в инструменты и приложения для вещания. Для решения этой проблемы были разработаны стандарты WHIP (WebRTC-HTTP ingest protocol) и WHEP (WebRTC-HTTP egress protocol). WHIP используется для публикации на Flussonic, а WHEP — для проигрывания с Flussonic.

Эти протоколы предоставляют простой и независимый от медиа-сервера способ проигрывания потоков по WebRTC, который легко интегрировать в существующие инструменты вещания. Процесс согласования WebRTC в WHIP и WHEP сводится к отправке запроса HTTP POST с сообщением SDP и получению от медиа-сервера ответа 200/202 для получения ответного сообщения SDP. При этом WHIP и WHEP сохраняют все преимущества протокола WebRTC.

Flussonic оценивает состояние WHIP и WHEP сессий по полезным данным (payload) следующим образом:

  • Если в течение 30 секунд Flussonic не получает хотя бы одного ICE-запроса на привязку или связывание (binding request) либо сообщения RTCP RR (Receiver Report), то WHEP-сессия (сессия проигрывания) завершается.
  • Если в течение трёх секунд Flussonic не получает хотя бы одного ICE-запроса на привязку или связывание (binding request) либо RTP или RTCP SR (Sender Request) сообщения, то WHIP-сессия (сессия публикации) завершается.

Подробнее о процессе обмена данными для установления соединения между сервером (в нашем случае Flussonic) и клиентским приложением читайте в разделах Overview следующих стандартов:

Читайте также: