STEAM GROUP
Steam Remote Play homestream
STEAM GROUP
Steam Remote Play homestream
1,820
IN-GAME
30,245
ONLINE
Founded
November 7, 2013
Sistason Sep 10, 2015 @ 6:26am
Link bandwidth estimation and manual settings
Hello,

I am testing IHS over the internet (OpenVPN) and had good results (Host 100/100 Mbit/s, Client 16/1 Mbit/s), although a few bugs/problems persist. One time, I had little lag, but huge spikes (10-15s without video, but sound/controls/internet persisted).
Yesterday, I had nothing but lag, caused by my link bandwidth being estimated wrongly. It was estimated at ~26Mbit/s (it was 16 Mbit/s), so the link was constantly getting congested, ergo hard stuttering.
Whatever I do, the bandwidth estimation keeps "overriding" my attempts to counteract. Bandwidth Limits in the client? Ignored. Downscale to 720p and low quality? The Video bitrate goes up to 10-20Mbit/s, so the link is congested again.
The streaming_log.txt shows the bandwidth-limits are set, but seem to have no effect.
[2015-09-09 19:10:09] ===================================================================== [2015-09-09 19:10:09] Game: Dota 2 (570) [2015-09-09 19:10:09] Recording system audio [2015-09-09 19:10:09] Changing record window: 0088054C [2015-09-09 19:10:09] Recording on device: VoiceMeeter Input (VB-Audio VoiceMeeter VAIO) [2015-09-09 19:10:09] Audio client mix format: [2015-09-09 19:10:09] format: 65534 [2015-09-09 19:10:09] channels: 2 [2015-09-09 19:10:09] samples/sec: 44100 [2015-09-09 19:10:09] bytes/sec: 352800 [2015-09-09 19:10:09] alignment: 8 [2015-09-09 19:10:09] bits/sample: 32 [2015-09-09 19:10:09] channel mask: 0x3 [2015-09-09 19:10:09] data format: {00000003-0000-0010-8000-00AA00389B71} [2015-09-09 19:10:09] Initializing audio with 2 channels and 44100 samples/sec [2015-09-09 19:10:10] CDesktopCaptureNV: Unsupported device or driver [2015-09-09 19:10:10] >>> Switching video stream from NONE to Desktop_MovieStream [2015-09-09 19:10:10] >>> Capture method set to Desktop DWM NVIFR H264 [2015-09-09 19:10:10] >>> Capture resolution set to 1366x768 [2015-09-09 19:10:10] CLIENT: Video size: 1366x768, output size: 1366x768 [2015-09-09 19:10:10] CLIENT: CVAAPIAccel: vaInitialize() failed: unknown libva error [2015-09-09 19:10:10] CLIENT: VDPAU init failed: GL_NV_vdpau_interop not available on current context [2015-09-09 19:10:10] CLIENT: libavcodec software decoding with 4 threads [2015-09-09 19:10:10] >>> Client video decoder set to libavcodec software decoding with 4 threads [2015-09-09 19:10:10] CLIENT: Video size: 1366x768, output size: 1366x768 [2015-09-09 19:10:10] CLIENT: Marking frame 1 complete with status k_EStreamFrameResultDroppedLate [2015-09-09 19:10:13] CLIENT: Targeting 59.75 FPS [2015-09-09 19:10:13] CLIENT: Targeting 59.75 FPS [2015-09-09 19:10:16] CLIENT: Marking frame 372 complete with status k_EStreamFrameResultDroppedLate [2015-09-09 19:10:19] CLIENT: Marking frame 552 complete with status k_EStreamFrameResultDroppedLate [2015-09-09 19:10:20] CLIENT: Marking frame 582 complete with status k_EStreamFrameResultDroppedLate [2015-09-09 19:10:20] CLIENT: Marking frame 583 complete with status k_EStreamFrameResultDroppedLate [2015-09-09 19:10:24] CLIENT: Video overflow (100.42ms queued), requesting keyframe synchronization [2015-09-09 19:10:24] CLIENT: Video overflow (100.45ms queued), requesting keyframe synchronization [2015-09-09 19:10:24] CLIENT: Marking frame 831 complete with status k_EStreamFrameResultDroppedNetworkLost [2015-09-09 19:10:24] CLIENT: Marking frame 832 complete with status k_EStreamFrameResultDroppedNetworkLost ... following are 1000s of EStreamFrameResultDroppedNetworkLost or DroppedLate... [2015-09-09 20:11:03] "SessionStats" { "GameNameID" "Dota 2" "TimeSubmitted" "1441822263" "ResolutionX" "1366" "ResolutionY" "768" "CaptureDescriptionID" "Game D3D9 Delayed RGB + libyuv + libx264 main (2 threads)" "DecoderDescriptionID" "libavcodec software decoding with 4 threads" "BandwidthLimit" "15000" "FramerateLimit" "0" "SlowGamePercent" "0" "SlowCapturePercent" "0" "SlowConvertPercent" "0" "SlowEncodePercent" "0" "SlowNetworkPercent" "95.128593444824219" "SlowDecodePercent" "4.8293342590332031" "SlowDisplayPercent" "0" "AvgClientBitrate" "130.27009582519531" "StdDevClientBitrate" "56.777713775634766" "AvgServerBitrate" "13825.9580078125" "StdDevServerBitrate" "3596.158935546875" "AvgLinkBandwidth" "24730.39453125" "AvgPingMS" "33.614383697509766" "StdDevPingMS" "2.5589196681976318" "AvgCaptureMS" "0.72489237785339355" "StdDevCaptureMS" "0.13978055119514465" "AvgConvertMS" "1.1188238859176636" "StdDevConvertMS" "0.41863542795181274" "AvgEncodeMS" "6.6754698753356934" "StdDevEncodeMS" "1.3954253196716309" "AvgNetworkMS" "56.861637115478516" "StdDevNetworkMS" "29.409822463989258" "AvgDecodeMS" "10.364087104797363" "StdDevDecodeMS" "84.123527526855469" "AvgDisplayMS" "4.3698959350585938" "StdDevDisplayMS" "3.9190635681152344" "AvgFrameMS" "86.419197082519531" "StdDevFrameMS" "32.400604248046875" "AvgFPS" "60.532516479492188" "StdDevFPS" "36.082450866699219" "BigPicture" "0" "KeyboardMouseInput" "1" "GameControllerInput" "0" "SteamControllerInput" "0"
Encoding/Decoding are very fast, the network speed is the problem... which is because the host drives the bitrate way too high :(
One thing I noticed is that the incoming bitrate was way higher than the video bitrate (7k vs. 4k). Shouldn't these 2 values be quite similar? Video+Audio bitrate = incoming bitrate, right? Could this therefore point to an audio issue?

1. Did anyone of you had similar problems?
2. Are there manual settings for IHS besides encoding on/off, bandwidth-limit, quality and downscale? Specifically a video bitrate target/limit?

Thanks for any help/pointers


(edit: streaming_log)
Last edited by Sistason; Sep 10, 2015 @ 6:35am
< >
Showing 1-6 of 6 comments
kreiselhoschi Sep 15, 2015 @ 1:00pm 
What you forgot is overhead and delays caused by the internet connection, OpenVPN, etc. That´s why it´s calles InHome-Streaming and not InSomewhat-Streaming. ;)
Sistason Sep 16, 2015 @ 2:11am 
So that's why no one is able to watch twitch.tv over the internet, or via VPN, now it makes sense... /s

My problem is not the Internet, as I wrote I am already using IHS successfully via the internet (e.g. playing ranked comfortably), but sometimes it wrongly autodetects settings which don't work via the respective Internet connection. On other days / other houses, different problems occur.

So: Can I manually set some settings to setup IHS the way I want, not the way IT wants? :)
And: Has someone also had a wrong link bandwidth estimation?
kreiselhoschi Sep 16, 2015 @ 9:16am 
Twitch is a totally other service. It justs streams, but doesn´t need to snyc controller input, etc. And it streams with lower bitrate... ;)
Did you set bandwidth to unlimited in client streaming options? This usually results in lag spikes like you described... add some lag from other sources and here you go.
Sistason Sep 16, 2015 @ 11:19am 
oh sry, I did not write it in my post, the bandwidth is limited, as the streaming_log.txt shows. Did forget to mention that. In that particular case, the bandwidth-limit did nothing, despite multiple steam-restarts.
Another day, the bandwidth-limit was followed by steam. Very strange.

Still, are there ways/configs to set specific values for InHome Streaming, like exact bandwidth (not auto/3M/5M10M, but for example 4.567M)?

As it seems to drift away from my questions about tweaking my settings:
"I am already running InHome-Streaming SUCCESSFULLY via the internet!" - This means I can play games on my laptop anywhere sufficient bandwidth is available. Normally, I can stream on anything more than 10Mbit/s Downspeed. (5Mbit/s DL Limit). Controller-inputs etc. do need about 100kbit/s, which is negligible with regards to network bandwidth. With that in mind, IHS is comparable to twitch, as it generates a h264-stream, but with more bitrate and less input lag.
76561198127254485 Sep 17, 2015 @ 5:24am 
Use neorouter(work much better for me) in place of openvpn and use @streamclientargs http://steamcommunity.com/groups/homestream/discussions/0/521643320352671723/ , use bitrate , framerate (30fps send less kb) and captureres for resolution.
Last edited by Ryo Saeba; Sep 17, 2015 @ 5:38am
Sistason Sep 21, 2015 @ 6:09am 
I made some progress with regards to manual settings:

You can set options as command-line options for the streaming_client in your steam directory (~/.steam/ubuntu_32 for linux). Example:
$STEAM_DIR/steam-runtime/run.sh $STEAM_DIR/streaming_client --gameid 570 --server $SERVER_IP:27031 --quality 2 --bitrate 4000 --captureres 0x0
You need the run.sh for environment variables. With this, you can be a bit more specific about the settings, especially for the bitrate. The rest of the options are basically the steam_settings.

I made progress, but not there yet, as the streaming client is not everything you need to run. It just timeouts, as the server needs to start the streaming itself, I guess. Will return back, when I find that solution.

Other idea: With the --server option, you can maybe stream without both machines "seeing" themselves in steam, e.g. you only need a route, not the whole same-subnet-discovery-procedure.
< >
Showing 1-6 of 6 comments
Per page: 1530 50

Date Posted: Sep 10, 2015 @ 6:26am
Posts: 6