Есть ли способ (пусть даже хакерский и работающий только в 1-2 основных браузерах) повлиять на интервал ключевых кадров для MediaRecorder()?

Я создаю приложение в соответствии с этим:

MediaSource произвольно останавливает видео

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

поэтому я ищу способ заставить ключевой кадр на MediaRecorder делать это либо регулярно через короткие промежутки времени, либо всякий раз, когда подключается новый зритель. в webrtc я могу запросить ключевой кадр у получателя, но как насчет MediaRecorder()?

Официально никак. Существуют ли какие-либо хакерские / неофициальные способы (например, установка очень высокого битрейта или любой другой способ обмануть браузер, заставив его поверить в то, что желателен низкий, 20-100 кадров, интервал между ключевыми кадрами)?

Я использую VP8. В H264 интервал между ключевыми кадрами по умолчанию достаточно низкий, но есть и другие проблемы.


person Alexander Novikov    schedule 19.07.2021    source источник
comment
Не то, что я знаю о. Вы изучали API веб-кодеков?   -  person Brad    schedule 20.07.2021