如何将窗口(显示)转发到网络上的另一台计算机

n0p*_*0pe 4 xorg media vlc xforwarding

我正在为我的电影设置媒体服务器。服务器已联网,几台笔记本电脑/台式机也是如此。服务器正在运行最新的 Ubuntu(桌面版,而不是服务器)。

这是我试图实现的场景:

  • 服务器已开启并已连接到网络
  • 客户端(我的笔记本电脑)打开一个到服务器的 Web 界面(或者只是通过 ssh 向它发送一个命令)。我通过网络界面选择我想要的电影,我的界面执行一个命令。
  • 该命令生成一个 VLC 实例,播放指定的电影并将窗口(只是窗口)转发到请求它的计算机。
  • 最终结果:我的笔记本电脑上有一个 VLC 窗口,可以为我播放电影。完成后我可以关闭它。

是否有可能像这样只将一个窗口转发给网络上的客户端?

Ale*_*ios 5

这是可能的,但可能并不理想。VLC 客户端(窗口)将显示在您想要的任何显示器上,但它将播放未压缩的视频,必须作为联网的 X 请求发送。即使没有任何开销,以 24 bpp 和 30 fps 发送 720×540 也需要大约 279 Mbps(720px × 540px × 3 字节/像素 × 30 fps × 8 位/字节)。

以太网帧、TCP/IP 数据包和 X 协议本身会更加膨胀。

更违反直觉的是,由于您正在显示经过后处理的 RGB 数据,因此窗口越大,您需要的带宽就越多。(加一点盐,实际缩放可能发生在显示端——在这种情况下,减小窗口大小不会对性能产生任何影响)

当 VLC(或任何其他 X 客户端)在 上的显示器上显示时localhost,会启动一系列巨大的优化,为您提供预期的响应能力。

如果你愿意,你可以自己尝试一下(看到它的实际效果非常有趣):

ssh -Yf user@hostname vlc some-file.avi
Run Code Online (Sandbox Code Playgroud)

VLC 启动,但是:音频在 X 客户端的主机(hostname上面)上播放,而不是在 X 服务器的主机上,并且视频以预期 fps 的一小部分更新。进入流几秒钟,视频和音频就完全不同步了。大多数标准流都无法观看。甚至不要考虑高清 A/V 流。

标准媒体服务器设置使用某种形式的网络文件访问协议(例如 NFS、CIFS)将压缩流从服务器传送到客户端,并让视频客户端进行解压缩和播放。