Управление ключевыми кадрами при захвате WebRTC в браузере¶
В некоторых случаях, браузеры могут присылать ключевые кадры (K-фреймы или I-фреймы) крайне неравномерно, что приводит к фризам при воспроизведении потока. Для того, чтобы ключевые кадры высылались с заданной периодичностью, служит настройка
В этом случае WCS периодически заставляет браузер высылать ключевые кадры, высылая PLI-запросы. Периодичность задается настройкой в миллисекундах
По умолчанию, периодичность составляет 5 секунд.
Для того, чтобы предотвратить излишние посылки PLI-запросов, в сборке 5.2.561 добавлена настройка, которая задает минимальный интервал посылки PLI-запроса в миллисекундах
По умолчанию, минимальный интервал посылки PLI составляет 1 секунду. Для того, чтобы получать ключевые кадры наиболее стабильно, рекомендуется выставлять данную настройку равной periodic_fir_request
, например
Особенности посылки ключевых кадров браузерами на основе Chromium¶
В некоторых сборках Chromium и основанных на них браузерах, например Chrome 80, при включенном аппаратном ускорении ключевые кадры высылаются с постоянной периодичностью в зависимости от разрешения публикации:
- ниже 720p - 2 секунды
- 720p и выше - 1 секунда
При публикации FullHD и 4K потоков размер ключевых кадров достаточно велик, чтобы при большом их количестве снизить пропускную способность канала, что ведет к фризам в публикуемом потоке. В этом случае необходимо отключить аппаратное ускорение в браузере
и настроить необходимую периодичность запросов ключевых кадров вручную. Например, для 4K потоков рекомендуется периодичность не выше 3-5 секунд.