Question / Help Unstable FPS and high pixelation in FPS/Racing games

Elia1995

New Member
Hello, two days ago I had to format my PC and I set up OBS from scratch (because even though I copied the "OBS" folder in %appdata%, it didn't fully work due to missing plugins, etc).
Yesterday I streamed some Trackmania United Forever with a friend and, after the stream was done, I checked how it looked like from the recorded past broadcast, well... it looked pretty horrible: the frame rate was completely unstable and it was very laggy, also there was a lot of pixelation.
Before streaming Trackmania, I streamed The Binding of Isaac: Afterbirth and it looked perfectly crystal clear without pixelation at all, but still quite laggy in FPS terms.... the same pixelation issue used to happen also before the format, with FPS games such as Quake 3 Arena (using the Quake Live port engine), Doom, Doom 3, TF2, CS:GO, Duke Nukem 3D and all other FPS games, it seems that the pixelation is my main issue since I stream A LOT of high motion games.

These are my current PC Specs (just the essentials ones) and OBS settings:

CPU: Intel i7-4790K @4.00GHz
Motherboard: MSI Z97 Gaming 7
GPU: MSI 2x Armor nVidia GeForce GTX 970
RAM: Kingston HyperX DDR3 16GB (2x8)

Now for my current OBS Settings, I'll list them subdivided by category, for convenience.

Encoding

Video Encoding

  • Use CBR disabled because my viewers experience bufferings when I use it
  • Quality Balance: I used to keep 8, then I tried 0 (highest) and now I'm using 5
  • Max Bitrate: 2500 kb/s, sometimes I set it at roughly 1800 - 2000 when people start complaining for buffering
  • Buffer Size: 2500 kb/s, always the same as my max bitrate
Audio Encoding

  • Codec: AAC
  • Format: 44.1kHz
  • Bitrate: 160
  • Channel: Stereo
Broadcast Settings

  • Auto-Reconnect ticked
  • Minimize Network Impact ticked (otherwise it starts to lag completely)
Video

  • Base Resolution set at 1920x1080
  • Downscale at 1.50 (1280x720)
  • Filter: Lanczos
  • FPS: Usually I go for 45 or 50, because 30 gets really laggy
  • I disabled Aero
Advanced

Video

  • x264 CPU Preset: fast/faster (I normally keep "fast", when I see high usage I switch to "faster")
  • Encoding Profile: high
  • I ticked Use CFR


That's all, these are all my settings and specs, and here's the past broadcast from yesterday stream with these settings, so you can instantly see the issue (low frame rates and a bunch of pixelation), I'd love to have a crystal clear stream without pixelation and perfect frame rate, my connection can certainly keep up with higher bitrates, but due to Twitch's 3500 kbps limitation and people starting to buffer I can't push it very further.

Here's my Trackmania stream of yesterday where you can see the unstable frame rate:
http://www.twitch.tv/elia1995/v/42476441

And this is a Quake 3 stream of mine where you can clearly see the pixelation issue:
http://www.twitch.tv/elia1995/v/39501836?t=10m08s

And this is my current Internet speed

panel-19574209-image-c2a13a30d89c164f-320.png
 
Last edited:

Boildown

Active Member
Post OBS log files of any stream you want analysis of. Qualitative descriptions are pretty useless here because there's a huge disparity in what various people posting on these forums thinks looks ok.
 

dping

Active Member
Hello, two days ago I had to format my PC and I set up OBS from scratch (because even though I copied the "OBS" folder in %appdata%, it didn't fully work due to missing plugins, etc).
Yesterday I streamed some Trackmania United Forever with a friend and, after the stream was done, I checked how it looked like from the recorded past broadcast, well... it looked pretty horrible: the frame rate was completely unstable and it was very laggy, also there was a lot of pixelation.
Before streaming Trackmania, I streamed The Binding of Isaac: Afterbirth and it looked perfectly crystal clear without pixelation at all, but still quite laggy in FPS terms.... the same pixelation issue used to happen also before the format, with FPS games such as Quake 3 Arena (using the Quake Live port engine), Doom, Doom 3, TF2, CS:GO, Duke Nukem 3D and all other FPS games, it seems that the pixelation is my main issue since I stream A LOT of high motion games.

These are my current PC Specs (just the essentials ones) and OBS settings:

CPU: Intel i7-4790K @4.00GHz
Motherboard: MSI Z97 Gaming 7
GPU: MSI 2x Armor nVidia GeForce GTX 970
RAM: Kingston HyperX DDR3 16GB (2x8)

Now for my current OBS Settings, I'll list them subdivided by category, for convenience.

Encoding

Video Encoding

  • Use CBR disabled because my viewers experience bufferings when I use it
  • Quality Balance: I used to keep 8, then I tried 0 (highest) and now I'm using 5
  • Max Bitrate: 2500 kb/s, sometimes I set it at roughly 1800 - 2000 when people start complaining for buffering
  • Buffer Size: 2500 kb/s, always the same as my max bitrate
Audio Encoding

  • Codec: AAC
  • Format: 44.1kHz
  • Bitrate: 160
  • Channel: Stereo
Broadcast Settings

  • Auto-Reconnect ticked
  • Minimize Network Impact ticked (otherwise it starts to lag completely)
Video

  • Base Resolution set at 1920x1080
  • Downscale at 1.50 (1280x720)
  • Filter: Lanczos
  • FPS: Usually I go for 45 or 50, because 30 gets really laggy
  • I disabled Aero
Advanced

Video

  • x264 CPU Preset: fast/faster (I normally keep "fast", when I see high usage I switch to "faster")
  • Encoding Profile: high
  • I ticked Use CFR


That's all, these are all my settings and specs, and here's the past broadcast from yesterday stream with these settings, so you can instantly see the issue (low frame rates and a bunch of pixelation), I'd love to have a crystal clear stream without pixelation and perfect frame rate, my connection can certainly keep up with higher bitrates, but due to Twitch's 3500 kbps limitation and people starting to buffer I can't push it very further.

Here's my Trackmania stream of yesterday where you can see the unstable frame rate:
http://www.twitch.tv/elia1995/v/42476441

And this is a Quake 3 stream of mine where you can clearly see the pixelation issue:
http://www.twitch.tv/elia1995/v/39501836?t=10m08s

And this is my current Internet speed

panel-19574209-image-c2a13a30d89c164f-320.png
Agreed. Post a link to your logfile. you have many settings off and if you get back to a baseline, it would probably help your stream all together. three things I see are:
Aero should be enabled for better performance (might gave you more room to drop preset more if all settings are proper)

enable CBR and padding, after your network adjusts to your stream speed (might take some time and a few viewers)
CBR should be fine. disabling it will cause more issues than it solves. you could try unchecking padding instead but still not recommended since VBR bitrate will go really low then spike really high (this will cause viewers to buffer when this happens.

encoding profile high, this should be main. high will cut out all mobile viewers

best fps are 30 48 and 60. anything in between will be jittery

bilinear filter might look better with racing games, experiment with this, lanzcos will reduce sharpness

disable SLI. OBS does not agree with SLI much. stream could look worse than it does. you might try OBS studios (aka OBS Multiplatform) since in its game capture it has a multi GPU fix so you can leave SLI enabled

Now post your log after these changes and we can check out how its handling it.
giphy.gif
 

FerretBomb

Active Member
If you are streaming to Twitch CBR MUST be enabled as part of their ingest spec requirements.

If 30fps is causing 'laggy' video over 40-50, there is another problem. 30 should be lower-impact on the system, and deliver more consistent video than 40-48-50, which will produce a much more jittery playback on 60hz monitors due to uneven frame expansion. If you NEED higher framerates, to fit you'll need to drop resolution. 480p@60fps fits into 2000kbps with decent quality (higher than 720@30). That said, it's generally NOT needed aside from things like retro-games which use sprite-blitting for fake-transparency.

You're going to need to define 'laggy', as there are a lot of people who use that word to mean a lot of different things.

To shave bitrate, drop your audio from 160kbps to 128 or 96kbps. No one will notice unless it's side-by-side, and audio bitrate is handled separately from video bitrate... but can still contribute to buffering. (So 2000kbps video plus 160kbps audio = 2160kbps)

Enable Aero. Why did you disable it? It speeds up OBS' performance significantly on both Window and Game captures. The only reason to turn it off *ever* is if you're going to be Monitor Capturing under Windows 7, which should be avoided at all costs as it's horribly bad and slow, and will cause massive issues.


Upload a log file. We need it to be able to help further, but it sounds like your config already has some pretty notable issues just from your description above.

That said, due to the necessity of compressing video you will never have 1:1 perfect video quality. It's about minimizing issues, and working within realistic technical limitations. It sounds like you're starting to do this, but really may be veering off in the interests of chasing numbers.
 

Elia1995

New Member
I've disabled Aero because sometimes I stream random flash games suggested by viewers, which don't like game capture and I need to use the desktop capture, with Aero enabled, the games get quite choppy and the controls laggy (about 2 seconds delay on some games).

Now about the log files, here they are:
This is the log file of the Quake stream (high pixelation issue): https://obsproject.com/analyzer?url=https://gist.github.com/e87b3e2e199102d893e4

This is the log file of my Trackmania stream from yesterday (with slight different settings in the frame rate): https://obsproject.com/analyzer?url=https://gist.github.com/a5a1c51b59bd020be95d

After that, I wanted to add a note about the FPS part that I forgot to say earlier.
I used to stream in 720p@30fps, but the resulting stream/video saved on Twitch was "choppy", especially on high motion games for example Doom, Duke Nukem 3D, Quake 3, TF2 and a lot of other games that run at OVER 60 fps on my gaming rig (ie. games that can reach up to 200 fps like Quake 3), so I've increased it to 60 fps, but OBS always showed me a red warning "high CPU usage", thus I set the x264 preset at veryfast and the profile at high, which stopped that warning, but people started to complain about annoying pixelation in FPS arena games (like Quake and Unreal Tournament), where I have to look around very quickly, so I set the preset back to fast and I started playing around with FPS trying 45, 50 and other frame rates HIGHER than the choppy 30 and lower than the 60 to avoid such pixelation and buffering (because 60 fps is more stable with higher bitrates which produce more buffering to almost all my viewers even though my connection is powerful enough).

So basically I'm looking for a good setting (according to my rig and my connection, so you have all my information) that can keep up a good 60fps HD stream, at least 720p, I don't want to push 1080p neither getting back in SD 480p quality, isn't there a middle option ?

About the "SLI" thing, I dunno what you're talking about, I have a single MSI 2x Armor GTX 970
 

dping

Active Member
I've disabled Aero because sometimes I stream random flash games suggested by viewers, which don't like game capture and I need to use the desktop capture, with Aero enabled, the games get quite choppy and the controls laggy (about 2 seconds delay on some games).

Now about the log files, here they are:
This is the log file of the Quake stream (high pixelation issue): https://obsproject.com/analyzer?url=https://gist.github.com/e87b3e2e199102d893e4

This is the log file of my Trackmania stream from yesterday (with slight different settings in the frame rate): https://obsproject.com/analyzer?url=https://gist.github.com/a5a1c51b59bd020be95d

After that, I wanted to add a note about the FPS part that I forgot to say earlier.
I used to stream in 720p@30fps, but the resulting stream/video saved on Twitch was "choppy", especially on high motion games for example Doom, Duke Nukem 3D, Quake 3, TF2 and a lot of other games that run at OVER 60 fps on my gaming rig (ie. games that can reach up to 200 fps like Quake 3), so I've increased it to 60 fps, but OBS always showed me a red warning "high CPU usage", thus I set the x264 preset at veryfast and the profile at high, which stopped that warning, but people started to complain about annoying pixelation in FPS arena games (like Quake and Unreal Tournament), where I have to look around very quickly, so I set the preset back to fast and I started playing around with FPS trying 45, 50 and other frame rates HIGHER than the choppy 30 and lower than the 60 to avoid such pixelation and buffering (because 60 fps is more stable with higher bitrates which produce more buffering to almost all my viewers even though my connection is powerful enough).

So basically I'm looking for a good setting (according to my rig and my connection, so you have all my information) that can keep up a good 60fps HD stream, at least 720p, I don't want to push 1080p neither getting back in SD 480p quality, isn't there a middle option ?

About the "SLI" thing, I dunno what you're talking about, I have a single MSI 2x Armor GTX 970
instead of monitor capture you CAN use a game capture and set it to DWM.exe and it will capture your primary desktop. avoid using the monitor capture at all costs in windows 7. This would be best in its own scene called monitor capture. so to repeat. enable aero, remove all monitor captures then add a game capture in a separate scene and point it to DWM.exe.

Its pixellated because you are running 60fps for a bitrate that would be somewhat low for 30fps. VBR will only make this worse. lower lows and higher highs. 2000-2500 would be better for bitrate and customer buffer enabling CBR again. drop bitrate/buffer 100 at a time until viewers tell you the buffering has stopped. you an drop the bitrate while you are live.

The high CPU usage warning is because you need to enable aero along with just using game capture. you also have twitch alerts doing something every second which is filling up your logfile as well as waiting resources.
 

FerretBomb

Active Member
Seconded. That choppiness is almost definitely because Aero is off, and you're using Monitor Capture. MonCap is SO BAD under Win7, it can actually cause game performance issues, not just in OBS.
That or the TwitchAlerts thing which appears to be going insane. Seriously, what the heck is that, because I use TwitchAlerts and it doesn't spaz like that.

Bitrate is indeed way low for that res/framerate. Pixelation should be expected.

Aero ON, CBR enabled, 2000kbps, Game Capture of DWM.exe (will only cap the primary monitor, but it's actually fast and smooth) when you need a monitor capture.
Oh, and if you need to shave more bitrate, drop to 96kbps AAC audio. 160kbps AAC is just wasting bitrate; even 96 vs 128 AAC is almost an inaudible difference unless you're listening to one in each ear, and 128 vs 160 would be hard to tell even side by side.
 

Elia1995

New Member
I've now set 2500 kb/s bitrate and enabled aero, what's the minimum bitrate for 720p @60fps whatever filter ?
 

dping

Active Member
I've now set 2500 kb/s bitrate and enabled aero, what's the minimum bitrate for 720p @60fps whatever filter ?
I use bicubic filter, bilinear also good for sharpness but your choice.

720@30 needs 2500 to 3000 but that might cause viewers to buffer. if they do, reduce buffer/bitrate by 100 until it stops buffering. you can do that live.

Post another logfile. If 720@60 still looks pixellated you might have some room to drop the preset but I'd like to see a good log first with just the settings we are recommending.
 

dping

Active Member

Elia1995

New Member
No, I never watch my own stream while I stream (lol), I only keep the dashboard page to check my viewers, title, game and other info (so I can change title and game while I stream), as for the chat I use AnkhBot, it's a nice software.

I just made a quick 13 minutes stream with these settings and it looks awful, it's the choppiest video I've ever seen, take a quick glance at just the first minutes, it's very laggy.
http://www.twitch.tv/elia1995/v/42877971
 

dping

Active Member
No, I never watch my own stream while I stream (lol), I only keep the dashboard page to check my viewers, title, game and other info (so I can change title and game while I stream), as for the chat I use AnkhBot, it's a nice software.

I just made a quick 13 minutes stream with these settings and it looks awful, it's the choppiest video I've ever seen, take a quick glance at just the first minutes, it's very laggy.
http://www.twitch.tv/elia1995/v/42877971
the dashboard has an on screen preview, if you do that, disable it as soon as it starts. recommended just dont use it.

logfile?
 

Boildown

Active Member
Plays back fine to me in the VOD and the OBS stats look great, there were many lengthy streams and this is typical:

20:28:08: Total frames encoded: 82333, total frames duplicated: 54 (0.07%)
20:28:08: Total frames rendered: 82340, number of late frames: 9 (0.01%) (it's okay for some frames to be late)

Not seeing a problem. If you also record to your hard drive, and play it back on your computer later, how does it look?
 

FerretBomb

Active Member
Yep, the VOD playback looks smooth on this end. I'd still advise against 60fps though as it's mostly a waste of bitrate, especially for a non-partnered stream where bitrate is limited by necessity and is (should be) a primary concern.

You'll again need to define or more specifically describe what you mean by 'laggy'. The video and audio are in sync, so neither are lagging. Framerate appears fairly consistent with no significant stutter, jitter, chop or duping. Some minor artifacting here and there, consistent with too high a resolution/framerate for the bitrate in use.
 

Elia1995

New Member
I really have no idea, I swear it looked choppy when I first playbacked it yesterday right after the stream, perhaps Twitch processes the video like YouTube does and wasn't done already doing that !!!
Yeah, it looks nice and smooth, now that we finally got the framerate to work, we need to fix those "artifacts"
Some minor artifacting here and there, consistent with too high a resolution/framerate for the bitrate in use.
and pixelation, it is not a concern in a racing game like that, and I know (if I were going to stream just trackmania and racing games, I'd already be done with those settings), but when I stream FPS games or 3D shooter games with lots of movement, scenes get really messy, if it does all that pixelation.
My next step is to fix pixelation (reduce it to the very minimum, unnoticeable at least), but keep that sweet framerate.
A lot of pixelation can be seen in this moment of that stream: http://www.twitch.tv/elia1995/v/42877971?t=09m37s (and as I already said, I don't care about it in racing games, but it's a problem in FPS and 3D shooter games with fast movements and other related things that can make the stream all blurry)

On a side note, I just tried your suggestion to use game capture for desktop capturing by setting it to DWM, but it doesn't work, it stays black no matter which scene I put it in (I also tried to make a new scene with just it alone), ticking and unticking it and removing/re-adding it while previewing and before you ask, yes, I've re-enabled Aero...
 
Last edited:

FerretBomb

Active Member
Drop the framerate, or the resolution. 720p@30fps, or 480p@60fps are the two sweet spots for res/rate to stay at or under 2000kbps and keep your stream watchable. You can improve the quality somewhat by using a slower encoding preset, but it isn't a magic bullet. And 30fps even for shooters looks perfectly watchable... 60 is a luxury for a stream, and one that generally can't be afforded on a non-partner bitrate budget to let viewers be able to avoid buffering. Don't chase a number; coming to grips with the reality of tradeoffs and compromises being necessary can be one of the biggest hurdles for new streamers.
 
Top