Gaming over LAN, VNC alternative?

15

7

Okay, I've done more than a little homework about this and am starting to think that the world is somehow opposed to this idea.

I have a laptop in my house, SB Core i3 with a GMA HD GPU which is utterly terrible for everything visual, and I would like to stream video from my desktop rig of a 3D nature (ruling out RDP and other hook based protocols).

Most people's first answer to similar threads is either bandwidth or processing power related. I've been trying first and foremost over a Gigabit lan, and my desktop rig has an overclocked 3930k so I am of the opinion that there SHOULD be a balance between CPU grunt and bandwidth that would allow me to get at least 20FPS of fullscreen refresh. So far I cannot using TightVNC, testing by playing a video in fullscreen on the host machine.

So to sum things up, with over 30x the bandwidth of OnLive, how exactly do I create an even choppy level of video feed over LAN in my own home? Is it possible and how?

user1901982

Posted 2013-08-15T15:45:34.913

Reputation: 739

1

Have you looked into RemoteFX yet? "RemoteFX delivers a rich user experience for Virtual Desktop Infrastructure (VDI) by providing a 3D virtual adapter, intelligent codecs, and the ability to redirect USB devices in virtual machines." you might need to buy Server 2012 though. ;)

– Ƭᴇcʜιᴇ007 – 2013-08-15T19:55:49.723

check this project: http://spgt.sourceforge.net/ it allowes to stream a portion of the desktop, and also forwards controls.

– None – 2014-05-05T08:01:52.473

Answers

16

A software solution will inherently contain lots of lag due to the following:

  • Reading data from the GPU's framebuffer is very slow.
  • Even with a target bitrate around 80% of gigabit ethernet (you don't want 100% utilization due to the impairments resulting from saturation), most video codecs will use up an enormous amount of CPU to encode 1080p in real-time. Even if you had GPU-assisted encoding, you'd then be sapping processing power away from the very device that is rendering your game, probably lowering your game's framerate by a lot, due to most GPUs' poor ability of multitasking between separate programs.
  • The sustained gigabit ethernet I/O itself -- just sending the finished data across the wire -- consumes significant CPU due to interrupts. At the expense of some latency, you could use interrupt moderation, a feature of newer server ethernet chipsets, to reduce CPU usage.

If you want it to be smooth and enjoyable you should use a capture card.

Here is an example of one such device: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/

This device has the general concept of:

  • You plug the device into your graphics card
  • You plug your monitor into the device
  • You plug the device's ethernet output into a computer or router
  • You access the device's web interface over ethernet, and you have streaming video, lossless, fullscreen if you want

Because the device uses dedicated hardware to encode the frames and stream them over ethernet, it will be very smooth and high FPS and reliable. It also greatly simplifies your software setup, eliminating the need for expensive pipeline solutions on your gaming rig.

If you don't want to spend any money, and can live with extreme lag and very low FPS, you can try something like writing a pipeline in Gstreamer or VideoLAN (VLC) to capture the local framebuffer, encode it in some video codec, and stream it via Shout or RTP or RTSP or similar streaming protocol, then download/stream it from your slower computer. But as I warned you, this will be slow.

allquixotic

Posted 2013-08-15T15:45:34.913

Reputation: 32 256

So how does it work so well for Steam? – Petah – 2017-10-26T06:57:49.893

Now that we are a few years into the future. Steam has an option to do this and as long as you use wired LAN and not wifi it works perfectly. Low latency and very high quality. But for non-steam games, are there any other options? – errieman – 2018-01-02T15:56:30.743

Thanks, although there are a few assumptions there that could easily be clarified. I definitely don't want to play in 1080p, in fact 1280x720@24fps is what I'm gunning for right now and I would go lower just to be able to have it work. The capture idea seems interesting, but how would I control the host from that and what is the latency like?

Oh, and I haven't even tried it with a game yet. Just running a 320x240 video file to get the entire screen refreshing seems to turn VNC into a slideshow. I know that there must be something I can do to get more out of a software based solution. – user1901982 – 2013-08-15T16:20:12.020

Out of the blue I'd estimate that the latency is about one or two frames plus ping time in optimal circumstances. – Hagen von Eitzen – 2013-08-15T16:27:58.530

2

@user1901982 Grab PlayClaw and use the Virtual Webcam feature to convert your 3D game into a webcam feed. Then find a low-latency way to stream the virtual webcam across the network.

– Darth Android – 2013-08-15T16:59:13.827

That's certainly an interesting idea. I have used PlayClaw before. The Virtual WebCam it provides is reasonably fast / decent quality for 3d gaming. You still have to encode the output to compress it for network transmission though :) – allquixotic – 2013-08-15T17:02:44.913

As for "controlling the host" when using one of these video processing-based solutions, you can try something like Synergy.

– allquixotic – 2013-08-15T17:06:01.910

2@somequixotic PlayClaw does that, actually, and that's its "claim-to-fame": It handles the encoding/compression in multiple threads (as opposed to Fraps, which would do the encoding on the game's rendering thread. Fraps might have changed this recently, but a few years ago, that was the status quo). If you have the CPU, just crank PlayClaw up to high compression. – Darth Android – 2013-08-15T17:06:12.330

7

You can use the in home streaming from steam. Mine works VERY well with my desktop connected via Gigabit LAN, and the laptop on 5Ghz AC. Just remember to go through the settings and check the box to prioritize the steam traffic while streaming.

randomhelpfulness

Posted 2013-08-15T15:45:34.913

Reputation: 79

3

There are some more options now. If you have a recent Nvidia graphics card, you can have the benefits of hardware accelerated capture, without the extra hardware. It's called "Gamestream" You can buy one of the Nvidia devices supporting the protocol, or you can download an open source app called "Moonlight" http://moonlight-stream.com

Dave Butler

Posted 2013-08-15T15:45:34.913

Reputation: 243

This requires Windows for the host, only the client is cross-platform. Just wanted to note that for anyone looking for a non-windows solution, as I was when I found this post. – robm – 2019-10-04T19:47:19.670

0

Steam Remote Play is definitively an option. Been playing a lot of times to e.g. Rocket League. If you have good LAN connection on both sides, you are good to go. Even can plug the gamepad on laptop.

webo80

Posted 2013-08-15T15:45:34.913

Reputation: 119