Начиная со сборки WCS 5.2.1663 и SFU SDK 2.0.231 поддерживается автоматическое переключение между доступными качествами ABR при изменении состояния канала. Выбор качества основывается на следующих параметрах WebRTC статистики проигрывания

Если хотя бы один из этих параметров резко изменился более чем на 10 пунктов, канал считается непригодным для проигрывания текущего качества видео, и будет сделана попытка переключиться на более низкое качество.

Параметры переключения настраиваются при вызове функции initRemoteDisplay() :

code

        // 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 статистики.