LAN üzerinden oyun, VNC alternatifi?


15

Tamam, bu konuda küçük bir ödevden daha fazlasını yaptım ve dünyanın bir şekilde bu fikre karşı olduğunu düşünmeye başladım.

Evimde, görsel olan her şey için tamamen korkunç bir GMA HD GPU'lu SB Core i3 olan bir dizüstü bilgisayarım var ve 3D doğanın masaüstü donanımından (RDP ve diğer kanca tabanlı protokolleri dışlayan) video akışı yapmak istiyorum.

Çoğu insanın benzer iş parçacıklarına ilk cevabı bant genişliği veya işlem gücü ile ilgilidir. İlk ve en önemlisi bir Gigabit lan üzerinde denedim ve masaüstü teçhizatım overclocked 3930k var, bu yüzden CPU grunt ve bant genişliği arasında en az 20FPS tam ekran yenilemesine izin verecek bir denge olması gerektiği fikrindeyim . Şimdiye kadar, ana makinede tam ekran video oynatarak test eden TightVNC'yi kullanamıyorum.

Öyleyse, özetlemek gerekirse, OnLive'in 30 katından fazla bant genişliği ile, kendi evimde LAN üzerinden düzensiz bir video akışı düzeyi tam olarak nasıl oluştururum? Bu mümkün mü ve nasıl?


1
RemoteFX'e baktınız mı ? "RemoteFX, 3D sanal adaptör, akıllı kodekler ve sanal makinelerde USB cihazlarını yeniden yönlendirme olanağı sağlayarak Sanal Masaüstü Altyapısı (VDI) için zengin bir kullanıcı deneyimi sunar." Server 2012'yi satın almanız gerekebilir. ;)
Ƭᴇcʜιᴇ007

bu projeyi kontrol edin: spgt.sourceforge.net masaüstünün bir kısmını yayınlamaya izin verir ve ayrıca kontrolleri iletir.

Yanıtlar:


16

Bir yazılım çözümü, aşağıdakiler nedeniyle doğal olarak çok fazla gecikme içerecektir:

  • GPU'nun çerçeve tamponundan veri okumak çok yavaş.
  • Gigabit ethernet'in yaklaşık% 80'i civarında bir hedef bit hızıyla bile (doygunluktan kaynaklanan bozukluklar nedeniyle% 100 kullanım istemezsiniz), çoğu video codec bileşeni 1080p'yi gerçek zamanlı olarak kodlamak için çok büyük miktarda CPU kullanır. GPU destekli kodlama yapmış olsanız bile, çoğu GPU'nun ayrı programlar arasında çoklu görev yapma yeteneğinin zayıf olması nedeniyle oyununuzu oluşturan cihazdan işlem gücünü azaltabilirsiniz, muhtemelen oyununuzun kare hızını çok düşürürsünüz.
  • Sürekli gigabit ethernet I / O'nun kendisi - sadece bitmiş verileri kablo üzerinden gönderir - kesintiler nedeniyle önemli CPU tüketir. Biraz gecikme pahasına, CPU kullanımını azaltmak için daha yeni sunucu ethernet yonga setlerinin bir özelliği olan kesme moderasyonunu kullanabilirsiniz.

Düzgün ve eğlenceli olmasını istiyorsanız, bir yakalama kartı kullanmalısınız.

İşte böyle bir cihaza bir örnek: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/

Bu cihazın genel konsepti:

  • Cihazı grafik kartınıza taktınız
  • Monitörünüzü cihaza taktınız
  • Aygıtın ethernet çıkışını bir bilgisayara veya yönlendiriciye taktınız
  • Cihazın web arayüzüne ethernet üzerinden erişirsiniz ve isterseniz video, kayıpsız, tam ekran akışınız olur

Cihaz, çerçeveleri kodlamak ve ethernet üzerinden yayınlamak için özel donanım kullandığından, çok düzgün ve yüksek FPS ve güvenilir olacaktır. Ayrıca yazılım kurulumunuzu büyük ölçüde basitleştirerek oyun donanımınızda pahalı boru hattı çözümlerine olan ihtiyacı ortadan kaldırır.

Para harcamak istemiyorsanız ve aşırı gecikme ve çok düşük FPS ile yaşayabiliyorsanız, yerel çerçeve arabelleğini yakalamak, bazı video codec bileşenlerinde kodlamak için Gstreamer veya VideoLAN'da (VLC) bir boru hattı yazmak gibi bir şey deneyebilirsiniz, ve Shout veya RTP veya RTSP veya benzeri bir akış protokolü aracılığıyla akış gerçekleştirin, ardından daha yavaş bilgisayarınızdan indirin / aktarın. Ama seni uyardığım zaman, bu yavaş olacak.


Teşekkürler, her ne kadar orada kolayca netleştirilebilecek birkaç varsayım olsa da. Kesinlikle 1080p'de oynamak istemiyorum, aslında 1280x720 @ 24fps şu an için vurduğum şey ve sadece çalışabilmesi için alçalırdım. Yakalama fikri ilginç görünüyor, ancak sunucuyu bundan nasıl kontrol ederim ve gecikme nasıl olur? Oh, ve henüz bir oyunla bile denemedim. Tüm ekranı yenilemek için sadece 320x240 video dosyasını çalıştırmak VNC'yi bir slayt gösterisine dönüştürüyor gibi görünüyor. Yazılım tabanlı bir çözümden daha fazlasını elde etmek için yapabileceğim bir şey olması gerektiğini biliyorum.
user1901982

Maviden, gecikmenin en uygun koşullarda bir veya iki kare artı ping süresi olduğunu tahmin ediyorum.
Hagen von Eitzen

2
@ user1901982 PlayClaw'ı alın ve 3D oyununuzu bir web kamerası yayınına dönüştürmek için Sanal Web Kamerası özelliğini kullanın. Ardından, sanal web kamerasını ağ üzerinden yayınlamanın düşük gecikmeli bir yolunu bulun.
Darth Android

Bu kesinlikle ilginç bir fikir. Daha önce PlayClaw kullandım. Sağladığı Sanal Web Kamerası, 3d oyunlar için oldukça hızlı / iyi bir kalitedir. Yine de ağ iletimi için sıkıştırmak için çıktı kodlamak zorunda :)
allquixotic

2
@somequixotic PlayClaw aslında bunu yapar ve bu onun "şöhret iddiası" dır: Kodlamanın / sıkıştırmanın birden fazla iş parçacığında ( oyunun render iş parçacığında kodlamayı yapacak olan Fraps'ın aksine) ele alır . Fraps bunu değiştirmiş olabilir Son zamanlarda, ancak birkaç yıl önce, bu statüko idi). CPU'nuz varsa, PlayClaw'ı yüksek sıkıştırmaya kadar çevirin.
Darth Android

7

Ev akışını buhardan kullanabilirsiniz. Mine, Gigabit LAN üzerinden bağlı masaüstüm ve 5Ghz AC üzerindeki dizüstü bilgisayarla ÇOK iyi çalışıyor. Sadece ayarları gözden geçirmeyi ve akış sırasında buhar trafiğine öncelik vermek için kutuyu işaretlemeyi unutmayın.


3

Şimdi daha fazla seçenek var. Yeni bir Nvidia grafik kartınız varsa, ekstra donanım olmadan donanım hızlandırmalı yakalamanın avantajlarından yararlanabilirsiniz. Adı "Gamestream" Protokolü destekleyen Nvidia cihazlarından birini satın alabilir veya "Moonlight" adlı açık kaynaklı bir uygulamayı indirebilirsiniz http://moonlight-stream.com


Bu, ana bilgisayar için Windows gerektirir, yalnızca istemci çapraz platformdur. Sadece bu yazı bulundu zaman olduğu gibi, pencere olmayan bir çözüm arayan herkes için not etmek istedim.
robm

0

Steam Uzaktan Oynatma kesinlikle bir seçenektir. Roket Ligi'nde defalarca oynuyorduk. Her iki tarafta da iyi bir LAN bağlantınız varsa, hazırsınız demektir. Hatta gamepad'i dizüstü bilgisayara takabilirsiniz.

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.