VNC无法与视频流相媲美。在视频流中,您通常通过网络传输预压缩的视频流。对于HD流,它通常是H.264编码的。
如果您使用VNC,那么您的主机必须先拍摄屏幕快照并压缩它们,然后再将它们发送到网络。这里有几个限制:
- 强大的压缩需要大量的CPU能力。例如,在H.264中以高质量编码90分钟的电影通常需要在我的Athlon X2 4450e服务器上超过4小时的压缩时间。通常,这种强大的压缩不适合远程控制等实时应用。
- 反过来强度较低的压缩将需要更多的网络带宽,这可能成为互联网等低带宽连接的问题。
嗯,有一些“技巧”,由视频编解码器和远程控制和屏幕共享实用程序应用。首先,他们尝试检测屏幕更改并仅传输更改的(压缩)图像。这通常可以节省大量的带宽和处理能力。然而,对于全屏视频传输,它并没有太大帮助,因为整个屏幕必须经常重新传输。
如上所述,当前的机器可能无法以全高清重新编码您的屏幕内容并将其流式传输到远程控制应用程序,因为您的主机必须解码视频内容,然后在发送之前重新编码原始图像他们到网络。在解码全高清视频内容时,一些较旧的双核机器甚至处于极限。甚至没有谈到在将它们发送到VNC客户端之前必须再次对屏幕上的全高清图像进行重新编码。
要提高VNC远程控制速度,您可以执行以下操作:
- 大多数VNC服务器/客户端支持多种压缩算法。其中一些针对小带宽进行了优化,一些针对良好的图像质量进行了优化,一些针对低延迟进这触及了遥控器的另一个方面。由于服务是交互式延迟问题(您不希望在编码5分钟后看到对鼠标单击的反应)。
- 尝试减少主机上的屏幕更改量。例如,尝试禁用Windows桌面效果,动画等。这样可以保存bandwitdth,因为只有屏幕的更改部分通过网络传输。
- 尝试在透明度上禁用主机上的其他视觉效果。 Vista / Win7使用的透明Windows降低了图像的“可压缩性”。单色/“平面”区域的压缩效果要比鲜艳的色彩和精致的细节更有效。因此,禁用Aero透明度和桌面效果确实可以加快远程控制体验。大多数远程控制工具甚至允许在连接上自动禁用此类效果(例如Microsoft RDP和一些VNC实现)。
- 同样适用于背景图片。尝试使用单色背景设置而不是高清图片。
VNC的另一个问题是它必须检测屏幕上的变化。一些VNC实现做“哑”屏幕截图并将它们与之前的屏幕截图进行比较以检测变化。这已经占据了很大的力量。
一些更高级的实现使用特殊的显示驱动程序(检查UltraVNC),这些驱动程序在这里效率更高,但需要安装特殊的驱动程序。
当然,如果您在主机上播放视频,这一切都无济于事。在这种情况下,VNC必须每秒重新编码~30个全屏图像并通过网络发送。在大多数可由今天的CPU实时执行的压缩中,这样的流将采用> 8Mbps带宽。所以它不适合大多数互联网连接(特别是考虑到上行速度通常低于1Mbps的非对称DSL连接,是的,主机端的上传速度很重要)。
它可能适合LAN使用,但在这里您可能应该考虑使用DLNA / UPnP媒体服务器设置媒体服务器或共享媒体(即使Win7媒体播放器也可以这样做)。然后使用DLNA客户端播放共享媒体。