映画用のメディアサーバーをセットアップしています。サーバーはネットワーク化されており、ラップトップ/デスクトップもネットワーク化されています。サーバーは最新のUbuntu(サーバーではなくデスクトップエディション)を実行しています。
これは私が達成しようとしているシナリオです:
そのようなネットワーク上のクライアントにウィンドウだけを転送することは可能ですか?
可能性ありですが、おそらく望ましくありません。 VLCクライアント(ウィンドウ)は任意のディスプレイに表示されますが、再生されます非圧縮ビデオ。ネットワーク化されたXリクエストとして送信する必要があります。オーバーヘッドがない場合でも、24bppおよび30fpsで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
)で再生され、not Xサーバーのホストで再生され、ビデオは予想されるfpsの何分の1かで更新されます。ストリームの数秒後、ビデオとオーディオが絶望的に非同期になります。ほとんどの標準ストリームは監視できません。 HD A/Vストリームについても考えないでください。
標準のメディアサーバーセットアップは、何らかの形式のネットワークファイルアクセスプロトコル(NFS、CIFSなど)を使用してサーバーからクライアントにcompressedストリームを配信し、ビデオクライアントに解凍と再生を実行させます。