我想运行两个或更多显示器,而我只有一个 GPU 和一个显示器。第二个显示器不必在监视器上显示任何内容,虚拟输出将是理想的。
我使用 startx 开始一个新的显示:
startx -- :1
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,我可以使用 Ctrl+Alt+Fx(其中 x 是一个数字,在我的计算机上它是 7 或 8)在我的计算机上的两个显示器之间切换。
这就是问题所在,当两个显示器都可用并且我当前在显示器 0 上并且我尝试录制显示器 1 时,我在录制的视频中出现黑屏。主要问题似乎是当 tty 不活动时 xserver 没有刷新。
我已经确认录音通过。ffmpg 的 x11grab 或使用 VLC 按预期工作。
除此之外,我尝试过 Xephyr、Xnest 和 Xvfb,虽然它们可以满足我的需求,但我无法使用它们,因为我在显示器 1 中运行的内容对图形的要求非常高(OpenGL),而且我还在此基础上进行录制。
我还尝试将 xserver-xorg-video-dummy 与 Xdummy 脚本一起使用来启动显示,它可以工作,但不能与 OpenGL 应用程序一起使用。
非常感谢对此问题的任何帮助!
我使用 Xephyr 和VirtualGL找到了一个不错的解决方法!
安装 Xephyr 和VirtualGL,然后使用您喜欢的设置启动 Xephyr :
Xephyr -screen 1024x768 :1
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,您现在可以在 Xephyr 中启动具有 OpenGL 加速功能的可执行文件!
DISPLAY=:1 vglrun -- glxgears
Run Code Online (Sandbox Code Playgroud)