Question / Help Understanding Streaming vs Recording

vencabot

Member
[Edit 2: I've been doing more research, and I find that the 'buffer size' has nothing to do with networking and everything to do with the actual encoding process, so my understanding is fundamentally flawed. I still haven't found a description of how the buffer is used and what considerations should be made when setting its size which makes any sense to me.]

[Edit 1: Basically, what I'm really interested in knowing is what the impact is on streaming video quality when the stream buffer overflows, and does that have any impact on recordings being simultaneously made with the 'standard' settings -- like, is the data only recorded at the same time it's sent to Twitch?]

I'm completely new to streaming and am very new to video processing, but I'm a software engineer with a background in networking. I hope that you can help me get a working understanding of what OBS is doing so that I can customize my settings with confidence. My questions are these:

* How does the streams' 'buffer size' work, exactly? Here's my understanding: when a frame is processed, it goes into the buffer, and then it's sent to the streaming service (Twitch). If the data can't be sent fast enough, frames will pile up in the buffer and, if the connection gets a burst of speed, multiple frames in the buffer may be sent in one go, resulting in fluctuations in the amount of uploading data per second, hopefully normalizing in a constant, steady stream.

---- What causes the buffer to fill up if my target bitrate is well below my ISP's upload rate? Twitch not requesting frames fast enough?
---- What happens when the buffer is totally full and another frame is processed by OBS Studio? Frame-drops on Twitch's end, because it's too slow to fetch those frames before they're pushed out of the buffer (or maybe new frames fail to be forced into the buffer)?
---- If my understanding of this is correct (I doubt it is), the buffer size would have no impact on the fidelity of individual frames, right? It could only negatively impact animation by dropping frames if set too low? I ask because I wonder if pictures getting smeary and ugly could be the result of the buffer filling or something like that? If so, I don't understand.

* If I'm streaming at 3,000kbps and have the same instance of OBS Studio recording with the 'standard' settings, does network traffic have any impact on the quality of the ~recording~? I ask because -- and this may be in my head -- it seems like my footage is more clear when I have the 'recording' settings at 'Custom Output (FFmpeg)' at 3,000kbps: the same bitrate. Is it in my head, or would that potentially look better? If so, why?

* Is streaming at 3,000kbps and recording with 'Custom Output (FFmpeg)' set at 3,000kbps more CPU intensive than recording the same stream with the 'standard' setting? I would think that it'd be exactly the same, right? Or no?

I know these are a lot of questions, but I'm eager to understand. If anyone has the time to answer any or all of these questions, I'd greatly appreciate it.
 
Last edited:
Top