Skip to end of metadata
Go to start of metadata

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

  • nackCount
  • freezeCount
  • packetsLost

Если хотя бы один из этих параметров резко изменился более чем на 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);

Здесь:

  • abrKeepOnGoodQuality - интервал в миллисекундах, в течение которого будет проигрываться текущее качество видео без резких скачков параметров WebRTC статистики
  • abrTryForUpperQuality - интервал в миллисекундах, по истечении которого будет предпринята попытка переключиться на более высокое доступное качество видео, если не были резких скачков параметров WebRTC статистики
  • interval - интервал сбора WebRTC  статистики в миллисекундах

Если какое-то качество выбрано вручную, оно будет проигрываться даже при ухудшении параметров WebRTC статистики.


  • No labels