Xorg

如何將視窗(顯示)轉發到網路上的另一台電腦

  • June 3, 2012

我正在為我的電影設置媒體伺服器。伺服器是聯網的,幾台筆記型電腦/台式機也是聯網的。伺服器正在執行最新的 Ubuntu(桌面版,而不是伺服器)。

這是我試圖實現的場景:

  • 伺服器已打開並已連接到網路
  • 客戶端(我的筆記型電腦)打開一個到伺服器的 Web 界面(或者只是通過 ssh 向它發送一個命令)。我通過網路界面選擇我想要的電影,我的界面執行一個命令。
  • 該命令生成一個播放指定電影的 VLC 實例,並將視窗(只是視窗)轉發到請求它的電腦。
  • 最終結果:我的筆記型電腦上有一個 VLC 視窗,可以為我播放電影。完成後我可以關閉它。

是否有可能只將一個視窗轉發給網路上的客戶端?

這是可能的,但可能是不可取的。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

VLC 啟動,但是:音頻在 X 客戶端的主機(hostname上圖)上播放,而不是X 伺服器的主機,並且影片以預期 fps 的一小部分更新。進入流媒體幾秒鐘後,影片和音頻無法同步。大多數標準流是無法觀看的。甚至不要考慮高畫質 A/V 流。

標準媒體伺服器設置使用某種形式的網路文件訪問協議(例如 NFS、CIFS)將壓縮流從伺服器傳送到客戶端,並讓影片客戶端進行解壓縮和播放。

引用自:https://unix.stackexchange.com/questions/39925