我想知道是否有一个工具(或工具集)来记录从服务器收到的每条 X11 消息,以便在电影中进行后期渲染。我认为这对于创建屏幕广播非常有用:理论上,它应该完美地再现捕获,并且一旦序列化到流,它应该比经典视频占用更少的内存(我只是假设它)。
有人知道吗?
答案1
如果您想要记录 X 服务器的输出(即最终帧缓冲区中)发生的情况,您可以尝试ffmpeg
- 它的手册页有一个示例:
ffmpeg -f x11grab -s cif -r 25 -i :0.0 /tmp/out.mpg
请注意,X 协议有所不同 - 消息几乎一直在客户端和服务器之间传递,并且它们不一定必须携带任何图形信息(它们可以与输入事件、损坏事件有关 - 即客户端窗口的一部分)被揭露等)。
答案2
看一下rfbproxy
。这允许您将整个屏幕会话(不是 X11 窗口)捕获到文件中。它仅在屏幕发生变化时才记录图像,因此这是非常有效的。生成的文件也可以随后进行压缩。