Понимание WebRTC

Я тестирую в настоящее время Особенности WebRTC, но у меня есть некоторые мозговые проблемы.

Что такое WebRTC?

Я читаю только "STUN", "P2P" и другие... Но что такое WebRTC правильно в техническом аспекте (см. Далее)

Что мне нужно

Я ищу конкретное решение. Для примера здесь, веб-радио:

Один клиент отправляет данные своего микрофона на сервер, а другие подключенные клиенты будут слышать его. Серверу нужны некоторые функции: только один клиент может поделиться своими данными микрофона с другим. Все остальные клиенты отключены, но другие клиенты могут запросить отправку своих данных в будущем. Закончен ли выбранный клиент, другие могут отправить.

Уточнить, что мне нужно

Нет, я не хочу создавать веб-радио; Я не хочу создавать "петь сервер". Один пользователь может выбрать песню и петь со своим микрофоном. Другие клиенты могут услышать это. Если пользователь закончил свою "песню", другие могут запросить "здесь, я хочу спеть эту песню...".

Можно с WebRTC? В настоящее время я думаю, что нет, потому что я думаю, WebRTC является только решением Peer-2-Peer. Сервер не может обрабатывать прямые аудиоданные, но для моего варианта мне это нужно (я не хочу, чтобы в будущем, после реализации basec, изменился поток данных, чтобы добавить некоторые функции, такие как голосовые эффекты). Я нашел несколько решений с node.js но я нашел только в коде трансляцию пиров для клиентов; Аудиоданные никогда не достигнут сервера.

1 ответ

Решение

WebRTC - это P2P-решение, но это может быть также P2P-соединение от издателя к серверу и множество P2P-соединений от слушателей к серверу. Это именно то, что вам нужно в вашем случае.

Существует 3 основных топологии сети WebRTC:

  • MESH - где каждый участник отправляет и получает медиа для всех остальных участников. Не очень хорошо масштабируется, может масштабироваться до 4-6 участников для видео-сессий максимум или 10 для аудио.
  • SFU - может работать в вашем случае, может поддерживать около 10-15 участников для видео и ~20 для аудио. Самое популярное решение на данный момент и простое в обслуживании.
  • MCU - может поддержать многих участников. Но нужно больше оборудования и сложнее в обслуживании.

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

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

Я могу порекомендовать попробовать Janus WebRTC Gateway, особенно 2 вещи:

Другие вопросы по тегам