evilSnobu Asked: 2018-09-12 23:48:19 +0800 CST2018-09-12 23:48:19 +0800 CST 2018-09-12 23:48:19 +0800 CST X11Forwarding 有丢帧选项吗? 772 我正在通过 X11Forwarding 在无头远程 VM(Ubuntu 16.04)上运行计算机视觉模型,并使用好的 ol' Putty 和 Xming 作为我的 Windows X 服务器。 一切都很好,但是如果客户端-服务器带宽跟不上,似乎没有丢帧,这意味着我的应用程序变慢了,如果带宽足够的话,它每秒只能渲染几帧,而它可以渲染数百帧。 X11 转发中是否有内置强制帧丢弃选项,如果有,我如何打开它? x11 xming 3 个回答 Voted Best Answer Stephen Kitt 2018-09-13T00:17:37+08:002018-09-13T00:17:37+08:00 对于这种用例,我强烈推荐Xpra :它不仅提供断开和重新连接到远程主机上运行的 X 应用程序的能力,还支持各种图像编码,以在不同情况下提供体面的体验,可以加速 OpenGL 应用程序并在客户端使用 OpenGL 以获得更好的性能。 它有一个原生的 Windows 客户端,所以它应该很容易设置。您还需要在远程 VM 上安装它,但这就像apt install xpra在 Ubuntu 上一样简单。 Daniele Santi 2018-09-12T23:56:42+08:002018-09-12T23:56:42+08:00 根据这个相关问题,看起来X11Forwarding 不是图形集成应用程序的最佳选择,因为 X11 协议的设计并未考虑位图绘制性能。 它基本上将绘图指令发送到网络,如果我们谈论的是带有文本的几个窗口,这“一切都很好”,但对于每帧更改数百万像素来说,这显然是过度的,特别是当网络遇到高延迟/抖动/数据包时失利。 正如上述问题的答案中所建议的那样,您可以尝试x2go 看看它是否符合您的需求。 根据评论编辑 如果x2go不行,你可以试试VNC哪个看起来有丢帧功能。例如,我x11vnc用于从远程连接到我的桌面,该远程连接与x11vnc -display :0 -auth .Xauthority我的显示器挂钩。 不知道它是否可以使用,Xming但您可以尝试一下。 Rui F Ribeiro 2018-09-13T00:24:54+08:002018-09-13T00:24:54+08:00 纯 X11 协议本身并不能很好地保证传输,尤其是 SSH。 我推荐NoMachine。它可以做带宽压缩和网络优化。它还有适用于 Mac、Windows 和 Linux 的客户端。 PS。NoMachine 有免费和付费版本。我一直用免费的。 见NoMachine 对于虚拟桌面(案例 a),默认启用 X11 矢量图形模式(以前称为“轻量级”模式)。这种方法通过压缩技术、往返抑制和缓存算法来优化 X11 协议,从而减少客户端和服务器上的带宽使用(以及硬件要求,因为 CPU 密集度较低)。 X11矢量图形模式方便避免图像质量损失,在处理传统GUI或大量文本时很有用,但不建议用于多媒体内容或具有许多图形效果的应用程序。 更多关于X11矢量图形模式: https ://www.nomachine.com/AR02L00779 对于连接到物理桌面或当虚拟桌面禁用 X11 矢量图形模式时(案例 b)NoMachine 使用基于标准编解码器的视频和图像编码的组合以及 NoMachine 自身开发的许多技术来实现显示协议。 它还实现了网络自适应显示质量技术。这意味着 NoMachine 在检测到网络拥塞时会自动尝试降低显示质量。此机制的目的是在所有不同的网络条件下保持会话响应。 更多关于找到最适合多媒体播放的配置: https://www.nomachine.com/AR01M00832
对于这种用例,我强烈推荐Xpra :它不仅提供断开和重新连接到远程主机上运行的 X 应用程序的能力,还支持各种图像编码,以在不同情况下提供体面的体验,可以加速 OpenGL 应用程序并在客户端使用 OpenGL 以获得更好的性能。
它有一个原生的 Windows 客户端,所以它应该很容易设置。您还需要在远程 VM 上安装它,但这就像
apt install xpra
在 Ubuntu 上一样简单。根据这个相关问题,看起来
X11Forwarding
不是图形集成应用程序的最佳选择,因为 X11 协议的设计并未考虑位图绘制性能。它基本上将绘图指令发送到网络,如果我们谈论的是带有文本的几个窗口,这“一切都很好”,但对于每帧更改数百万像素来说,这显然是过度的,特别是当网络遇到高延迟/抖动/数据包时失利。
正如上述问题的答案中所建议的那样,您可以尝试x2go 看看它是否符合您的需求。
根据评论编辑
如果
x2go
不行,你可以试试VNC
哪个看起来有丢帧功能。例如,我x11vnc
用于从远程连接到我的桌面,该远程连接与x11vnc -display :0 -auth .Xauthority
我的显示器挂钩。不知道它是否可以使用,
Xming
但您可以尝试一下。纯 X11 协议本身并不能很好地保证传输,尤其是 SSH。
我推荐NoMachine。它可以做带宽压缩和网络优化。它还有适用于 Mac、Windows 和 Linux 的客户端。
PS。NoMachine 有免费和付费版本。我一直用免费的。
见NoMachine