Может ли зритель изменять качество входящего видео в webrtc?

Давайте рассмотрим P2P-видеоконференцию с WebRTC, где издатель вещает в HD 1024x768 и зритель присоединяется к этой сессии и хочет просмотреть видео, скажем, 320×240 сохранить пропускную способность.

Чтобы дать анологию, это должно быть похоже на YouTube Quality вариант.

  1. Возможно ли это в WebRTC?
  2. Если да, реализована ли эта функция в любом из ( agora | tokbox | vidyo | twilio)

3 ответа

Возможно ли это в WebRTC?

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

Если случится так, что кому-то уже в этом канале не хватает пропускной способности, модуль MediaOptimization отправителя узнает об этом через отправленный RTCP-приемник и отрегулирует битрейт.

Если да, реализована ли эта функция в любом из (agora | tokbox | vidyo | twilio)

Насколько я знаю, все, что они делали в Интернете, основаны на WebRTC (очевидно, у них есть редкий выбор).

Их собственные SDK могут иметь лучшее качество при переключении разрешения, поскольку они могут использовать такие технологии, как SVC, многопотоковость и так далее.

Я работаю в TokBox.

Что касается реализации этого с OpenTok, то да, это возможно. Мы поддерживаем масштабируемое видео (simulcast) для "маршрутизируемых" сеансов, проходящих через наш SFU. Это означает, что вы можете отправить разрешение HD от издателя, а затем подписчики могут подписаться с разными разрешениями в зависимости от их пропускной способности. Вы также можете указать предпочтительное разрешение, используя API setPreferredResolution, который позволит вам использовать более низкое разрешение, например, если. Вы знаете, что отображаете подписчика только в небольшом размере.

  • Единственный способ изменить разрешение в режиме p2p - это (а) разорвать одноранговое соединение, изменить ограничения для запроса другого разрешения с камеры и установить новое соединение, (б) пересмотреть или (с)) заменить трек на стороне отправителя. (c) обычно предпочтительнее, так как не вызывает нового рукопожатия, которое потенциально может привести к видимым сбоям при изменении разрешения.

  • Хороший способ сделать это - использовать медиа-сервер, который получает несколько разрешений исходного потока и передает только одно в зависимости от пропускной способности приемника. Это может быть достигнуто двумя способами: с помощью кодека SVC, такого как VP9, ​​AV1, .... или, если кодек SVC недоступен, с помощью одновременной передачи, т.е. несколько раз используйте один и тот же простой кодек с разным выходным разрешением. Не каждый браузер поддерживает это сегодня.

  • Большинство поставщиков предоставляют эту опцию, если вы используете их медиа-сервер в цикле. Это будет сделано "из коробки" в их родном SDK, в котором они контролируют весь стек, а поддержка Интернета, в свою очередь, будет зависеть от самой поддержки браузера.

  • Агора на самом деле не использует webrtc.

  • Vidyo является экспертом по кодекам SVC, но заблокирован реализацией браузера. Я не проверял в последнее время.

  • Адам рассказал вам о Tokbox, у которого было достаточно вариантов, доступных уже довольно давно.

  • Я не в курсе о предложении twillio.

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