我有一个OpenGL应用程序在我的Linux机器(X11)上运行,大小为800x600。这个应用程序的内容(渲染出来的图像)需要通过网络导出到另一台PC。首先,我想知道是否可以以约30帧每秒的速度对应用程序窗口进行快照,将它们保存为jpeg并通过HTTP或其他方式(类似于IP摄像头的做法)导出到另一台机器。是否可以以快速的方式读取显卡内存(Radeon HD 5800),以便我可以获得大约30张图片每秒的帧率?
如果你愿意容忍一些延迟,像素缓存对象(PBOs)应该可以为你提供一些不错的读取吞吐量。 libjpeg-turbo 看起来是高速 JPEG 编码的好解决方案。如果你没有要监视的应用程序的源代码,那么结合上述方法使用 LD_PRELOAD hacks 应该可以解决问题。