パフォーマンス – なぜWindowsのVNCはそんなに遅いのですか?

performance video-streaming vnc windows-7

テストでは、友人のコンピュータからネットワークを介してフルHD映画をストリーミングすることができましたが、何の問題もありませんでした。それは私が望むことができたのと同じくらい速いです

しかし、VNCは痛いほど遅い。Real VNCとTight VNCを試してみましたが、Capture Methodの設定を弄ってみましたが、何の効果もありませんでした

誰もがVNCを使用するためのヒント、速度を向上させる方法、またはおそらく何か代替品を持っていますか?

画面の無効化された部分にすぐに気づくことができないという性質なのか、それともネットワークの関係で遅くなっているのか

二人ともWindows7を使っています

ホストをロックアウトせずにお互いのPCを見てコントロールできるようにしないといけないので、RDPは(よほどの人が知らない限り)機能しません

  32  Josh Comley  2011-05-18


ベストアンサー

VNCは非常に効率が悪い。VNCは、一連のスクリーンショットを撮影して圧縮し、ネットワークに流し込むことで、ほとんどの機能を発揮します

Windowsでは、RDPを使えばパフォーマンスは向上しますが、適切なRDPを行うためには、サーバ/ソース側にプロ以上の能力が必要だと思います

wierdly リモートアシスタンス あなたのニーズに合わせてうまくいくかもしれません

EDIT: 4年後、私はnomachineを同様のタスクのために使用しています – OSをまたいで動作し、他のいくつかの有用なことを行います

33  Journeyman Geek  2011-05-18


VNCはビデオストリーミングとは比較になりません。ビデオストリーミングでは、通常、ネットワークを介して事前に圧縮されたビデオストリームを転送します。HD ストリームの場合は、多くの場合 H.264 エンコードされています。VNCを使用する場合、ホストコンピュータはネットワークに送信する前に画面のスナップショットを撮影して圧縮しなければなりません。ここにはいくつかの制約があります

  • 強力な圧縮には多くのCPUパワーが必要です。例えば、90分のムービーをH.264で高画質にエンコードすると、私のAthlon X2 4450eサーバーでは4時間以上の圧縮時間がかかることがよくあります。通常、このような強力な圧縮は、リモートコントロールのようなリアルタイムアプリケーションには不向きです
  • 圧縮強度が低いと、インターネットのような低帯域幅接続で問題になる可能性のあるネットワーク帯域幅が必要になります

さて、ビデオコーデックやリモートコントロールや画面共有ユーティリティによって適用されるいくつかの「トリック」があります。まず第一に、彼らは画面の変更を検出し、変更のみの(圧縮された)イメージを転送しようとします。これは通常、バンド幅と処理能力の多くを節約します。しかし、フルスクリーンのビデオ転送では、画面全体を頻繁に再転送しなければならないので、あまり役に立ちません。上に書いたように、現在のマシンは、ホストがビデオコンテンツをデコードし、ネットワークに送信する前に生の画像を再エンコードする必要があるため、画面コンテンツをフルHDでエンコードし、リモートコントロールアプリケーションにストリームすることはおそらくできません。一部の古いデュアルコアのマシンでは、フルHDのビデオコンテンツをデコードする際に限界があります。VNCクライアントに送信する前に、画面上のFull-HD画像を再エンコードする必要があることは言うまでもありません

VNCリモートコントロールの速度を向上させるには、次のようにします

  • ほとんどのVNCサーバ/クライアントは複数の圧縮アルゴリズムをサポートしています。それらの中には、小帯域幅用に最適化されているものもあれば、高画質用に最適化されているものもあれば、低遅延用に最適化されているものもあります。これはリモートコントロールの別の側面にも触れています。サービスは対話的なものなので、待ち時間は重要です(エンコーディングの5分後にマウスをクリックしたときの反応は見たくないでしょう)
  • ホストマシン上での画面変更の量を減らすようにしてください。例えば、Windowsのデスクトップエフェクトやアニメーションなどを無効にしてみてください。これにより、画面の変更された部分だけがネットワーク経由で転送されるため、帯域幅を節約することができます
  • 透明化のようなホスト上の視覚効果を無効にしてみてください。Vista/Win7 で使用されている透明な Windows は、画像の「圧縮性」を低下させます。鮮やかな色や派手なディテールよりも、単色/「フラット」な領域の方が圧縮にははるかに効率的です。そのため、Aero の透明度とデスクトップ効果を無効にすると、リモートコントロールの体験が本当に速くなります。ほとんどのリモートコントロールツールでは、接続時に自動的にこのような効果を無効にすることができます(例:Microsoft RDPやいくつかのVNC実装)
  • 背景画像も同様です。HD画像ではなく、単色の背景設定を使用してみてください

VNCのもう一つの問題は、画面上の変更を検出しなければならないことです。いくつかのVNCの実装では、スクリーンショットを「ダム」にして、変更を検出するために前のスクリーンショットと比較します。これはすでに多くのパワーを必要としています。より高度な実装の中には、特別なディスプレイドライバ(UltraVNCをチェックしてください)を使って動作するものもあります

もちろん、ホストマシンでビデオを再生している場合は、これはすべて役に立ちません。この場合、VNCは毎秒30枚のフルスクリーン画像を再エンコードしてネットワーク経由で送信しなければなりません。今日のCPUがリアルタイムで実行できるほとんどの圧縮では、このようなストリームは、> 8Mbpsの帯域幅を必要とします。だから、それはほとんどのインターネット接続(特に通常1Mbps未満のアップロード速度を持つ非対称DSL接続について考えて、はい、それはホスト側で問題となるアップロード速度です)には適していません

LANでの使用には適しているかもしれませんが、ここではもっと考えてメディアサーバーの設定やDLNA/UPnPメディアサーバーを使ったメディアの共有をした方がいいかもしれません(Win7のメディアプレーヤーでもできます)。そして、共有したメディアをDLNAクライアントで再生する

15  SkyBeam  2011-05-18


私がこれまでに使った中で絶対的に速い VNC バージョンは UltraVNC で、Video Mirror Driver がインストールされています。RDPの方がまだ目立って速いのですが、それに比べればほぼ遜色ありません

また、ZeroRemoteについても良いことを聞いたことがありますが、テストしたことはありませんでした。TrueRemoteがその後継機であるようです

4  afrazier  2011-05-18


LAN 経由で動画を見ようとしている場合、画面描画速度の点で最速のソリューションは、おそらく Radmin でしょう

2  Shinrai  2011-05-18


Journeyman Geekさんがおっしゃるように、VNCは非効率的です。これはVNCがリモートクライアントが何を表示しようとしているのかを「理解」する必要がないように設計されています

RDPは実際にそうしているので、ショートカットを取ったり、画像をより速くレンダリングしたりすることができます。RDPは、画面の変化を表すビットマップデータを送信する代わりに、「クライアントはこの場所でウィンドウを開いた」などと相手側に伝えます

ターミナルサーバー」ハックは、それらを搭載していないWindowsのバージョンにRDP機能を追加するものがありますが、私はそれらを公式に推奨していませんし、あなたは自己責任でこれらを使用することになります。しかし、Windows 7の「スターター」バージョンでさえ、「リモートアシスタンス」(msra.exe)が付属していると思うので、それを使ってみるのもいいかもしれません

しかし、VNC のパフォーマンスを向上させるためにできることは、表示深度を 8 ビットに下げること、クライアント画面の解像度を下げること、クライアント側のビットマップキャッシングを使用することです。つまり、VNCはより少ないデータをワイヤ上に出荷しなければならず、より良いパフォーマンスを体験することができるということです(ただし、見た目はきれいではありません)

1  LawrenceC  2011-05-18


私の場合、インターネット上でも(pingレート50msと1mbit/sのまともな帯域幅で)UltraVNC上で非常に良い動作が得られます。魔法は接続設定を変更することにあります

ビューアを起動したら、「接続オプション」から「自動選択最適設定」を無効にし、「Tight」を有効にして、必要に応じて「Jpeg」を低画質にする(2-4がうまくいく)

これが、まともなパフォーマンスでフルカラーを取得する唯一の方法です。あなたは、フルスクリーンムービーで高速スライドショーを取得するのに十分な数fpsの後に取得します(リモート開発を含む、私がやっているすべてのもののために十分な、あまりにも遅く、また、オーディオがありません実際のムービーを見ているために)

また、サーバーの「プロパティ」では、(パフォーマンスを大きく助けるミラードライバーを使用していない場合)「全画面をポーリング」、「フォアグラウンドウィンドウをポーリング」、「カーソルの下のウィンドウをポーリング」、「システムHookDll」、「低精度」がオンになっていると助かります。基本的には、左にあるものだけです

1  Andreas Reiff  2014-06-06


あなたがVNCを使用しない必要があるパフォーマンスを探している場合は、LogMeInのようなものを試してみてください。これは無料でよく動作します

0  Jeff F.  2011-05-18


TeamViewerも試してみてください。これは非商用利用で無料で、私にとってはかなり高速でした。HDビデオではテストしていませんが

0  wizzard0  2011-05-19


タイトルとURLをコピーしました