Question / Help OBS: Very Questionable Capabilities

Anonanon

Member
I'm not going to make a bold claim and say OBS is bad, as OBS is/was my main tool of choice. However, lately I've been fed up with the really awful quality my streams puts out.

I watch Twitch a lot, both random users and fighting game tournaments. Everyone's qualities are pretty sharp and maintained even when under heavy motion. I've always asked around what people's settings are, every it's universally agreed that 1500-2000 kbps is the norm for pretty good quality.

The problem is, 2000 kbps for me has always yielded really questionable results. Specifically, once the picture sets in motion, the image quality suffers from heavy blocking and blurring.

I just got back from doing some testing, pitting OBS against FFSplit, something that I used before I switched to OBS a long time ago. Both are using the same settings, 2000 kbps video, 128 kbps audio, veryfast, closest Twitch server, somewhere around 570p to 540p, 30 fps.

***

OBS: http://www.twitch.tv/spacefolding/b/520507805?t=5m4s
FFSplit: http://www.twitch.tv/spacefolding/b/520519269?t=8m29s

OBS suffers from heavy blocking just about everywhere. Even static elements like the hud are getting grazed around the edges. FFSplit is crisp enough that you can see the asphalt textures and road markings.

***

http://www.twitch.tv/spacefolding/b/520519269?t=59s

FFSplit: This clip above isn't a fair comparison, but it displays some very impressive quality since it's night time. The road texture here is unbelievably crisp considering it's still 2000 kbps.

***

http://www.twitch.tv/spacefolding/b/520400008?t=3m52s

OBS: Here is footage of a MMO "conga train" where everyone's name tags are completely wrecking the image quality into a blurry mess.

http://www.twitch.tv/spacefolding/b/520565849?t=11m59s
FFSplit: A lot cleaner in FFSplit even with all the name tags bunched up

***

I guess my question to the developers is why is OBS giving such inferior results to FFSplit, and why? The only thing FFSplit doesn't have right now is hooking into the game layer directly for maximum performance.
 
Last edited:

Krazy

Town drunk
So, let me get this out of the way before I say anything else:
FFSplit, OBS, XSplit, all use literally the same encoder. x264 is the most widely used and highest quality encoder out there. Any differences in encoding quality you might notice are either imagined, or a settings mismatch between the different softwares (Which is definitely the case here, you didn't even match the resolution settings. Who knows if you took the time to match the encoder settings in that case?)

That's exactly the kind of quality you should expect from x264 given the bitrate, FPS, and nature of the game being streamed. They look pretty much completely the same, even though it's really hard to make that comparison considering it wasn't the *exact* same scene being recorded.

As for the MMO video, yeah, that's pretty much what is exactly expected to happen when you have lots of fine details (text, in this case) moving around a lot on screen, especially at the low bitrates generally used for live streaming. Fine details like that have always been difficult to encode well, and really affect the scene overall. Also, the OBS footage shows many more characters, and lots more stuff moving on the screen.
 

paibox

heros in an halfshel
Adding a few things to this, this is no way to do a comparison, the clips all use different resolutions. Second, if you downscale in some fashion with OBS, you should always use the downscale filters rather than just resizing the source. It is entirely possible that ffsplit uses a different method for downscaling that ends up being sharper (or are you using dxtory with ffsplit?).

Fitting a source (such as game capture or window capture) to scene rather than having your scene's base resolution be the same resolution as the game and using a downscale filter will yield rather blurry results, which can hurt the encoding quality as well, since it'll be harder for the encoder to spot similarities between the frames.
 

Jack0r

The Helping Squad
I call this a very questionable comparison:
520519269 - 30 fps - 960x540 FFSplit
520507805 - 30 fps - 1024x576 OBS

520400008 - 25 fps - 852x480 OBS
520565849 - 25 fps - 960x540 FFSplit

I did not bother to download each vod and compare the encoder setting, but instead I just downloaded ffsplit quickly and made a comparison as well:
1280x720 - 30 fps - 2000 bitrate

FFsplit uses 720p as the base resolution while for OBS I used the recommended downscale.

Only encoder settings difference:
OBS: keyint=250 / keyint_min=25 / nal_hrd=none
FFSplit: keyint=60 / keyint_min=6 / nal_hrd=cbr

https://dl.dropboxusercontent.com/u/1672581/ffsplit_vs_obs.avi
 

Anonanon

Member
Krazy: I know both OBS and FFSplit use x264 so that's why I'm even more confused. 960x540 is my target resolution but unfortunately 1024x576 was the closest I could choose in OBS' downscale.

Jack0r: Both programs' keyframe settings are set to 2 since Twitch enforces that. Although I don't know what nal_hrd is. The main issue is OBS suffers from huge blocking once things are in motion. The settings are almost identical so I don't think the slight inconsistency made one extremely blocky over the other.

Paibox: My base has always been 1280x720 and relied on OBS' lanzos downscale to attempt to reach 540p or 576p. There was that one clip that was 480p but it was old.

I'll do more tests in a bit, fairer tests especially.
 
Top