Question / Help Optimal Settings for CS:GO with a really good PC?

AnnieBot

New Member
Hello,
I wanted to know what the best OBS/CS:GO settings are for streaming CS:GO, assuming that the max bitrate can be up to 3,500 Kbps?

PC specs (i7 4790k 4.0 GHz, 16 GB memory, GTX 970)

https://gyazo.com/06aacd994679f7bd2bde2137eaa6c301

OBS Settings (tl;dr 3500 bitrate, 1.5 downscale 720p lanczos filter 60 fps, preset veryfast):

Encoding: https://gyazo.com/5c725b9e41965dd67209c6c8db526b66
Video: https://gyazo.com/9361ab5041d1efee894681c16e58af63
Advanced: https://gyazo.com/ce05c0d5069f36af473f88e335d52003

CS:GO Settings (all very high settings, fullscreen windowed):
Video Settings: https://gyazo.com/fc7f11e920ee798a97926fa00ea37d14

It doesnt look very good, however. It stutters a lot and it's not very smooth at all, unlike other CS:GO streams that i come across. You can find an example of what these settings look like here: https://www.twitch.tv/anniebot/v/57398869?t=04h16m34s

Current Log file if needed:
https://gist.github.com/25571e4c1ac5cba480eb559226990ca0
 

alpinlol

Active Member
Is this the real AnnieBot?

Whatever, assuming you are a Twitch Partner and can easily pushout 3500Bitrate then the best Settings for mindless operation would be 720p60 3500 on veryfast Preset.

Your Stutters are most likely caused by the multiple Window Captures per Scene. Its best to keep Scenes as clean as possible meaning Game Capture for the Game, CLR Browser for e.g. Twitchalerts and your Text Sources for latest sub/follow/donation.
 

FerretBomb

Active Member
Are you a Partner? If not, not if you want anyone to be able to watch your stream. 3500kbps is the maximum that the ingests are rated to handle without issue on intake. Twitch released user metrics a while ago showing buffering stats; most people can only watch at 2000kbps without buffering. It's advised that unless you are a Partnered streamer, not to exceed that rate. Even going to 2500kbps will cause a significant portion of your potential viewers to buffer, and leave. Usually without saying a word about it, just going off to find something they can watch smoothly.

720p@30fps, 2000kbps, x264 Veryfast or lower.

Lower = better compression, but more CPU used = your stream will look better at a given bitrate. Don't exceed 80% CPU though, and test for 20 minutes at a time of real livestreamed gameplay before moving down another step, watching your temperatures, throttling, and load.
 

AnnieBot

New Member
@alpinlol Would the multiple window captures/Sources in general i have also be the reason that the log file says "Slow Sources Detected?" I have multiple window captures on each scene that i keep unchecked until i need to use them (i.e. for other games, i just check the box when i need it). I'm guessing this isn't advised? and yes that is my twitch channel!

@FerretBomb I really don't like 30 FPS for high motion games. 60 fps makes it look a lot smoother from what I've seen. And yes I am a partner on twitch, so going for 3500 kbps is possible for me since people will have the option to lower quality settings if they need. I just need good bitrate/resolution/fps combination for like, streaming league and CS:GO simulataneously (like a happy balance between them, if possible)
 

FerretBomb

Active Member
Eh, if you're a Partner, you have the bitrate to spare. For non-partners though, it's a waste and a PITA to get that through some skulls.

Good settings for both is going to be tough, as they're polar opposites; one is high motion with lots of camera movement (which will EAT bitrate), the other has very little and more needs to focus on fidelity. For League you'd want native resolution (so most likely 1080p@30 on 3500), but first-person shooters would probably go for 720p@60fps, on 3000-3500kbps.

I've also seen a LOT of 30fps streams that look terrible and not-smooth, but most of it is because the caster doesn't give a crap and is duplicating/dropping frames all over the place. I've had my own 30fps streams mistaken for 60fps, because I take the time to make sure there are almost zero dupes/skips/drops. It's just when someone crams in bad settings and doesn't take the time to fix anything that 30 looks poor. For those, going to 60 looks better because they're just throwing MORE frames at the problem, instead of fixing the problem.

15:16:47: Total frames encoded: 1214092, total frames duplicated: 80117 (6.60%)
15:16:47: Number of frames skipped due to encoder lag: 5 (0.00%)
15:16:47: Total frames rendered: 1212445, number of late frames: 715 (0.06%) (it's okay for some frames to be late)

Looks like you're duping a lot of frames; that should be under 1% (preferably under 0.1%). The other metrics look OK. These might be from not having your camera set up as a Global source. First step, would recommend removing it from your scenes and setting it up as a global instead, to see if that fixes the duping.

After that, go to a lower x264 preset. Faster, then Fast, Medium, etc. Test for 20 minutes on each, keeping an eye on your CPU thermals, load, and throttling, before going down another step. Want to shoot for around 80% load to allow for game peaking, while fully utilizing your CPU to give better image quality. Lower the preset, more CPU it uses, and the better compression it enables. The lowest settings can crush any machine though, so don't jump ahead.
 
Last edited:

alpinlol

Active Member
@alpinlol Would the multiple window captures/Sources in general i have also be the reason that the log file says "Slow Sources Detected?" I have multiple window captures on each scene that i keep unchecked until i need to use them (i.e. for other games, i just check the box when i need it). I'm guessing this isn't advised? and yes that is my twitch channel!

@FerretBomb I really don't like 30 FPS for high motion games. 60 fps makes it look a lot smoother from what I've seen. And yes I am a partner on twitch, so going for 3500 kbps is possible for me since people will have the option to lower quality settings if they need. I just need good bitrate/resolution/fps combination for like, streaming league and CS:GO simulataneously (like a happy balance between them, if possible)


So you are a Partner great, this grants a lot of Room to work with.

And yes slow Scenes are caused by stacked Sources. Its Recommended rather having too much Scenes rather than 1-2 Scenes with a ton of Sources even though most of them are disabled they are still being loaded whenever you switch the Scene. Making Twitchalert a Globalsource will also be greatly benefitial. I would suggest testing on some spare Twitch Account so your main Stream doesnt go online. By doing so you can creat a new Profile in the OBS Settings where you can change the StreamKey so you only have to swap the Profile instead of changing the StreamKey everytime.

For the Test. clean Scene with only a Game Capture Source as a starting Point then stream some Deathmatch server for a couple of Minutes on the 2nd Twitch Acc and rewatch the past Broadcast.

*Thats purely for testing purposes*

As Ferret already said Alerts/Webcam all the Stuff you need in every Scene should be set as Global its usually only a few Sources anyway.
 

AnnieBot

New Member
@FerretBomb and @alpinlol I do not use a webcam, so that isn't the problem with slower sources I don't think. I also already have twitchalerts as a global source, but i have a TON of sources that aren't used most of the time that I should probably get rid of (they are unchecked boxes). That's maybe what is causing it.

And yes, I have a spare account i use to test things! It's really my old channel name but still.

Would sources that are merely a text/image source also be necessary on a global source? Do text/image sources cause a lot of strain on OBS, too? (I remember you saying that I shouldn't have too many window captures, but not image/text ones)

Furthermore, with my PC setup, what kind of preset do you think I could achieve? Is it merely that I have to test which preset my cpu can handle? I have a really good cpu i think, and I will test it with my other channel, I just wanted to know if you had a guess as to a reasonable cpu preset to use.
 
Last edited:

alpinlol

Active Member
@FerretBomb and @alpinlol I do not use a webcam, so that isn't the problem with slower sources I don't think. I also already have twitchalerts as a global source, but i have a TON of sources that aren't used most of the time that I should probably get rid of (they are unchecked boxes). That's maybe what is causing it.

And yes, I have a spare account i use to test things! It's really my old channel name but still.

Would sources that are merely a text/image source also be necessary on a global source? Do text/image sources cause a lot of strain on OBS, too? (I remember you saying that I shouldn't have too many window captures, but not image/text ones)

Furthermore, with my PC setup, what kind of preset do you think I could achieve? Is it merely that I have to test which preset my cpu can handle? I have a really good cpu i think, and I will test it with my other channel, I just wanted to know if you had a guess as to a reasonable cpu preset to use.


I only referred to the Webcam as an Example for Global Sources, i know you are not streaming with a Cam, im watching your stream every now and then.

Depending on what all the Text Sources do they usually dont really do anything but everything that tries to Capture like Monitor/Window/Game should be unique in one Scene which means a Proper Scene Setup would be Game/Alert/highestdonationtext/Nowplayingtext/lastsubtext and stuff like that.

For the Preset, your CPU should be able to handle 720p60 on fast probably, will the Quality gain be worth the Peformance cost? probably not 720p60 with a 3500Bitrate should be looking really good but in the end it comes down to testing and postin logs so they can be analyzed because every piece of Hardware behaves differently for ever Sstreamer even if its the identical Hardware and you have to be able to judge if its okay to play with a slightly decreased ingame Performance.
 

AnnieBot

New Member
@alpinlol Thank you for the help! I deleted a scene with a ton of sources on it I didn't need anymore, and cleaned up a lot of unchecked sources and window captures I didn't need anymore and I can already tell OBS functions much more smoothly now without them.

I will try your advice and first test the stream with the preset of veryfast (the same as it was before). I think if I can just get rid of the duplicated frames that @FerretBomb pointed out by just cleaning up the scenes/sources perhaps it will do the trick for me.
 

dping

Active Member
@alpinlol Thank you for the help! I deleted a scene with a ton of sources on it I didn't need anymore, and cleaned up a lot of unchecked sources and window captures I didn't need anymore and I can already tell OBS functions much more smoothly now without them.

I will try your advice and first test the stream with the preset of veryfast (the same as it was before). I think if I can just get rid of the duplicated frames that @FerretBomb pointed out by just cleaning up the scenes/sources perhaps it will do the trick for me.
Do you have a new logfile from your test?

a few things I noticed in your older logfile was:

Code:
11:39:00: x264: invalid DTS: PTS is less than DTS

Not really sure what this means but I can imagine it has something to do with frame times. maybe CFR off?


Second, check your audio format for all your devices as your headset seems to be going out of sync often at times. Currently you have OBS set to 48000Hz, check windows playback and recording devices for headset and mic (and any other audio devices used) and make sure they all match. I've recently switched back to 44100Hz because when looking at some of the audio files of my favorite game, they were all in 44100Hz. This will keep the encoder from having to worry about audio encoding and will ease CPU usage.

At that point, post another logfile and as you might have some room to drop the preset a little bit (if you desire more quality)
 

AnnieBot

New Member
@dping I have CFR off: Here is a screenshot: https://gyazo.com/f581f387ff9d1432b399769c574bdcd6

Here are my mic settings, it says 44,100 Hz: https://gyazo.com/a6a7826071672034ff7d03c10fb6071c

My Playback settings. also says 44,100 Hz: https://gyazo.com/351aec182d72efe1a362c1e1fc17aab2

Adjusted OBS Settings (now 44.1khz from 48k Hz): https://gyazo.com/12449a5d43ed297a5b8dd12a8fe204ff

It's funny you found that, sometimes when I started up my stream my audio would de-sync immediately and I'd have to restart OBS. I thought it was just a problem related to OBS freezing up periodically (which was probably cause by too many sources in each scene).

I will post another logfile for you guys after today's stream! I'm sure it will be much better than before
 

dping

Active Member
@dping I have CFR off: Here is a screenshot: https://gyazo.com/f581f387ff9d1432b399769c574bdcd6

Here are my mic settings, it says 44,100 Hz: https://gyazo.com/a6a7826071672034ff7d03c10fb6071c

My Playback settings. also says 44,100 Hz: https://gyazo.com/351aec182d72efe1a362c1e1fc17aab2

Adjusted OBS Settings (now 44.1khz from 48k Hz): https://gyazo.com/12449a5d43ed297a5b8dd12a8fe204ff

It's funny you found that, sometimes when I started up my stream my audio would de-sync immediately and I'd have to restart OBS. I thought it was just a problem related to OBS freezing up periodically (which was probably cause by too many sources in each scene).

I will post another logfile for you guys after today's stream! I'm sure it will be much better than before
you do have CFR checked in that photo btw.
 

dping

Active Member
@dping haha oh crap ya you're right. CFR is on. Do i want it on or off?
CRF hardly makes a difference with streaming and costs a little more CPU usage from my understanding. it is mainly used when local recording to make sure that every frame is as close as possible for video editing. most viewers will not see a difference by the time it gets to twitch.

your best bet is to test both and see if one of your mods can tell. also, keep away from watching your own stream with chrome/firefox. use internet explorer or edge since they utilize better hardware decoding which will lower CPU usage even more. This will give you more room for games like The Division or to drop the preset when playing games like CS:GO.
 

dping

Active Member
I didn't really get to play a ton of CS:GO today but i played a little bit, here's the current log file for last time's stream.

Log File: https://gist.github.com/9a93ad396b12fbcf9d475b977568ba23

Does everything look ok in there?
Seems that once you changed your audio format no more audio sync messages as well as scene changes didn't take as long. Good

you forgot to uncheck CFR and while you're at it, uncheck mic time stamps in advanced tab. I don't think you need this anymore.

you are at 1.5% duplicated frames which is close and making the above changes could get you much closer in range (below 1% as @FerretBomb said).

I would also make sure that you are using a popout chat and or minimizing use of chrome/firefox but instead using Edge or internet explorer if you have to watch your own stream as these will minimize CPU usage.
 

alpinlol

Active Member
Judging by the latest Log, Scene Switch Times went down and so did the duplicated Frames, but its still not the best.

Logs still show a huge Amount of Window Capture in the same Scene

13:59:26: New Scene
13:59:26: Using Slide Show
13:59:26: Using bitmap image
13:59:26: Using text output
13:59:26: Using bitmap image
13:59:26: Using text output
13:59:26: Using text output
13:59:26: Using text output
13:59:26: Using text output
13:59:26: Using text output
13:59:26: Using text output
13:59:26: Using text output
13:59:26: Using bitmap image
13:59:26: Using Window Capture
13:59:26: Using Window Capture
13:59:26: Using bitmap image
13:59:26: Using Window Capture
13:59:26: New Scene
13:59:26: Using text output
13:59:26: Using Window Capture
13:59:27: Using bitmap image
13:59:27: Using Slide Show
13:59:27: Using graphics capture
15:21:17: New Scene
15:21:17: Using text output
15:21:17: Using Window Capture
15:21:17: Using bitmap image
15:21:17: Using Slide Show
15:21:17: Using graphics capture
15:21:17: Trying to hook process: csgo.exe
15:21:17: CLRHost:: Browser 58: Status message:
15:21:17: SharedTexCapture hooked
The CSGO one looks clean, i guess the Window Capture is for the Timer of your queue?

The real Question now, how did you judge your ingame Performance and the Outcome on the Stream?

Its going forward to where its good :)
 

AnnieBot

New Member
@dping I shall uncheck CFR and the mic stamps for next time's stream. I also don't watch my own stream when I play, i usually just have a ton of chrome tabs open though. Maybe i should reduce the number of tabs next time...

@alpinlol yea so the window capture one for the CS:GO has like 5 different window captures, most of them for other steam games I sometimes play (plants vs zombies, bioshock infinite) and I just dont want to have to make another capture window each time i open those games (for convenience). Maybe a bad idea?
One of the window captures is for the queue timer too, you are right! a small sub-region of the LoL client so my stream can see how long ive been in queue.

My ingame performance, i mean i felt like everything was smooth on MY side. I'm not 100% sure how smooth it looks for them but i asked them at one point today, and they told me "yes, everything looks smooth" on their side when i was playing cs:go. When i look at the past broadcast, it looks pretty darn smooth to me as well. Maybe the picture quality is kinda iffy (since its 720p) but i doubt its that bad. Im guessing its not possible to up the resolution at all, is it? i was thinking about doing something like 864p with 48 FPS to increase picture quality and keep smoothness but... I'm not so sure about the 48 FPS part. My monitor is 60 Hz, and somebody told me that 48 FPS would only drop a frame once every 5 frames. But im guessing this isn't as good as the 720p 60 fps i use now.
 

alpinlol

Active Member
A higher Resolution would need a higher Bitrate, the Idea with 48 FPS isnt that bad, but for a side Game you play during Queue its not worth the hassle if the Viewers tell you its smooth and they dont spamm the Chat with "Bad Quality" or whatever then everything thing is fine IMO.

You can set a Hotkey for the Game Capture so you only need one and whenever you start another game you press the Hotkey and it should take your active Window e.g. the Game you are playing right now, I would still recommend to use this in a 3rd Scene so you dont have to touch your Lobby and Ingame LoL Scene.
 

FerretBomb

Active Member
I actually dropped in to watch a bit earlier and lurk. Quality looks fine; if you were to optimize for the CS:GO side it could indeed use more bitrate or a lower x264 encoder preset as you were getting some (minimal) artifacting on the ground textures and after quick movements. Could help slightly with the League side as well.

I still hold that 48fps is BS. The results of someone taking the classic 24fps cinema framerate and doubling it, then making up complete hogwash to defend it (unless you're playing at 144hz, at which point it IS a full-integer divisor). Since it's not a full-integer divisor of the parent framerate, it will indeed skip every fifth frame, leading to erratic playback which will look stuttery and subtly wrong. You want to stick with 30fps, 20, 15, 12, 10, etc. to ensure smooth and consistent playback.

So yeah, try going to the Faster or Fast x264 preset. I'm not sure Medium would work with that CPU without potentially impacting in-game performance noticeably, but it could be worth a try if you don't see any impact at Fast.

Far as the captures go, just make sure they're unchecked whenever you aren't using them. OBS shouldn't init the capture at that point, and so long as there are only a few of them, it won't significantly slow down the .ini file parser. Personally, I just use a Game Capture set to 'Hotkey' mode for most of my interim games. Only needs one capture then, unless the game *needs* window cap mode to capture properly.
 
Top