Начиная со сборки WCS 5.2.1663 и SFU SDK 2.0.231 поддерживается автоматическое переключение между доступными качествами ABR при изменении состояния канала. Выбор качества основывается на следующих параметрах WebRTC статистики проигрывания
Если хотя бы один из этих параметров резко изменился более чем на 10 пунктов, канал считается непригодным для проигрывания текущего качества видео, и будет сделана попытка переключиться на более низкое качество.
Параметры переключения настраиваются при вызове функции initRemoteDisplay()
:
// Create remote display item to show remote streams const displayOptions = { quality:true, autoAbr: true }; const abrOptions = { thresholds: [ {parameter: "nackCount", maxLeap: 10}, {parameter: "freezeCount", maxLeap: 10}, {parameter: "packetsLost", maxLeap: 10} ], abrKeepOnGoodQuality: ABR_KEEP_ON_QUALITY, abrTryForUpperQuality: ABR_TRY_UPPER_QUALITY, interval: ABR_QUALITY_CHECK_PERIOD }; const display = initRemoteDisplay( state.room, document.getElementById("remoteVideo"), displayOptions, abrOptions, createDefaultMeetingController, createDefaultMeetingModel, createDefaultMeetingView, oneToOneParticipantFactory(remoteTrackProvider(state.room)) ); state.setDisplay(display); // Start WebRTC negotiation await state.room.join(state.pc, null, null, 1); |
Здесь:
Если какое-то качество выбрано вручную, оно будет проигрываться даже при ухудшении параметров WebRTC статистики.