How Do You Solve A Problem Like OBS? | Life and Channel Update #5 | December 2020

Hello all, and welcome back to my latest update!

This month, I’m going to be talking a little bit about my issues with both OBS Studio and Streamlabs OBS, including how each one has stopped me making videos the way I want to and how I’ve managed to reach a botched compromise. I’ll also have a quick channel update at the end as well.

Let’s first talk about the issue. Earlier this year, when the first lockdown in the UK was announced, I decided to try and stream at least once a day in order to keep myself busy and to give you all something to watch and be part of. The ‘Quarantine Streams’ started off great, with the beginnings of New Gardcity on Cities: Skylines along with a return to Minecraft and Space Engineers amongst other games. However, the issue I have faced most when streaming is the stream suddenly dying. The first couple of weeks, this didn’t happen. The third week or so, it happened periodically. By the fourth week onwards, pretty much every stream ended abruptly because of connection issues or frame/bitrate droppage.

Bad connections happen, especially during periods where more people are online than usual, however the frames and/or bitrate dropping is something that had me scratching my head for a long time. Why was my PC struggling to stream and encode at the same time? Even taking running a game on the same machine out of the equation, I still had an issue where Streamlabs OBS was slowing down my whole system. Test after test was run, different framerates, resolutions, even different capture types. Nothing worked! Time after time I would hit the stream button and instantly the bitrate would tumble to the point where YouTube would kill the stream.

Every time I opened Streamlabs OBS, my entire computer was limited to a single core.

Now obviously this is not good, at all! But the solution to this problem was actually something even worse. It turns out that my processor was never being fully utilised. I have an AMD Ryzen 7 2700X processor, with six cores. Even with a game running and occupying a core, that still leaves me with five more to process the running of every other program on the PC, as well as encoding both the video files and streaming to my audience. Except it wasn’t working like that. Every time I opened Streamlabs OBS, my entire computer was limited to a single core. This was easy to prove too. If a processor has 100% processing power, then a six core processor should have 16.66% allocated in each core.

Part of my testing was to run Streamlabs OBS whilst observing Task Manager, mainly to monitor RAM usage and processor usage. Just by watching the ‘Processes’ tab, everything looked normal. CPU usage for Streamlabs OBS was well within limits, yet the whole computer just felt sluggish. By switching to the ‘Performance’ tab, I finally found the answer. The entire processing power in use was 17%. This means that the computer was only using a maximum of one core. Closing down Streamlabs OBS, the CPU usage to immediately jump to 20-30%, opening the program again would cap it back down to 17%.

So how does one fix this issue? The answer is: I don’t know. Whether there’s a bug in the version of Streamlabs OBS I was using or whether something in my setup was causing the issue, I don’t know enough about computers still to be able to identify the actual cause. I should also point out that this issue was even occurring when simply running Streamlabs OBS, regardless of whether I was capturing or streaming. My solution was to revert back to an old method I used to use, OBS Studio. For those who don’t know the difference, the way I always look at them both is OBS Studio is built more for recording, and Streamlabs OBS is more geared towards streaming. Both are capable of doing both tasks easily, but have been designed to focus on one mainly and have the other as more of a side function.

You would think this meant problem solved, but alas again it’s not quite as simple as that.

I switched to Streamlabs OBS when I started streaming more regularly in 2019. It allowed me to transfer my profile from OBS Studio, and it’s really easy to set up and use. But with this issue, I looked back at OBS Studio again, and it had changed a bit since I last used it. No radical new features, just bits and pieces here and there that made it easier to use. It felt more like Streamlabs OBS, but with a slightly different UI and older settings. By the way, does anyone else find it annoying that you can import your settings into Streamlabs OBS, but not export them out again?!

Another cool thing about OBS Studio is that it doesn’t cap my PC at 17% CPU usage. That’s right, no cap! It went right up to 80% at one point! You would think this meant problem solved, but alas again it’s not quite as simple as that. You see, OBS Studio has a dark monster lurking within it. Loch Ness has Nessie, Space Engineers has the mighty Klang, and OBS Studio has the scariest of them all. It has ‘Media encoder overload’ shudders. Basically something in the encoding process is causing it to overload. Again, I have no idea what, but I do have an educated guess…

You may remember my post from last year about the Outer Worlds. Well, in that post I made the assumption that everything I thought I knew about OBS was wrong. And I was right! Video compression uses processing power, meaning if you scale down the resolution, you are compressing the video and therefore using processing power. The same applies to bitrate. Bitrate is the amount of data per second being transferred from one place to another (a slight paraphrase from google). In the Outer Worlds post, I talked about recording at 12,000Kbps, or 12Mbps.

This was during the days where I streamed, and since Twitch is capped at 6mb/s I thought I was being smart by simply doubling. Well it turns out I’m an idiot, as that’s still not enough. At the time of writing, I have increased the bitrate to 40Mbps for each recording, with plans to test bumping it up to 60Mbps. Each time you lower the bitrate, you are restricting the amount of data being able to transfer. This seems like the right thing to do, but my guess is this actually increases the CPU usage, and causes the overload issue. Imagine standing on your garden hose. You might get a better jet stream, but you’re potentially causing an issue back down the pipe. I believe this is what I’ve been doing for the last few months. Therefore, moving forwards, I’ll be trying out different bitrates and seeing what works.

Those who have watched my more recent videos should have noticed a change in video quality, particularly in OpenTTD videos. This is a fortunate by-product of increasing the bitrate. Well, technically it’s the direct result of increasing the bitrate, but given my issues right now I’m flipping these round! It’s still not perfect, with frame drops still very obvious at times, but it’s a marked improvement from where I was a few months ago and therefore seems a worthy compromise for now whilst I continue testing. And since I’m now talking about the channel again, let’s quickly focus on that.

Last month saw the premiere of the new M4J Network Route/Service Overview series. This is something I have been working on and wanting to do for almost two years now, so I’m really glad to finally get it off the ground. Thank you to everyone who has been supportive of the series, and tuning in each episode to see which journey we’ll be taking. The series has been very challenging to make, but also incredibly satisfying once completed, therefore I’m very much looking forward to exploring the entirety of the network over the coming months and possibly years.

Those who enjoy the main series, fear not! The M4J Network is stronger than ever, with new episodes in the works including a mammoth project currently underway. M4J Rail is constantly expanding, and this time around sees the largest single expansion in the history of the series. And if that doesn’t excite you, plans are also being made for buses, trams, ships and aircraft to arrive en masse in the very near future!

I have talked about this before, but I’ll expand on it again now. I am also working on a ‘History of the M4J Network’ series. Inspired by a lot of questions about my playstyle and the size of the network, this series will look at the history of OpenTTD and how my style within the game has changed over the years. Starting right the way back with Transport Tycoon Deluxe, I’ll talk about my ideas behind rail networks, and how real life has influenced my decision making with each iteration of the maps I play on. Of course we’ll be revisiting the original M4J3FFR135 Network maps, before finally returning to the M4J Network to see where a culmination of over 20 years of refining and improving has taken me.

F1 2020 has been my surprise game of the year. Normally in these games I’ll do a race or two and then lose interest. This weekend sees my 20th race this year in the game, and as M4J Racing I have upset all odds. With wins in China and Belgium, third place in Australia and Russia, and a whole array of entertaining moments, I can safely say M4J Racing is still going strong and will continue to do so throughout the winter and well into next year!

Now to Football Manager. To keep things short, yes I know Football Manager 2021 is out, yes I do plan on playing it, and yes I will be playing as Hatfield Town once more. Right now Dan is hard at work on the database for this year, so I will be continuing with Hatfield Town 2020 whilst patiently waiting. Considering how my Hatfield team are playing right now, who says I even want to move on?!

Finally, to new series. Each series above has a usual upload day, but this is about to change slightly. To ease my workload, I plan to create or rejuvenate series to fill the gaps in my schedule, by basically playing whatever games I fancy and recording them for you all to enjoy. Currently I plan on playing some Prison Architect and Planet Coaster, but I will also dip in and out of other games depending on how I feel. The idea is to make the channel more about me and who I am again, rather than creating a culture of people unsubscribing because I missed an upload day of their favourite series (seriously, who actually does that?!). So keep an eye out for all new videos coming to the channel very soon!

In the meantime, thank you for reading this very long blog post. I could have split this into two, but I felt it actually worked better as a single post. Remember to stay safe out there everyone, and until next time I will see you soon!