Youtube Upload and Streaming Quality Notes.

Ok I just tested Momodara IV and Quicksync won, no contest.

Color accuracy and saturation was way better than NVENC. And even with NVENC set to 4 b-frames (optimal for a game with relatively low screen movement), it still didn’t resolve every pixel fully. Certain edges and corners (such as dialogue boxes) were muddy.

I really cranked up X.264 with a lot of extra options. It matched Quicksync’s color saturation and generally looked the same. Until…I started fighting enemies. Once I started attacking and darting around—X.264 had trouble keeping up and resolving all pixels, during such motion. Even though I had lots of extra motion options turned on for X.264

Quicksync had perfect color saturation, sharply resolved every pixel, and was able to keep up with motion, with zero artifacts.

I’m gonna go on a limb here and say Quicksync, if you have it (sorry AMD) is the best choice for 2-D pixel art games or old games like NES and SNES. I still need to test a 2-D fighter. But have a feelling Quicksync will shine there, as well.

*remember, I have a Kaby Lake i5 7600K processor. Older versions of Quicksync may not look as good.

*I just realized I have a laptop with an Ivy Bridge i5. That’s 4 generations older than Kaby Lake. I will compare the Quicksync on that, very soon!

1 Like

Something cool about NVENC in OBS is that it has a preset for a “lossless” mode (remember to set OBS to record in RGB colorspace, before you use it).

Its technically not 100% lossless. But its real close. And NVENC is very fast (it uses Cuda during lossless mode), so its useable. So, you can record a nearly lossless clip of a game. And then run that clip through OBS and try the different encoders on the exact same content.

Trying to do something similarly lossless with X.264 would require a bunch of horsepower (example: Mediainfo reports a bitrate of 374 Megabytes per second, on my lossless Dirt 3 clip, made with NVENC).

With MSI Afterburner, you can do an actual uncompressed dump of your framebuffer. It actually isn’t all that intensive on your CPU. But, you need tons of hard drive space and also TONS of hard drive throughput. I have a budget SSD and large sustained writes are the main glaring weakness of budget SSD. I’m also unsure if OBS can even read uncompressed files. VLC even doesn’t do it, by default. Seem’s I need an external encoder.

So, yeah, NVENC lossless mode is handy.

Also, I came up with a new way to upscale videos for Youtube. Use OBS.

OBS has a scaling feature. You can downscale or upscale. And since you can run video files through OBS----you can effectively upscale them in real time. Previously, I was using a program which uses a very CPU intensive super resolution scaling algorithm, for upscale. The quality is amazing, but it encodes at like 2-6 fps on my quad core, for 2K or 4K upscale. That’s like 12 minutes to upscale the 40 second Dark Souls 2 clips I was testing.

In OBS, you encode in real time. and it uses a lightweight Lanczos scaler. The quality of scaling isn’t as good. But this is just to fake out youtube into thinking a 720p recording is 2K or 4K, so that youtube will put more bitrate on it. You can also do it at 60fps. So if your original video is 30fps—this effectively frame doubles it (not frame interpolation) to 60fps. And youtube assigns more bitrate for that, as well.

So I can run my video files through OBS and upscale them at whatever framerate I choose (assuming my hardware can keep up). Just crank the bitrate and let it rip! I tested a Soul Caliber 6 clip set for a 2K upscale at 60,000kbps bitrate and it was no problem. And at a bitrate such as that, the encoder you use doesn’t really matter. So, just use something fast! Like Quicksync or NVENC. I tested it with Quicksync.

2 Likes

Here’s a universal suggestion for stream quality boost, no matter which encoder you use:

Play your game in the same resolution as your stream. So, no downscaling. OBS’ scaler favors speed, rather than quality. Streaming at the same res as your gameplay, looks a lot better.

Certain games lend themselves to this. Fighting games, for example. Those are absolutely fine in 720p. So, play and stream at 720p for better quality. Rather than downscaling from 1080p or whatever.

1 Like

Ok I just ran some NVENC “lossless” recordings of 4 different games, through Quicksync on my Ivy Bridge laptop.

Compared to the same “lossless” files through Quicksync on my Kaby Lake------Kaby Lake’s Quicksync is very noticeably better. Ivy Bridge looks like its not using b-frames at all. Way more macroblocking. Overall look is somewhere in between X.264 super fast and very fast. Mostly looking like super fast.

That said, its serviceable. Soul Caliber 6 had a lot of macroblocking in the backgrounds. But the characters looked pretty good. I would say that I’d probably still use Quicksync to capture this game, rather than CPU. But SC6 is very light on CPU. So, you have a lot to give CPU encoding on OBS.
Dirt 3 was pretty bad, though. I’d def use CPU encoding, here.
Momodara 4 looked great. Basically as good. I expected that. Its a very simple game to capture.
Smoke and Sacrifice had more muddyness, but wasn’t drastically worse. Decent, overall. Kaby Lake Quicksync has some Quality issues with that game, as well. Compared to NVENC. Also a lightweight game, so CPU encoding would still be the choice.

Also, it had trouble keeping up 60fps capture, with OBS’ Asynchronous setting maxed out for Quicksync. You’ll probably need to keep that setting at the default “4”, which will hurt quality even more.

I’m curious if Intel will be making large improvments to Quicksync, with their upcoming integrated graphics Iris Plus 940 for Comet Lake, which are reportedly twice as powerful as their current stuff, in terms of overall GPU potency. And that’s if Iris Plus is even in most of the chips. In the past, they only put past iterations of Iris graphics in a couple of rare SKUs.

1 Like

Interesting note about Soul Caliber 6:

The game has a really heavy depth of field effect on the stage backgrounds. Which means that the beautiful stages are heavily blurred, like 80% of the time.

On PC, you can edit a config file and remove the effect. Revealing the stages in all their glory.

However, for lower bitrate streaming (I’ve been testing under 3500kbps, 720p), it seems advantageous to have the effect on. The encoders see the blurred areas as lower detail and gives more bits to the characters. I compared side by side slow motion and frame by frame. There are a lot more frames where characters appear “high quality”, when you capture gameplay with the depth of field blur effect turned on. Seems that NVENC, X.264, and modern Quicksync are all smart enough for this to work out (analyzing frames and prioritizing bits is known as Adaptive Quantization).

Also, Quicksync is the worst at compressing the blur effect, itself. Showing more macroblocking and that combing effect. X.264 and NVENC do a good job of making the blur look more natural. X.264 is the best, in this specific detail, as long as you use the “Faster” preset or better.

FYI, I just happened across a video which claims and then shows that NVENC suffers in streaming smoothness, when you start to add extra stuff like picture-in-picture with a webcam, overlays, etc.

time stamped to the part where he shows NVENC with a webcam

Unfortunately, he doesn’t go into a lot of detail, such as which settings he is using. It may be possible to relax a couple of settings, to get smoothness from NVENC with extra video sources. Example: moving from “max quality” setting (which uses more GPU resources/Cuda) to “Quality” (which does not use Cuda). Or trying the old NVENC codepath in OBS, rather than the “new” codepath option.

I might test this some time. I do have a web cam (although I don’t plan to use it during streaming).