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