Как записать окно приложения Qt5 с минимальной или нулевой загрузкой ЦП в Windows или Linux?

289
iksemyonov

Я пишу приложение для визуализации в реальном времени, которое работает исключительно на процессоре. Это довольно быстро, но, тем не менее, чем больше ресурсов процессора, тем лучше для интерактивности - в основном, я проектирую его так, чтобы максимально использовать ресурсы процессора. Мне нужно записать демо-версию приложения. Сейчас, в прошлом, я использовал OBS studio на Linux для записи прохождения игры для RTS, и я вспоминаю, что процессор определенно перегружен. Это неприемлемо для моей демонстрации объемного рендерера.

Тем не менее, вопрос заключается в следующем:

При наличии настольного компьютера с графическим процессором NVIDIA GTX 1060 6 Гб, возможно ли записать приложение Qt5, которое не выводится в directx или opengl, используя указанный графический процессор в качестве кодировщика с нулевой загрузкой ЦП? Нужно ли мне модифицировать исходный код, возможно, чтобы использовать какую-то библиотеку, которая позволила бы мне копировать кадровый буфер и кодировать на лету, используя только графический процессор?

Редактировать:

Чтобы было понятнее. Прежде всего, меня интересует приложение, в котором я могу запустить запись окна моей программы, а не библиотеки, в которой я могу использовать свой собственный проект в качестве программиста (то есть через его API). Но если есть способ решить проблему последним способом, это тоже будет хорошо.

1
Я полагаю, что это должно происходить в стеке, поскольку это по сути вопрос программирования. djsmiley2k 7 лет назад 0
@ djsmiley2k в первую очередь меня интересуют автономные приложения для записи, которые избегают перегрузки ЦП, например, основанные на NVIDIA ShadowPlay. iksemyonov 7 лет назад 0
Хорошо, я убрал свой флаг после правок. djsmiley2k 7 лет назад 0
@ djsmiley2k TY для корректуры! iksemyonov 7 лет назад 0
Если вся запись не помещается в память, я не вижу, как можно полностью избежать нагрузки на процессор, необходимой для доступа к файловой системе. Есть ускоренные блиты из памяти кадрового буфера в основную память, которые не используют ЦП (хотя они и используют шину), но ЦП потребуется экономия. И я не знаю ни одного готового приложения, которое делает это. dirkt 7 лет назад 0
@dirkt А как насчет "игры теней" от NVIDIA, которая предназначена для устранения нагрузки на процессор? iksemyonov 7 лет назад 0
Я не сомневаюсь, что Shadowplay устраняет * некоторые * нагрузку на процессор, но я был бы очень удивлен, если бы он обошел ОС и неожиданно начал получать доступ к дискам из GPU. Я верю этому, когда увижу это (вы можете продемонстрировать это мне), потому что с этим (слаженность) очень много проблем, и я также немедленно удалил бы любые карты NVidida, которые я нашел с моих машин - это огромная дыра в безопасности. dirkt 7 лет назад 0
Карты видеозахвата - тоже самое (PCI-E на диск)? iksemyonov 7 лет назад 0

0 ответов на вопрос