Giochi su LAN, alternativa a VNC?


15

Okay, ho fatto più di un piccolo compito a riguardo e sto iniziando a pensare che il mondo sia in qualche modo contrario a questa idea.

Ho un laptop a casa mia, SB Core i3 con una GPU GMA HD che è assolutamente terribile per tutto ciò che è visivo, e vorrei trasmettere in streaming video dalla mia piattaforma desktop di natura 3D (escludendo RDP e altri protocolli basati su hook).

La prima risposta della maggior parte delle persone a thread simili è legata alla larghezza di banda o alla potenza di elaborazione. Ho provato prima di tutto su una LAN Gigabit e il mio desktop rig ha un overclockato di 3930k, quindi sono dell'opinione che DOVREBBE esserci un equilibrio tra grugnito della CPU e larghezza di banda che mi consentirebbe di ottenere almeno 20FPS di aggiornamento a schermo intero . Finora non posso usare TightVNC, testando la riproduzione di un video a schermo intero sul computer host.

Quindi, per riassumere, con oltre 30 volte la larghezza di banda di OnLive, come posso creare esattamente un livello uniforme di feed video su LAN a casa mia? È possibile e come?


1
Hai già guardato RemoteFX ? "RemoteFX offre una ricca esperienza utente per Virtual Desktop Infrastructure (VDI) fornendo un adattatore virtuale 3D, codec intelligenti e la possibilità di reindirizzare i dispositivi USB nelle macchine virtuali." potrebbe essere necessario acquistare Server 2012 però. ;)
Ƭᴇcʜιᴇ007,

controlla questo progetto: spgt.sourceforge.net consente di eseguire lo streaming di una parte del desktop e inoltra i controlli.

Risposte:


16

Una soluzione software conterrà intrinsecamente molto ritardo a causa di quanto segue:

  • La lettura dei dati dal framebuffer della GPU è molto lenta.
  • Anche con un bitrate target di circa l'80% di Gigabit Ethernet (non si desidera il 100% di utilizzo a causa dei disturbi derivanti dalla saturazione), la maggior parte dei codec video utilizzerà un'enorme quantità di CPU per codificare 1080p in tempo reale. Anche se avessi una codifica assistita da GPU, elimineresti la potenza di elaborazione dallo stesso dispositivo che sta eseguendo il rendering del tuo gioco, probabilmente abbassando molto il framerate del tuo gioco, a causa della scarsa capacità di multitasking della GPU tra programmi separati.
  • Lo stesso I / O ethernet Gigabit sostenuto, che invia semplicemente i dati finiti attraverso il cavo, consuma una CPU significativa a causa di interruzioni. A scapito di un po 'di latenza, è possibile utilizzare la moderazione degli interrupt, una funzionalità dei più recenti chipset Ethernet per server, per ridurre l'utilizzo della CPU.

Se vuoi che sia liscio e divertente, dovresti usare una scheda di acquisizione.

Ecco un esempio di uno di questi dispositivi: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/

Questo dispositivo ha il concetto generale di:

  • Si collega il dispositivo alla scheda grafica
  • Collega il monitor al dispositivo
  • Collega l'uscita Ethernet del dispositivo a un computer o router
  • Accedi all'interfaccia Web del dispositivo tramite Ethernet e, se lo desideri, disponi di streaming video, senza perdita di dati, a schermo intero

Poiché il dispositivo utilizza hardware dedicato per codificare i frame e trasmetterli in streaming su Ethernet, sarà FPS molto fluido, elevato e affidabile. Inoltre semplifica notevolmente la configurazione del software, eliminando la necessità di costose soluzioni di pipeline sulla piattaforma di gioco.

Se non vuoi spendere soldi e puoi vivere con un ritardo estremo e un FPS molto basso, puoi provare qualcosa come scrivere una pipeline in Gstreamer o VideoLAN (VLC) per catturare il framebuffer locale, codificarlo in alcuni codec video, e trasmetti in streaming tramite Shout o RTP o RTSP o un protocollo di streaming simile, quindi scaricalo / riproduci in streaming dal tuo computer più lento. Ma come ti ho avvertito, questo sarà lento.


Grazie, anche se ci sono alcune ipotesi che potrebbero essere facilmente chiarite. Sicuramente non voglio giocare a 1080p, in effetti 1280x720 @ 24fps è ciò per cui sto puntando in questo momento e vorrei abbassarmi solo per riuscire a farlo funzionare. L'idea di cattura sembra interessante, ma come potrei controllare l'host da quello e com'è la latenza? Oh, e non l'ho ancora provato con un gioco. Basta eseguire un file video 320x240 per aggiornare l'intero schermo sembra trasformare VNC in una presentazione. So che ci deve essere qualcosa che posso fare per ottenere di più da una soluzione basata su software.
user1901982

All'improvviso stimerei che la latenza è di circa uno o due fotogrammi più il tempo di ping in circostanze ottimali.
Hagen von Eitzen,

2
@ user1901982 Prendi PlayClaw e usa la funzione Virtual Webcam per convertire il tuo gioco 3D in un feed webcam. Quindi trova un modo a bassa latenza per trasmettere la webcam virtuale attraverso la rete.
Darth Android,

Questa è sicuramente un'idea interessante. Ho usato PlayClaw prima. La Virtual WebCam che fornisce è di qualità ragionevolmente veloce / decente per i giochi 3D. Tuttavia devi ancora codificare l'output per comprimerlo per la trasmissione di rete :)
allquixotic

2
@somequixotic PlayClaw lo fa, in realtà, e questa è la sua "pretesa di fama": gestisce la codifica / compressione in più thread (al contrario di Fraps, che farebbe la codifica sul thread di rendering del gioco . Fraps potrebbe averlo cambiato recentemente, ma qualche anno fa, quello era lo status quo). Se hai la CPU, avvia PlayClaw fino a una compressione elevata.
Darth Android

7

Puoi utilizzare lo streaming domestico da Steam. Il mio funziona MOLTO bene con il mio desktop collegato tramite LAN Gigabit e il laptop su 5Ghz AC. Ricorda solo di passare attraverso le impostazioni e seleziona la casella per dare priorità al traffico di vapore durante lo streaming.


3

Ci sono alcune altre opzioni ora. Se hai una scheda grafica Nvidia recente, puoi avere i vantaggi della cattura accelerata hardware, senza l'hardware aggiuntivo. Si chiama "Gamestream" Puoi acquistare uno dei dispositivi Nvidia che supportano il protocollo oppure puoi scaricare un'app open source chiamata "Moonlight" http://moonlight-stream.com


Ciò richiede Windows per l'host, solo il client è multipiattaforma. Volevo solo notare che per chiunque cerchi una soluzione non Windows, come lo ero quando ho trovato questo post.
robm,

0

Steam Remote Play è definitivamente un'opzione. Ho giocato molte volte, ad es. Rocket League. Se hai una buona connessione LAN su entrambi i lati, sei a posto. Può persino collegare il gamepad al laptop.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.