...
Для получения оптимального качества картинки с учетом пропускной способности канала при захвате 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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
webrtc_cc2_twcc=true |
Ограничение битрейта для TWCC можно настроить только на стороне браузера, в кбит/с
Code Block | ||||
---|---|---|---|---|
| ||||
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
Симптомы: при настройке
...