Does TcpWindowSize (Windows 10) affect OBS?

Mango

Member
Does the Windows registry key TcpWindowSize affect OBS and is it possible it could be used to mitigate dropped frames with an internet connection that experiences periodic speed fluctuations?

I've tried to use "Dynamically change bitrate to manage congestion", which works, but the image quality is not good during bandwidth interruptions (as expected). I'm trying to figure out a way for it to queue high quality video until the network is back (assuming the interruption is short enough for that to be practical).

Any suggestions would be welcome
 

R1CH

Forum Admin
Developer
It will affect OBS (and all other TCP connections), but it will likely not help with dropped frames. Window sizes only limit throughput based on the bandwidth-delay product, usually you are streaming to a nearby server and can easily reach the required bitrate after a few RTTs. Even with a server further away, setting a fixed window size is strongly inadvisable on modern OSes as the OS will tune per-connection to the optimal window size after a short ramp-up.

Queuing video at high quality is also not something that's really possible - while it's "just data", it's also time-based in that it can only be played back meaningfully at the original bitrate. Imagine you have poor connectivity for 10 seconds, so you queue up 10 seconds worth of video. Now your connection is good again - what happens? Do you start sending it at the original bitrate? Now your viewers experienced 10 seconds of unstable stream, and after resuming the stream will forever be delayed by 10 seconds, with a buffer on the streaming software. Do you send all the queued at once, exceeding the desired bitrate temporarily? Now your streaming service or clients have to buffer it somewhere and are still delayed by 10 seconds unless they fast forward and skip the content entirely.
 

Mango

Member
Do you send all the queued at once, exceeding the desired bitrate temporarily? Now your streaming service [has] to buffer it somewhere

Thanks for the super comprehensive reply! I learned a lot.

Your above quote is the goal; it may turn out to be impractical. Better quality bandwidth is of course the best solution.
 

Mango

Member
Do you send all the queued at once, exceeding the desired bitrate temporarily?

For anyone curious, I built a proof of concept for this using HLS. It works. Bandwidth fluctuated between <1Mbit/sec and 8Mbit/sec over 20 minutes and my 2.75Mbit/sec stream uploaded perfectly.

Now to figure out how to make OBS do it.
 
Top