Question / Help CSGO unsmooth/less fps when streaming

eftz

New Member
Hey all. Completely new here and I'M having trouble streaming when playing CSGO. When I stream, the gameplay feels unsmooth and I do get fps drops. Weird thing is, when I stream I feel like I need to up my sensitivity and when I don' stream, I lower it back to my default. It's like my whole game play got less smooth so I need to keep up with my movements or something? (a bit hard to describe, lol)

Comp Specs:
i7 4670k
MSI z87 G45 mother board
EVGA GTX 970
8GB ram

here is my latest log...
https://gist.github.com/9966a38f3e71ac72d4d5
 
Your log looks fine, OBS is running great.

You do know when you ask your computer to do additional tasks at the same time as each other, they might run slower? Video encoding is very CPU intensive so it should be no surprise that games have less performance when encoding is happening.

Since OBS is running great, you might try lowering its priority one notch. That may redistribute some CPU from OBS to CS:GO. Keep an eye on the log files when you do this, if you see duplicated frames go over 1%, you probably made things noticeably worse for your video stream/recording with the change you made.

There's another way to do this, which only I and maybe one other person seem to like, and others will jump in and tell you not to do it. But I'm going to tell you anyways, because I'm a nice guy / evil person making things worse (depending on who you ask):

Set a custom x264 command "threads=x" where x is an integer close to but no greater than 12. The lower number you use, the fewer threads OBS (x264) is allowed to open, leaving more CPU for anything else running in Windows. I find a value of 9 or 10 works best. So if you take my advice, you put "threads=10" in the custom x264 command box. And see if that helps.

Why does this work? Because your CPU is hyperthreaded and x264 calculates how many threads to open based on logical cores, not physical cores. It opens 1.5 threads per logical core. Your CPU has 4 cores, 8 logical cores with hyperthreading. 8 x 1.5 = 12. So x264 by default uses 12 threads on a quad core CPU. That's just too many. If you had an actual 8 core CPU, it would probably be fine, but you don't. My testing has shown the best results when limiting x264 to 9 or 10 cores on my hyperthreaded quad core CPU (an i7 2600k).

Why do people not like this? Because some people abuse the ability to set custom x264 commands and make their encodes a lot worse. They also believe that setting the priority is a "better" solution to the problem, but I disagree.
 
Set a custom x264 command "threads=x" where x is an integer close to but no greater than 12. The lower number you use, the fewer threads OBS (x264) is allowed to open, leaving more CPU for anything else running in Windows. I find a value of 9 or 10 works best. So if you take my advice, you put "threads=10" in the custom x264 command box. And see if that helps.

Sorry for offtopic, but one question: i Stream with an fx8320. This rig does all the encoding. No gaming. The CPU usage is a bit High i think. About 75-80%, depend on the Action in the scene. Can i reduce that with this custom command? To safe CPU Power for other programs? What whould be a good value?
 
Sorry for offtopic, but one question: i Stream with an fx8320. This rig does all the encoding. No gaming. The CPU usage is a bit High i think. About 75-80%, depend on the Action in the scene. Can i reduce that with this custom command? To safe CPU Power for other programs? What whould be a good value?
even though AMD advertise 8 cores, its more like 4 shared cores at most. base it on that imo
 
Sorry for offtopic, but one question: i Stream with an fx8320. This rig does all the encoding. No gaming. The CPU usage is a bit High i think. About 75-80%, depend on the Action in the scene. Can i reduce that with this custom command? To safe CPU Power for other programs? What whould be a good value?

I'm not sure I understand what you want to do... you want to reduce CPU usage so that you can run other things on your dedicated encoding PC while you're encoding?

No, using threads=x would not be appropriate to do that. Instead use a less intensive preset. Also I question the wisdom of running other things on your dedicated encoding PC while its encoding unless it has something directly to do with what's going to be in the video (like running a webcam).

By the way, just because your CPU is at a certain percentage does not mean your CPU usage is too high (or too low). You should judge this by duplicated frames. If your duplicated frames on the encode is over 1%, your CPU usage is too high. I don't give one shit what the CPU percentage is if you're still duplicating too many frames. If your duplicated frames are at zero, or like 0.01%, then your CPU usage is probably too low, and you might try using a slower preset (or you have cycles to spare for other things).

Honestly, don't even open performance monitor of task manager. Its a shitty way to tell anything about the performance of your video encoding. I never look at it, and neither should you. The OBS log files and playback of the VOD/video file tell you everything you need to know.
 
Last edited:
Ok, Thx for the reply. Indeed, there are two Webcams and other stuff for Streaming. Like follower notify and that shit. My preview on obs and the Stream is not really smooth. But only the capture of my avermedia. The overlay, Text, clr Browser runs very smooth. Just wanted to know if i can fix that with thoose commands, and if the CPU usage is the Problem. But i think thats an Problem with the cap card, because its an USB 3.0 card over my onboard USB 3.0 Controller.

Have ordered an pci e USB 3.0 card. Hope this will solve the Problem. I will made a new thread in few days to Check my logfile. Maybe there are some wrong settings.

Thx for the help.
 
Your log looks fine, OBS is running great.

You do know when you ask your computer to do additional tasks at the same time as each other, they might run slower? Video encoding is very CPU intensive so it should be no surprise that games have less performance when encoding is happening.

Since OBS is running great, you might try lowering its priority one notch. That may redistribute some CPU from OBS to CS:GO. Keep an eye on the log files when you do this, if you see duplicated frames go over 1%, you probably made things noticeably worse for your video stream/recording with the change you made.

There's another way to do this, which only I and maybe one other person seem to like, and others will jump in and tell you not to do it. But I'm going to tell you anyways, because I'm a nice guy / evil person making things worse (depending on who you ask):

Set a custom x264 command "threads=x" where x is an integer close to but no greater than 12. The lower number you use, the fewer threads OBS (x264) is allowed to open, leaving more CPU for anything else running in Windows. I find a value of 9 or 10 works best. So if you take my advice, you put "threads=10" in the custom x264 command box. And see if that helps.

Why does this work? Because your CPU is hyperthreaded and x264 calculates how many threads to open based on logical cores, not physical cores. It opens 1.5 threads per logical core. Your CPU has 4 cores, 8 logical cores with hyperthreading. 8 x 1.5 = 12. So x264 by default uses 12 threads on a quad core CPU. That's just too many. If you had an actual 8 core CPU, it would probably be fine, but you don't. My testing has shown the best results when limiting x264 to 9 or 10 cores on my hyperthreaded quad core CPU (an i7 2600k).

Why do people not like this? Because some people abuse the ability to set custom x264 commands and make their encodes a lot worse. They also believe that setting the priority is a "better" solution to the problem, but I disagree.

hey, thanks for the reply. When you say lower the priority a notch lower, do you mean "process priority class"? If so, I am at normal, should I put idle? Or do you mean hit alt+tab and find obs and right click obs and find priority? On that, it is on normal, should I put below normal?
 
Back
Top