WebRT C: плохая производительность кодирования для совместного использования экрана через CGDisplayStream (h264 / vp8 / vp9) - PullRequest
0 голосов
/ 01 мая 2020

Я использую целевую инфраструктуру c для WebRT C для создания приложения для разделения экрана. Видео снято с использованием CGDisplayStream. У меня есть рабочая демонстрация, но в разрешении 2580x1080 я получаю только 3-4 кадра в секунду. Мой googAvgEncodeMs составляет около 100-300 мс (в идеале должно быть> 10 мс), что объясняет, почему разделение экрана далеко не является плавным (30fsp +). Я также переключался между кодеками (h264 / vp8 / vp9), но со всеми из них я получаю такой же медленный опыт. Для contentType в webRT C задано значение screen (значения: [screen, realtime]).

Использование ЦП моей мамой c тогда составляет 80-100%. Я предполагаю, что в коде c ++ кодеков, которые я пропустил, есть какая-то серьезная оптимизация (qpMax, Аппаратное ускорение и т. Д. c ...). К сожалению, мои знания о кодеках ограничены.

Также интересно: даже когда я понижаю разрешение до 320x240, googAvgEncodeMs все еще находится в диапазоне 30-60 мс.

Я запускаю это на MacBook Pro 15 дюймов с 2018. При запуске случайный webrt c внутри Chrome / Firefox et c Я получаю более плавные результаты, чем с ванильным webrt c framework.

...