Windows'ta VNC neden bu kadar yavaş?


27

Bir testte, arkadaşımın bilgisayarından ağımız boyunca full HD film izleyebilirim, sorun değil. İstediğim kadar hızlı.

Ancak VNC acı acı çekiyor. Gerçek VNC'yi ve Sıkı VNC'yi denedik, Capture Methodayarlarla oynamıştım , ancak hiçbir şey bir fark yaratacak gibi görünmüyor; sadece çok yavaş.

VNC kullanımı, hızın nasıl artırılacağı veya belki de alternatifler hakkında herhangi bir ipucu var mı?

Ekranın geçersiz kısımlarını yeterince hızlı bir şekilde fark edememek mi, yoksa onu yavaşlatan bir ağ var mı?

İkimiz de Windows 7 kullanıyoruz.

Biz görüntüleyebilir ve birbirlerinin PC'leri kontrol edebilmek gerekir olmadan RDP yüzden olmaz işi (birisi aksi bilir sürece), ev sahibi dışarı kilitleme.

Yanıtlar:


26

VNC sadece düz verimsiz. VNC, bir dizi ekran görüntüsü alarak, bunları sıkıştırarak ve ağ boyunca süzüp ederek oldukça fazla çalışır.

Windows'ta, RDP size daha iyi performans verecektir, ancak uygun RDP için sunucu / kaynak ucunda profesyonelce veya daha iyi olmanız gerektiğine inanıyorum.

Wierdly uzaktan yardım ihtiyaçlarınız için daha iyi çalışabilir - RDP hem terminaldeki kullanıcı hem de uzaktaki sistemdeki kullanıcı aynı ekranı görüyorsa

EDIT: 4 yıl sonra, benzer görevler için nomachine kullanıyorum - işletim sistemleri arasında çalışacak ve birkaç faydalı şey daha yapacağım.


2
Yup, Pro olmayan sürümlerde çalışmaz, ancak sanırım bir çözüm bulunmuyor . (Ve +1 elbette, VNC berbat)
slhck

Ah, şimdi düzenlememde ne yaptığımı şart koşmalıydım !
Josh Comley

eşzamanlı oturumlar, bazı [hackery] (ile yapılabilir missingremote.com/guide/... ?. uzaktan yardım dahil etmek VNC tarzı şeyler ... uzaktan yardım belki Düzenlendi cevabım.
Usta Geek

josh Düzenlemeniz anlamlı, ancak "uzaktan yardım" ın daha iyi çalışabileceğini söylediği @journeyman yazısının son satırına dikkat edin. Uzaktan Yardım'a baktınız mı? Bazen kullanıyorum ve harika çalışıyor.
Jay R. Wren

Uzaktan yardımın gerçekten kullanmanız gerekeni yansıtacak şekilde düzenlendi;)
Journeyman Geek

15

VNC, video akışıyla karşılaştırılamaz. Video akışında, genellikle ağ üzerinden önceden sıkıştırılmış bir video akışını aktarırsınız. HD akışları için genellikle H.264 kodlanır. VNC kullanıyorsanız, ana bilgisayarınız ekran görüntülerini almak ve ağa göndermeden önce bunları sıkıştırmak zorundadır. Burada birkaç kısıtlama var:

  • Güçlü sıkıştırma, çok fazla CPU gücüne ihtiyaç duyar. Örneğin, H.264'te 90 dakikalık bir filmi yüksek kalitede kodlamak Athlon X2 4450e sunucumda sık sık 4 saatten fazla sürüyor. Genellikle böyle güçlü bir sıkıştırma, uzaktan kumanda gibi gerçek zamanlı uygulamalar için uygun değildir.
  • Daha az güçlü sıkıştırma, daha fazla ağ bant genişliği gerektirir; bu da internet gibi düşük bant genişliği bağlantılarında sorun olabilir.

Eh, video codec ve uzaktan kumanda ve ekran paylaşım programları tarafından uygulanan birkaç "püf noktaları" vardır. Öncelikle ekran değişikliklerini tespit etmeye ve değişikliklerin (sıkıştırılmış) görüntüsünü aktarmaya çalışırlar. Bu genellikle bir L bant genişliği ve işlem gücü tasarrufu sağlar. Ancak, tam ekran video aktarımı için, tüm ekranın çok sık tekrar aktarılması gerektiğinden çok yardımcı olmuyor. Yukarıda yazıldığı gibi, mevcut makineler muhtemelen ekran içeriğinizi Full-HD olarak kodlamakta ve bir uzaktan kumanda uygulamasına aktarabilmekte ve ana bilgisayarınızın video içeriğini kodunu çözmesi ve ardından göndermeden önce ham görüntüleri yeniden kodlaması gerekecek onları ağa. Bazı eski Çift Çekirdekli makineler Full-HD video içeriğinin kodunu çözerken bile sınırda.

VNC uzaktan kumanda hızınızı arttırmak için aşağıdakileri yapabilirsiniz:

  • Çoğu VNC sunucusu / istemcisi çoklu sıkıştırma algoritmasını destekler. Bazıları küçük bant genişliği, bazıları iyi görüntü kalitesi ve bazıları düşük gecikme süresi için optimize edilmiştir. Bu, uzaktan kumandanın başka bir yönüne dokunuyor. Servis etkileşimli gecikme meseleleri olduğundan (sadece 5 dakikalık bir kodlama işleminden hemen sonra fare tıklaması tepkisini görmek istemezsiniz).
  • Ana makinenizdeki ekran değişikliklerini azaltmayı deneyin. Örneğin, Windows masaüstü efektlerini, animasyonları vb. Devre dışı bırakmayı deneyin. Bu, ekranın yalnızca değiştirilen kısımları ağ üzerinden aktarıldığı için bant genişliğini kaydeder.
  • Saydamlık gibi ana bilgisayarda daha fazla görsel efekt devre dışı bırakmayı deneyin. Vista / Win7 tarafından kullanılan şeffaf pencereler, görüntülerin "sıkıştırılabilirliğini" azaltır. Tek renkli / "düz" alanlar, canlı renklerden ve şık detaylardan daha sık sıkıştırmak için daha verimlidir. Bu yüzden Aero şeffaflığını ve masaüstü efektlerini devre dışı bırakmak uzaktan kumanda deneyimini gerçekten hızlandırır. Uzaktan kumanda araçlarının çoğu bağlantı sırasında bu tür etkileri otomatik olarak devre dışı bırakmaya bile izin verir (örneğin, Microsoft RDP ve bazı VNC uygulamaları).
  • Aynı arka plan resimleri için de geçerlidir. HD resimler yerine tek renkli arka plan ayarını kullanmayı deneyin.

VNC için bir başka sorun da ekranınızdaki değişiklikleri algılamasıdır. Bazı VNC uygulamaları ekran görüntülerini "aptal" yapar ve değişiklikleri tespit etmek için önceki ekran görüntüsüyle karşılaştırır. Bu zaten çok fazla güç alıyor. Bazı daha gelişmiş uygulamalar, burada daha verimli olan ancak yüklü özel sürücüler gerektiren özel ekran sürücüleri (UltraVNC'yi denetleyin) ile çalışır.

Elbette tüm bunlar, ana makinenizde bir video oynatıyorsanız, yardımcı olmaz. Bu durumda VNC'nin saniyede ~ 30 tam ekran görüntüyü yeniden kodlaması ve ağ üzerinden göndermesi gerekir. Bugünün CPU'ları tarafından gerçek zamanlı olarak gerçekleştirilebilen çoğu sıkıştırmada, bu tür bir akış> 8 Mbps bant genişliğine sahip olacaktır. Bu yüzden çoğu internet bağlantısı için uygun değildir (özellikle 1Mbps yükleme hızından daha az olan asimetrik DSL bağlantılarını düşünün, ve evet, ana bilgisayar tarafında önemli olan yükleme hızıdır).

LAN kullanımı için uygun olabilir, ancak burada muhtemelen bir medya sunucusu kurmayı veya DLNA / UPnP medya sunucusu kullanarak medyanızı paylaşmayı düşünmelisiniz (Win7 medya oynatıcısı bile yapabilir). Ardından paylaşılan medyayı oynatmak için bir DLNA istemcisi kullanın.


1
+1, güzel açıklama. DLNA / Media Server sürümü için de giderdim.
slhck

İyi deneme, ama tamamen yanlış, ne CPU yükü ne de ağ kullanımı zaten yüksek. Basit fark aktarımıyla bile 1GB ağ üzerinden 20 fps yapabiliyordu.
Lothar


1

Bir LAN üzerinden video izlemeye çalışıyorsanız, ekran çekme hızı açısından en hızlı çözüm muhtemelen Radmin'dir .


3
Radmin'i denedim ve evet, ticari, ama buna kanlı! Çok hızlı. Fantastik.
Josh Comley

1

@ Journeyman Geek'in dediği gibi, VNC verimsiz. Bu, tasarım gereği VNC'nin uzaktaki müşterinin neyi göstermeye çalıştığını "anlaması" gerekmiyor.

RDP aslında, kısayollar alabilir ve görüntüleri daha hızlı hale getirebilir. RDP diğer uca, örneğin, ekran değişikliğini temsil eden bitmap verilerini göndermek yerine "istemci bu konumda bir pencere açtı" diyor.

Orada, Windows özelliklerine sahip olmayan RDP özelliği ekleyebilecek "uçbirim sunucusu" hackleri var, ancak resmi olarak tavsiye etmiyorum ve bunları kullanmak kendi sorumluluğunuzdadır. Ancak, Windows 7'nin "Başlangıç" sürümlerinin bile kullanmayı deneyebileceğiniz "Uzaktan Yardım" (msra.exe) ile geldiğini düşünüyorum.

Bununla birlikte, VNC performansını artırmak için yapabileceğiniz şeyler, ekran derinliğini 8 bit'e düşürme, istemci ekranının çözünürlüğünü düşürme ve istemci tarafı bitmap önbelleğe alma özelliğini içerir. Bu, VNC'nin kabloyla ilgili daha az veri göndermesi gerektiği anlamına gelir ve daha iyi performans elde edersiniz (ancak hoş görünmez).


1

TeamViewer'ı da deneyebilirsiniz, ticari olmayan kullanım için ücretsizdir ve benim için oldukça hızlıydı. Yine de HD video üzerinde test etmedim.


0

Performans arıyorsanız, VNC kullanmamanız gerekir, LogMeIn gibi bir şey deneyin . Ücretsiz ve iyi çalışıyor.


Sadece LogMeIn'i denedim, hiç beğenmedi!
Josh Comley

3
LogMeIn'i uzaktan kumanda için seviyorum ama video için mi? Bir şans değil. VNC en azından P2P. Doğrudan kaynak ve hedef arasında gider. LogMeIn, sunucuları üzerinden bir bağlantı sunar; bu, çok daha fazla gecikme süresine sahip olduğunuz anlamına gelir. VNC ile tüm problemler artı birkaç tane daha. Ne için tasarlandığı konusunda güçlü, ancak gerçek zamanlı tam ekran video için tasarlanmadı.
music2myear

Video yapmaya çalışmıyorum, videoyu yalnızca iki bilgisayar arasındaki bağlantının yavaş olmadığından emin olmak için bir test olarak kullandım
Josh Comley

0

Benim için internet üzerinden bile (ping oranları> 50ms ve iyi bant genişliği> 1mbit / s) UltraVNC'de çok iyi davranışlar alıyorum. Büyü, bağlantı ayarlarını değiştirerek gelir.

Görüntüleyiciyi başlattıktan sonra, "Bağlantı Seçenekleri" ne gidin, "En iyi ayarları otomatik seç" seçeneğini devre dışı bırakın, "Sıkı" seçeneğini etkinleştirin ve gerekirse daha düşük kaliteyi elde etmek için "Jpeg" yi indirin (2-4 iyi çalışıyor).

Tam Renkleri iyi bir performansla aldatmanın tek yolu bu. Daha sonra tam ekran filmde hızlı bir slayt gösterisi yapmak için yeterli sayıda fps elde edersiniz (uzaktan geliştirme dahil, gerçek film izlemek için çok yavaş ve ayrıca ses yok) yaptığım her şey için yeterli).

Ayrıca, "Özellikler" sunucusunda "Tam Ekran Yoklama", "Yoklama Ön Plan Penceresi", "İmleç Altında Yoklama Penceresi", "Sistem Bağlantısı Doldurma", " Düşük Doğruluk "açık. Temel olarak, hemen hemen soldaki her şey.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.