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.