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

Что бы вы ни разрабатывали с помощью WebRTC, вы должны знать, что такое сервер WebRTC и для чего он используется. Это очень упрощает вашу работу.

В этом подробном посте мы представим серверы WebRTC и новые концепции, такие как модуль многоточечной конференции (MCU), модуль выборочной пересылки (SFU), транскодирование и одновременную передачу, а также объясним, как использовать бесплатный сервер WebRTC.

Начнем с определения WebRTC и продолжим с вопроса, что такое сервер WebRTC.

Что такое WebRTC?

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

WebRTC совместим с HTML5, и вы можете использовать его для добавления медиа-коммуникаций в реальном времени непосредственно между браузерами и устройствами. И вы можете сделать это без необходимости установки каких-либо предварительных плагинов в браузере. Раньше для достижения функциональности, аналогичной предлагаемой WebRTC, требовались внешние плагины. И Webrtc постепенно поддерживается всеми основными поставщиками современных браузеров, включая Safari, Google Chrome, Firefox, Opera и другие. Благодаря WebRTC мы можем столкнуться с задержкой менее секунды в режиме реального времени при потоковой передаче видео. Давайте узнаем, что такое потоковый сервер WebRTC.

Что такое WebRTC-сервер?

Сервер, который обеспечивает функциональность, необходимую для правильного подключения сеансов WebRTC в облаке или самостоятельного хостинга для обеспечения работы ваших проектов WebRTC, называется «сервером WebRTC».

Типы серверов WebRTC?

Существует 4 типа серверов WebRTC:

  1. Серверы приложений WebRTC
  2. Сигнальные серверы WebRTC
  3. Серверы обхода NAT для WebRTC
  4. Медиасерверы WebRTC

Серверы приложений WebRTC

Серверы приложений Webrtc — это в основном серверы хостинга приложений и веб-сайтов. Да, это все.

Сигнальные серверы WebRTC

Сигнальный сервер WebRTC — это сервер, который управляет соединениями между устройствами. Он не связан с самим медиа-трафиком, его внимание сосредоточено на передаче сигналов. Это включает в себя предоставление одному пользователю возможности найти другого в сети, согласование самого соединения, сброс соединения при необходимости и его закрытие.

Серверы обхода NAT для WebRTC

Обход трансляции сетевых адресов – это метод компьютерной сети для установления и поддержания подключений по интернет-протоколу между шлюзами, реализующими трансляцию сетевых адресов (NAT).

Методы обхода NAT требуются для многих сетевых приложений, таких как одноранговый обмен файлами и передача голоса по IP.

Медиасерверы WebRTC

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

Сегодня многие популярные сервисы WebRTC размещены на серверах AWS, Google Cloud, Microsoft Azure и Digital Ocean. Вы можете встроить свой медиафайл WebRTC в любой WordPress, PHP или другой веб-сайт.

Теперь мы достаточно знаем о сервере WebRTC. Пришло время погрузиться в многосторонние топологии WebRTC.

Многосторонние топологии WebRTC

Сетчатая топология

Сетка — это простейшая топология для многостороннего приложения. В этой топологии каждый участник отправляет и получает мультимедиа от всех других участников. Мы сказали, что это самый простой, потому что это самый простой метод. При этом никаких хитрых работ и центрального блока типа сервера WebRTC.

Сетчатая топология в WebRTC

Плюсы:

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

Минусы:

  • Только ограниченное количество участников (почти 4–6) может подключаться друг к другу.
  • Поскольку каждый участник отправляет медиафайлы друг другу, требуется N-1 восходящих и N-1 нисходящих каналов.

Смешивание топологии и MCU

Микширование — это еще одна топология, в которой каждый участник отправляет свои медиаданные на центральный сервер и получает медиафайлы с центрального сервера. Этот носитель может содержать некоторые или все медиафайлы другого участника. Этот центральный сервер называется MCU.

Совмещение топологии и MCU в WebRTC

Плюсы:

  • На стороне клиента требуется только базовая реализация WebRTC.
  • У каждого участника есть только один восходящий и один нисходящий каналы.

Минусы:

  • Поскольку сервер MCU выполняет декодирование и кодирование мультимедиа каждого участника, ему требуется высокая вычислительная мощность.

Топология маршрутизации и SFU

Маршрутизация — это многосторонняя топология, в которой каждый участник отправляет свои медиаданные на центральный сервер и получает медиаданные всех остальных с центрального сервера. Этот центральный сервер называется SFU.

Топология маршрутизации и SFU в WebRTC

Плюсы:

  • SFU требует меньше вычислительной мощности, чем MCU.
  • Каждый участник имеет один восходящий канал и четыре нисходящих канала.

Минусы:

  • SFU требует более сложного проектирования и реализации на стороне сервера.

Вы можете проверить здесь, чтобы получить больше информации.

Транскодирование

Транскодирование — это процесс декодирования сжатого носителя, изменения чего-либо на нем, а затем повторного кодирования. Изменение — ключевое слово этого процесса. Что можно изменить в СМИ?

Во-первых, вы можете изменить кодек, так как некоторые кодеки совместимы с протоколами или проигрывателями.

Более того, трансрейтинг — это одно из изменений, которое касается скорости передачи данных. Например, изменение битрейта мультимедиа с 600 кбит/с на 300 кбит/с.

Еще одним изменением является транс-размер, который заключается в размере носителя. Например, изменение размера кадра медиафайла с 1280×720 (720p) на 640×480 (480p) является преобразованием размера.

Кроме того, в области обработки видео доступно множество других изменений или процессов фильтрации.

Адаптивный битрейт

Потоковая передача с адаптивным битрейтом — это настройка качества видео в соответствии с качеством сети. Другими словами, если качество сети низкое, сервер снижает битрейт видео. Это необходимо для обеспечения бесперебойной потоковой передачи при некачественном сетевом соединении. Ясно, что разные битрейты потока должны быть доступны, чтобы обеспечить метод адаптивного битрейта. Один из способов иметь разные битрейты потока — трансрейтинг. А именно, сервер выдаёт разные потоки с разным битрейтом от исходного потока. Однако трансрейтинг дорог с точки зрения вычислительной мощности.

Одновременная передача

Одной из альтернатив трансрейтингу для обеспечения адаптивного битрейта является одновременная передача. В этом методе издатель отправляет несколько потоков с разными битрейтами вместо одного потока. Сервер выбирает лучший поток для клиентов, учитывая качество сети.

С изменением и развитием коммуникационных потребностей в мире растет любопытство и интерес к WebRTC и, следовательно, серверам WebRTC.

Что заставило меня написать поделиться?

Я некоторое время работал над стеком WebRTC. Были сумасшедшие взлеты и падения. Для тех, кто меня не знает, я Дипеш Бхоир: парень, который строит несколько эпических стеков.

  • Если вам нужны бесчисленные карты, попробуйте mapwale.com
  • ищете классные палитры, градиенты, узоры, оттенки, попробуйте koirang.com
  • хотите использовать в проекте стандартные иконки, попробуйте iconwho.com

Спасибо за прочтение, удачной жизни.