Question / Help Bad YouTube quality with nearly lossless OBS recordings

FallenCipher

New Member
I do a lot of local game recordings with OBS Studio at 1080p 60fps and archive them on my YouTube account. The problem is that my uploads always look really bad in comparison to uploads from other users at the same resolution and the same game.

For example: https://www.youtube.com/watch?v=L4i3QSXPeSs

I recorded this clip with the highest ingame settings at 1920x1080 with the following OBS Studio settings:

  • Recording Type: Standard
  • Recording Format: mp4
  • Encoder: NVENC H.264 (i have a Geforce GTX 1070)
  • Rescale Output: unchecked
  • Custom Muxer Settings: none
  • Rate Control: CQP
  • CQP: 18
  • Keyframe Interval (seconds): 2
  • Preset: High Quality
  • Profile: high
  • Level: auto
  • Use Two-Pass Encoding: checked
  • GPU: 0
  • B-frames: 2
  • Base (Canvas) Resolution: 1920x1080
  • Output (Scaled) Resolution: 1920x1080
  • Downscale Filter: Lanczos
  • Common FPS Values: 60
  • Renderer: Direct3D 11
  • Color Format: NV12
  • YUV Color Space: 709
  • YUV Color Range: Partial
The local recorded video file looks almost lossless to me but comes out worse in YouTube with a lot of artifacts in comparison to this video https://www.youtube.com/watch?v=oSbhjlJ_Ou4

Is there something i can do to improve my quality with OBS?
 

Suslik V

Active Member
Videos differ from the YouTube encoding (encoded at different time). But the main difference is content. Your video much faster, has a lot of objects, rapidly moving camera etc. There is no quality loss you speaking of (according to content). I compared 720p videos (due to max display resolution 1280x1024 I have).
 
The quality you have for your uploads are very nice, you really can't get much better via YouTube.

You could try converting your 1080p60fps to 1440p60fps or even 4k standard to try and combat the artifact compression by YouTube, honestly though it really is not worth your time as re-encoding can take a while, dependent upon file size .

ShotCut or HandBrake are both good free converters/remuxers:
https://www.shotcutapp.com/
https://handbrake.fr/

You could also try adding a slight sharpen filter when editing before re-encoding. This will help a little though it really comes down to YouTube compression format standards.

The main difference between your video uploads and the one by Frankie that you linked is the YouTube playback encoder. For a little bit you will be stuck on .avc1 encoding format for your upload, which causes greater compression loss, until YouTube decides (Sometimes a few days) to remux your upload into .vp9 format which offers much better quality loss control. For older video uploads you may even have to re-upload them to spur YouTube into re-encoding, some older videos of mine are still sitting in .avc1 format, granted virtually no views as I don't really do much of anything.
 

chummy

Member
The major problem is than youtube uses bad H264 settings and use good settings for VP9 encoding. Vimeo for example encode at same bitrate than youtube but use 2-pass encoding for H264 and reduce artifacting amount compared to youtube.

Even if your video receive VP9 it dont mean everyone will watch the VP9 version, some browsers depending on user hardware will force H264 version like Edge and IE by standard. Both forces hardware acceleration for video playback and those with H264 acceleration only will play this in youtube. In Chrome and Firefox is another story.

Anyway Overwatch is not the most complex scenario, beside its fast motion there is no major tiny details which in combination with fast motion cause heavy keyframe pixelation at Youtube. So your video at H264 is yet watchable, even the small text is possible to read without problem.

Besides 1440p/4k upscale @BornDownUnder said there would be another upscale option which is the 2048x1152. That one is a old trick which will make Youtube play 2048x1152 file in place of 1920x1080. So why doing that upscale? Youtube has a special encoding bitrate for that resolution which is 50% more than 1080p30fps.

Just take notice than resolution from 2048x1152 and above for framerate of 48, 50 and 60fps Youtube only encode VP9 version. So at beginning with few views your video will only have H264 1080p60fps@5mbit/s and not receive 1152p60@6mbit/s until youtube decide to encode VP9 for it when reach specific view amount. For 30fps or lower fps Youtube create H264 at any resolution.

Another tip for fast motion footage is record it at lower framerates, 30fps will produce few less artifacts than 60fps at low bitrate.

Some thing to pay attention is bitrate, if youtube use such bitrate of 4-5bit/s for 1080p files is why their user base has that amount of bandwidth, so if you put higher resolution file like 1440p for example where youtube give 10mbit/s if viewer has lower bandwidth youtube will downscale video to 1080p@5mbit/s or 720p@3mbit/s which will cause same artifacting issue.

Global average connection speed from 2015 is 5mbit/s, my country has only 3.6mbit/s and rich countries has around 10-15mbit/s average. So paying attention for connection speed is valiable to know what to do with your video resolution for youtube.

Average bitrate values youtube give for complex videos:

1080p30fps H264= 4mbit/s
1080p60fps H264= 5mbit/s

2048x1152p30fps H264= 6mbit/s

1440p30fps H264= 10mbit/s
4k30fps H264= 23mbit/s

----------------------------------------

1080p30fps VP9= 3mbit/s
1080p60fps VP9= 4mbit/s

2048x1152p60fps VP9= 6mbit/s

1440p30fps VP9= 8mbit/s
1440p60fps VP9=12mbit/s

4k30fps VP9 = 15mbit/s+
4k60fps VP9 = 17mbit/s+
 
Love the info Chummy, I'll do some test videos to compare upload quality with that resolution scale. You must have dragged that up from beta 1080p section?
 

chummy

Member
I have some tests i done recently with complex footage, i mean high motion + heavy detailed vegetation. Quality always gonna be hardly degraded with these elements but yet each change help decreasing a bit artifacting.

This is 1080p60 original version, will be noticed heavy blocky pixelation in keyframes at 5,10,15,20,25 seconds which is the worse problem from Youtube H264 encoder, for VP9 it vanish but this video has no VP9 yet:
https://youtu.be/cqG60_RIvpE

Here is 1080p30 and you will notice less blocky artifacting at same keyframes, only second 15 and 20 has same level of pixelation of 1080p60, so blocky artifacting decreased a bit randomly for 30fps:
https://youtu.be/41piDWHUqww

Now 2048x1152 30fps H264:
https://youtu.be/XhWITqfVJWw

Here is 1440p60fps which is VP9 only and you will notice big gains because it bitrate plus VP9 efficiency.
https://youtu.be/PS1V_EGGy5A

What should be talk is than VP9 like HEVc has different algorithm for encoding, VP9 try to blur details in low bitrate to save data and avoid pixelation. so in 1080p complex videos with much details VP9 always keep it blurry but avoid heavy pixelation in keyframes for example.

To finish here is two playlist with various tests with different "technics" i used to find out what give better visual results in Youtube. just pay attention for H264 vs VP9 versions.
https://www.youtube.com/playlist?list=PLGcxGqRYwkUa0uSQCJ6CJy9NicNfzaQE0
https://www.youtube.com/playlist?list=PLuI_0h39VAFCdFhg0pmB9HC0s8Wjn9W7n

What i should say is than when footage has too much details like vegetation + fast motion you should use the in game blur + better AA possible to improve video compression. If blur and AA are not possible inside game then it can be done in video processing.

Even if you upscale like i said users with slower connection spped will be forced to watch lower resolutions like 1080p, so applying blur+AA for upscale footage still help the smaller resolution versions.
 
Last edited:

FallenCipher

New Member
Thanks for the very detailed explanation BornDownUnder and chummy.
So it's up to YouTube's mercy if i don't want to re-encode :-)
 

Poet

New Member
Looks like people have already weighed in, but you can check which codec is being used on your video by right-clicking it and chosing "Stats for Nerds". Your test video is still using avc1 rather than vp9, and I DEFINITELY see the quality difference you're talking about..... if that in fact is the cause, and I'm sure it does play a role, regardless of your settings.

I've uploaded similar Overwatch footage and never had the same issue you're having, though mine are all on vp9 already. I'm curious to see if the codec really does change quality that much.
 

chummy

Member
For chrome and Firefox just install H264ify extension and enable it. Restart browser and open new youtube tab so your video will play at H264 and can see the difference. Besides that you can download your own content in both codecs and watch it directly in your PC to make a better comparison frame by frame.
 
Awesome comparison list mate, just wish my i5 2500 and r290x liked h.264, drops frames like crazy no matter what I do.

It shouldn't take long to get your videos re-encoded automatically by YouTube, generally takes 10 to 72hrs, based in Australia which has not got the best records for internet data transfer speeds globally.

Everybody is at the mercy of YouTube unfortunately, though have better data allowance for streaming so if you are into that it would be good.
 

agenthunk

Member
try a slow game like Attila Total War and Troy Total War ,that is when you should really bitch if quality is lost ...even if you record in Lossless quality...
 
Top