STEAM GROUP
Steam Remote Play homestream
STEAM GROUP
Steam Remote Play homestream
3,821
IN-GAME
40,355
ONLINE
Founded
November 7, 2013
davew_uk Feb 27, 2014 @ 4:10am
Is anyone streaming from a dual-core host?
I've hooked up a USB TV stick that has a composite input for video capture to my laptop. This works fine with my Xbox 360 and I can see the output in VLC media player. I was hoping to use Steam then to stream the xbox video to another computer - it works, but I get frequent large lag spikes that ruin the gameplay.

As far as I can tell, the process of capturing, deinterlacing and displaying the video from the Xbox fullscreen in VLC Media Player (using Direct3D blend mode) uses around 25-30% of my laptop's Core 2 Duo 2.8ghz CPU.

Streaming in Steam (480p@30fps 10mb/s bandwidth) adds another 30-40% on top of that, so the average CPU consumption while streaming is 70-80%. The video capture on the host is a rock-steady 30fps but it stutters every couple of seconds on the client with 100ms+ lag spikes.

If I use my desktop as host (Core 2 Quad 2.4ghz overclocked to 2.8ghz) the stream is perfect, with sub 20ms latency on average. But if I'm going to take the Xbox into my office it defeats the point of trying to stream it :-)

So - is a 2.8ghz Core 2 Duo simply no good for hosting? or should I look for some software that uses less CPU to capture the video from the Xbox?

Cheers
Dave

NB: I'm aware that VLC can capture and stream all in one - but its not low latency, I get something like 12 seconds delay!
Last edited by davew_uk; Feb 27, 2014 @ 4:19am
< >
Showing 1-12 of 12 comments
GeeEl Feb 27, 2014 @ 7:07am 
I had a go from an Athlon II X2 255 with marginal results at very low bitrate.
http://steamcommunity.com/groups/homestream/discussions/0/540734423623592629/?tscn=1393068956

I think with very light applications it might work, or with a slightly faster proc than I had.
davew_uk Feb 27, 2014 @ 7:21am 
Did some reading around and apparently the processors are quite close in performance (well as much as you can trust benchmarks, anyway). I did try various bandwidth, resolution and frame rate settings but even with the lowest it didn't work well enough to be usable.

I guess with Bioshock Infinite you were using DX11? I know that DX11 titles generally perform much better than DX9 as Steam will use asyncronous capture. I wonder how much that had to do with it?
GeeEl Feb 27, 2014 @ 12:13pm 
From memory Dirt 3 is DX11 as well. My few minute wander through Columbia wasn't action packed, maybe it was just a lower CPU game (I wasn't running any performance monitoring)

Looks like the Athlon performs a few percent better, but not nearly as much as the clock speed would suggest. You have to give Intel the gold star for instructions per clock and lower power performance.

I can't look at the steam hardware survey right now (evil Flash!) but t think something like 40% of machines are two core and probably iffy as hosts unless they're desktops with a hardware encoder card. I'm really interested to see how hardware support mixes up the minimum requirements (although that won't affect your laptop performance).
Last edited by GeeEl; Feb 27, 2014 @ 12:34pm
davew_uk Feb 28, 2014 @ 1:06am 
I've found with a quad core hardly anything uses more than two cores. Even emulators like Dolphin and PCSX2 are mostly dual core (PCSX2 can sometimes use a third core with games that need MTVU). So I get two cores for the game and two cores for streaming.

I can only imagine a dual core struggling unless it has a high clock speed and hyperthreading maybe? I have another laptop, an i5 - maybe I'll give that a try.

The nvidia 9600M GT GPU in my laptop can do hardware encoding in splashtop, so there's hope yet for the other one.
Last edited by davew_uk; Feb 28, 2014 @ 1:06am
GeeEl Feb 28, 2014 @ 1:30pm 
From what I read nvidia only added h.264 hardware encoding in 2012 (nvenc) in the Kepler chipsets. Is splashtop using h.264? Might it be using GPU hardware via CUDA[en.m.wikipedia.org]?

I have a lot of trouble understanding GPU model numbers :(
GeeEl Feb 28, 2014 @ 6:04pm 
Originally posted by davew_uk:
Streaming in Steam (480p@30fps 10mb/s bandwidth) adds another 30-40% on top of that, so the average CPU consumption while streaming is 70-80%. The video capture on the host is a rock-steady 30fps but it stutters every couple of seconds on the client with 100ms+ lag spikes.

I finally got around to doing some perfmon on the 2 core test box and it was a bit weird.

If I play Bioshock directly on the host it runs reasonably well (again, very low settings) and caps out the two cores. If I run Bioshock streamed it stutters a bit but the two cores (which should be doing more) only get up to 70-80% (when I expected it to be more the other way around).

If I underclock my Phenom II x4 to 1.6GHz and set the memory down to 800MHz (just to try like for like on CPU speed and memory) I find that Bioshock uses 60-70% CPU local, and when I stream it uses a bit more (80%ish). I didn't swap out video cards, so maybe that or the L3 cache accounts for the difference in overall CPU use.

In any case, the quad core seemed to make more use of the cores when streaming, and the dual seemed to use less. Maybe it is something about process switching, or the processes blocking eachother on dual core systems.

Oh, and Dirt3 seemed fine (although still 90-100 ms latency) streaming from the quad. No nasty spikes during play.

Last edited by GeeEl; Feb 28, 2014 @ 6:06pm
davew_uk Mar 1, 2014 @ 12:58am 
@GeeEl - it's possible that bioshock adjusts its CPU usage depending on what is available to it?

As for splashtop, I have no idea what it is actually doing. From memory though, the CPU drain is far lower hosting from the laptop than it is from any of my other boxes.

It might just be some driver-level support for the capture, not the encoding?

EDIT: I went and took some measurements with Splashtop to reassure myself it wasn't all just placebo.

With the laptop as host (nvidia) it will stream an idle desktop using only 10% CPU. With the desktop as host (AMD) it will stream a similar idle desktop at the same resolution using 30-40% CPU. When playing a movie, the client framerate is 30 with the laptop as a host, just 20 with the desktop as host.

So they're not selling snake oil, it is really doing *something*. What they are doing I don't know, I just hope that Valve can take advantage of the same technology.

Either way I have my eye on a new Maxwell GPU to replace my 6850 in the desktop :-)
Last edited by davew_uk; Mar 1, 2014 @ 1:53am
GeeEl Mar 1, 2014 @ 4:54am 
I think Valve's initial goal will be implementing for H.264 hardware encoders (AMD 7700+, Nvidia 600+) because that'd because it's theoretically quick and simple.

[Keyboard fail gave me a chance to review that Wikipedia page on CUDA]

CUDA looks to allow programmers to write code that execute on dedicated data processing chunks of the GPU, so instead of saying "Take this chunk of data and perform your XYZ process on it" it turns into "Take this chunk of data and run this program I give you" - and that sort of power can be leveraged to do video encoding (or, more commonly these days, Bitcoin mining).

A quick search points at at least one program that leverages CUDA for H.264 encoding (http://www.mainconcept.com/products/sdks/gpu-acceleration/cuda-h264avc.html), but it may be a non-trivial job to get it going in streaming (depending on what's already out there and how it's licensed).
Last edited by GeeEl; Mar 1, 2014 @ 5:11am
davew_uk Mar 1, 2014 @ 5:08am 
Right, the wife and kids were out for the morning so I could take over the living room in relative peace.

The Toshiba laptop with the i5 430M CPU (2.26ghz dual core + hyperthreading) didn't drop a single frame when streaming 480p @ 30fps from the video capture stick to the Macbook Pro.

When set up the other way around, with the Intel Core 2 Duo T9600 Macbook Pro (2.8ghz) as host, there were fairly frequent stutters.

The log shows that encoding on the Toshiba was 1.5x faster (10ms average encoding time vs 15ms). I don't know if that's down to the newer processor or the hyperthreading, but I really didn't expect that.

Anyway, now I can stream from my Xbox 360 next to the TV across the living room to my laptop and play on the couch while the wife watches TV. Quality no worse than plugging the composite output of the Xbox into a 15" telly, and around 25-30ms latency.

Here's how its done:-

- Xbox 360 in PAL60 mode + set to widescreen mode connected by the composite output to an...
- Avermedia 830M USB TV stick plugged into a...
- Toshiba laptop with i5 430M CPU connected by wifi running...
- VLC Media Player in capture mode with a bit of cropping and yadif deinterlacing which was...
- added to Steam as a non-steam game and...
- streamed to a Macbook Pro connected via wifi to the same...
- D-Link DWR-921 router as the Toshiba

The range of the Xbox wireless controllers was more than enough for this, so no ghetto hacking was needed to get the controllers to work, but I understand from other posts that this can be done.

Once I get a faster HTPC I won't even need to use two laptops and can have a more permanent setup too.
Last edited by davew_uk; Mar 1, 2014 @ 5:09am
GeeEl Mar 1, 2014 @ 5:17am 
The VLC capture mode is just playing the video from the Avermedia input, right?
davew_uk Mar 1, 2014 @ 5:35am 
Yes - just cropped a bit to remove some artefacts around the edges and with yadif deinterlacing.

I set up the Avermedia input in VLC manually, then saved that config to a playlist file. Then I have an AutoHotKey script that loads up VLC with command-line arguments to set up the effects and start the playlist. When I hit escape the AHK script closes VLC automatically and then exits.

I did it this way because Steam has a limited length for the command line parameters of a non-steam game and the VLC command line settings are pretty long.
davew_uk Mar 4, 2014 @ 9:28am 
With the March 3rd beta I can stream just as well from the Macbook Pro as I can from the Toshiba. The encode times haven't changed much, but I don't get the lag spikes or stuttering any more.

Capturing from VLC is still a bit rough round the edges but there's still no better software I've found for displaying the output from a capture card.
< >
Showing 1-12 of 12 comments
Per page: 1530 50

Date Posted: Feb 27, 2014 @ 4:10am
Posts: 12