Windows上のVNCがなぜこんなに遅いのですか?


27

テストでは、友人のコンピューターからネットワークを介してフルHDムービーをストリーミングできましたが、問題ありません。それは私が望むほど速いです。

しかし、VNCは非常に遅いです。Real VNCとTight VNCを試してみましたが、Capture Method設定をいじってみましたが、何も違いはありません。とても遅いです。

VNCを使用する方法、速度を改善する方法、またはその他の方法についてのヒントはありますか?

画面の無効化された部分に十分早く気付かないという性質ですか、それともネットワークの速度が低下しているのでしょうか?

両方ともWindows 7を使用しています。

ホストロックアウトせずに互いのPCを表示および制御できるようにする必要があります。そのため、RDPは機能しません(他の人が知らない限り)。

回答:


26

VNCは単純に非効率的です。VNCは、一連のスクリーンショットを取得し、それらを圧縮し、ネットワーク上でスリングすることにより、ほとんど機能します。

Windowsでは、RDPを使用するとパフォーマンスが向上しますが、適切なRDPを実現するには、サーバー/ソース側でプロフェッショナル以上の能力が必要です。

必要に応じて、リモートアシスタンスがより適切に機能する場合があります。RDPは、ターミナルのユーザーと、リモートシステムのユーザーの両方が同じ画面を表示する場合のRDPです。

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


2
ええ、Proバージョン以外では動作しませんが、回避策があると思います。(そしてもちろん+ 1、VNCは吸う)
slhck

ああ、今すぐ編集で行ったことを規定する必要がありました!
ジョシュコムリー

同時セッションは、いくつかの[ハック](で行うことができますmissingremote.com/guide/...多分VNCスタイルのもの...リモートアシスタンスリモートアシスタンスを含めるように私の答えを編集した?。。
ジャーニーマンオタク

joshあなたの編集は理にかなっていますが、@ journeymanの投稿の最後の行で、「リモートアシスタンス」が効果的であると言っていることに注意してください。リモートアシスタンスを見ましたか?私は時々それを使用し、それは素晴らしい作品です。
ジェイR.レン

リモートアシスタンスが本当にあなたが使用する必要があるものであることを反映するように編集されました;)
ジャーニーマンオタク

15

VNCはビデオストリーミングに匹敵しません。ビデオストリーミングでは、通常、事前に圧縮されたビデオストリームをネットワーク経由で転送します。HDストリームの場合、多くの場合H.264エンコードされます。VNCを使用する場合、ホストコンピューターは、スクリーンスナップショットを作成し、それらを圧縮してからネットワークに送信する必要があります。ここにはいくつかの制約があります。

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

さて、ビデオコーデック、リモートコントロール、および画面共有ユーティリティによって適用される「トリック」がいくつかあります。まず、画面の変更を検出し、変更の(圧縮された)イメージのみを転送しようとします。これにより、通常、帯域幅と処理能力が大幅に節約されます。ただし、フルスクリーンのビデオ転送では、画面全体を頻繁に再転送する必要があるため、あまり役に立ちません。上記のように、現在のマシンはおそらく、ホストがビデオコンテンツをデコードしてから送信前に生画像を再エンコードする必要があるため、画面コンテンツをFull-HDで相対時間エンコードしてリモートコントロールアプリケーションにストリーミングすることはできませんそれらをネットワークに接続します。一部の古いデュアルコアマシンは、Full-HDビデオコンテンツをデコードするときに限界にさえ達します。

VNCリモコンの速度を改善するには、次のことを実行できます。

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

VNCのもう1つの問題は、画面上の変更を検出する必要があることです。一部のVNC実装では、「ダム」スクリーンショットを作成し、以前のスクリーンショットと比較して変更を検出します。これにはすでに多くの力がかかっています。いくつかのより高度な実装は、ここではより効率的ですが、特別なドライバーのインストールが必要な特別なディスプレイドライバー(UltraVNCを確認)で動作します。

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

LANの使用には適しているかもしれませんが、ここではおそらく、DLNA / UPnPメディアサーバーを使用してメディアサーバーをセットアップするか、メディアを共有することをさらに検討する必要があります(Win7メディアプレーヤーでも可能です)。次に、DLNAクライアントを使用して共有メディアを再生します。


1
+1、わかりやすい説明。また、DLNA / Media Serverバージョンも使用します。
-slhck

良い試みですが、まったく間違っています。CPU負荷もネットワーク使用率もいずれも高くありません。単純な差分転送でも、1gibネットワークで20 fpsを実行できます。
ローサー

4

私が今まで使用した中で最も高速なVNCバリアントは、ビデオミラードライバーがインストールされたUltraVNCです。RDPは依然として著しく高速ですが、それほど悪くはありません。

ZeroRemoteについては本当に良いことも聞いたことがありますが、テストはしていません。と思われるTrueRemoteはその後継です。


GNU / Linuxではサポートされていません。
ハイエンジェル

1

LAN経由でビデオを視聴しようとしている場合、画面描画速度の面で最速のソリューションはおそらくRadminです。


3
Radminを試してみました。はい、それは商業的ですが、それだけの価値があります!とても早い。素晴らしい。
ジョシュコムリー

1

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

RDPは実際に実行するため、ショートカットを使用して画像をより高速にレンダリングできます。RDPは、画面の変更を表すビットマップデータを送信する代わりに、「クライアントがこの場所でウィンドウを開いた」など、相手に通知します。

「ターミナルサーバー」ハックがあり、RDP機能をサポートしていないバージョンのWindowsにRDP機能を追加しますが、公式には推奨していません。ご自身の責任で使用してください。しかし、Windows 7の「スターター」バージョンでさえ、「リモートアシスタンス」(msra.exe)が付属していると思います。

ただし、VNCのパフォーマンスを向上させるためにできることには、表示深度を8ビットに下げる、クライアント画面の解像度を下げる、クライアント側のビットマップキャッシュを使用するなどがあります。つまり、VNCが送信するデータが少なくなり、パフォーマンスが向上します(ただし、見栄えはよくありません)。


1

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


0

あなたはVNCを使用しないために必要なパフォーマンスを探しているなら、何かしてみLogMeInのを。無料でうまく機能します。


LogMeInを試してみたところ、気に入らなかった!
ジョシュコムリー

3
リモートコントロール用のLogMeInが大好きですが、ビデオ用ですか?チャンスじゃない。VNCは少なくともP2Pです。送信元と宛先の間を直接行き来します。LogMeInはサーバーを介した接続を導入するため、待ち時間が大幅に長くなります。VNCのすべての問題に加えて、さらにいくつかの問題。設計の目的は強力ですが、リアルタイムのフルスクリーンビデオ向けには設計されていません。
music2myear

私はビデオをやろうとはしていません。2台のコンピューター間の接続が遅くないことを確認するためのテストとしてのみビデオを使用しました
ジョシュコムリー

0

私にとっては、インターネット経由でも(pingレートが50ミリ秒以上で、適切な帯域幅が1メガビット/秒を超える場合でも)UltraVNCで非常に良い動作をします。魔法は、接続設定の変更に付属しています。

ビューアを起動した後、「接続オプション」に移動し、「最適な設定を自動選択」を無効にし、「タイト」を有効にし、必要に応じて「Jpeg」を下げて品質を下げます(2-4がうまくいきます)。

それは、まともなパフォーマンスでフルカラーをgtingする唯一の方法です。その後、フルスクリーンムービーで高速スライドショーを取得するのに十分な数のfpsを取得します(リモート開発を含む、実際の映画の視聴が遅すぎ、音声がない場合でも十分です)。

また、サーバーの「プロパティ」では、「パフォーマンスを大幅に向上させるミラードライバーを使用しない場合」、「ポーリングフルスクリーン」、「ポーリングフォアグラウンドウィンドウ」、「カーソル下のポーリングウィンドウ」、「システムHookDll」、低精度」がオンになりました。基本的には、左側のほぼすべてのものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.