Я использую целевую инфраструктуру 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.