Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Для получения оптимального качества картинки с учетом пропускной способности канала при захвате WebRTC потока в браузере необходимо управлять битрейтом видео. Для этого в WCS предусмотрена возможность ограничения минимального и максимального битрейта видео в публикуемом потоке. Битрейт аудио не регулируется.

В сборках сервера до 5.2.1825 для управления битрейтом используется REMB. Начиная со сборки 5.2.1825 по умолчанию включен TWCC.

Поддерживаемые платформы и браузеры


Chrome

Firefox

Safari 11

Edge

Windows

+

+


+

Mac OS

+

+

+


Android

+

+



iOS

-

-

+


Настройки

REMB

Начиная со сборки 5.2.1825 поддержка REMB включается настройкой

Code Block
themeRDark
webrtc_cc2_twcc=false

Для ограничения битрейта предназначены следующие настройки WCS:

...

Эти настройки работают в основных современных браузерах и задают границы управления битрейтом при помощи REMB.

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

Если задан maxBitrate, WCS сервер, при достижении указанной планки, будет отправлять браузеру REMB-команду снизить битрейт.
Если задан minBitrate, WCS сервер, при достижении указанной планки, перестанет отправлять браузеру REMB-команды снижения битрейта.
Таким образом, настройки обозначают три диапазона, в каждом из которых WCS сервер управляет битрейтом:

ДиапазонУправление
1[0, minBitrate]

WCS сервер прекращает управление битрейтом и не отправляет REMB сообщений

2[minBitrate, maxBitrate]

WCS сервер осуществляет активное управление битрейтом: в зависимости от джиттера и равномерности входящего трафика, WCS принимает решение об отправке REMB команд для снижения битрейта. Если с каналом все хорошо, WCS ничего не делает и битрейт не снижается.

3[maxBitrate, ...] 

В этом диапазоне WCS сервер постоянно посылает команды на снижение битрейта до maxBitrate

TWCC

Начиная со сборки 5.2.1825, TWCC включен по умолчанию

Code Block
themeRDark
webrtc_cc2_twcc=true

Ограничение битрейта для TWCC можно настроить только на стороне браузера, в кбит/с

Code Block
languagejs
themeRDark
constraints.video.minBitrate=500
constraints.video.maxBitrate=1000

Настройки битрейта для TWCC работают в Android SDK 1.1.0.62, iOS SDK 2.6.122 и WebSDK 2.0.239.

Как форсировать повышение битрейта

...

Эти настройки предназначены для Chromium-based браузеров. Также применяются при использовании iOS Safari 12 и выше.

В Firefox  форсирование битрейта не работает.

...

Форсирование повышения битрейта необходимо при публикации HD и 4K потоков. В этом случае рекомендуется использовать для публикации браузер Chrome.

Известные проблемы

1.  В последних В некоторых версиях (например, Chrome 75) браузер при публикации WebRTC H264 потока прижимает битрейт к нижней границе xгранице x-google-min-bitrate

Симптомы: при настройке

...