2

我正在研究将桌面图像从 Mac OS X 计算机实时流式传输到 iOS 设备的项目。我的主要问题是屏幕截图我不允许使用现成的库,这些库允许在 5 分钟内编写一些代码行并在世界范围内流式传输视频。我在 GitHub 上发现了一个非常好的东西,它使用 X11 和 C++ 获取整个屏幕的图像:

https://github.com/Butataki/cpp-x11-make-screenshot

我已经在我的 Ubuntu 上测试了这段代码,一切都像一个魅力:捕获 1 帧而不保存数据大约需要 12 毫秒,编码为 .jpg 并保存在磁盘上大约需要 25 毫秒。

为了能够构建它,我已经这样做了:

$ sudo apt install libjpeg-dev libpng-dev libx11-dev

,在这些行中将“true”更改为“TRUE”:

//(screenshot.cpp : 232,233 lines)
jpeg_set_quality (&cinfo, quality, TRUE);
jpeg_start_compress(&cinfo, TRUE);

Z_BEST_COMPRESSION改为PNG_Z_DEFAULT_COMPRESSION

问题是我在我的 XCode(Mac OS Mojave 10.14)中做了几乎相同的操作,下载并链接了所有必要的库,运行可执行文件,最后......我得到了一个空白图像。没有发生错误,一切正常,并将 .jpg 图像保存在我桌面上的文件夹中。

然后我发现 X11 有一个叫做“根窗口”的东西,它覆盖了所有的桌面,你可以找到这个窗口并捕获屏幕上的所有内容。但我认为这适用于 Ubuntu,而不是我的 Mac。

实际上,本文中有一些关于“根窗口”的内容,但我无法解决任何问题: https ://finkers.wordpress.com/running-x11/#intro.rootless

PS如果这不是一个好方法,也许还有其他方法可以完成我的任务(Mac OS 上的实时截屏)?

4

0 回答 0