loading...

Elgato HD60 / H.264 Quality Tests

Elgato HD60

The Elgato HD60 and Open Broadcaster Software (OBS) Studio provide a very affordable way to record 1920x1080 60 FPS videos. Streaming directly to YouTube is practical, but your internet provider may put some limits to quality.

If videos are recorded with too low a bit rate or the wrong encoder settings, image quality will suffer, especially videos with fast movement. 2D games may work fine with a low bit rate, but games with lots of particles or vegetaion will turn into a mess of artifacts.

In the following, a small set of different encoding settings and bit rates are tested, with a few screenshots giving an indication of general image quality. Different bit rates and quality presets are tested, as well as screenshots from the YouTube player after uploading a set of differently encoded videos to YouTube.

Test Methods

Dragon Ball FighterZ (2018)

The source video is captured from a PlayStation 4 using an Elgato HD60. OBS Studio was used to encode the input with the Elgato as an input source. The Elgato software is not very stable right now, which is why OBS Studio was used. All videos were captured in a resolution of 1920x1080 with a frame rate of 60 FPS.

The recorded video is from "Dragon Ball FighterZ", a gorgeous toon-shaded fighting game, with a lot of flickering, screen shake, and a variety of visual effects, which tended to have a lot of artifacts when encoded at low bit rates such as 4 Mbit/s. For every recording, I found the same two consecutive animation frames for easy comparison, and captured a lossless screenshot using Media Player Classic.

A big limitation are that screenshot frames are randomly positioned relative to key frames, which makes the quality of individual screenshots vary a lot, however, general trends in image quality as a function of bit rate or quality settings should still be observable.

The full set of OBS Studio settings used across all tests are listed here:
Capture Hardware  : Elgato HD60
Encoding Software : OBS Studio
Resolution        : 1920x1080
Frame rate        : 60FPS
Encoder           : NVENC H.264
Profile           : main
Level             : auto
Two-Pass Encoding : off
Keyframe Interval : auto

Bit Rate

The first set of screenshots can be used to examine how bit rate affects image quality of the same animation frame. We can both examine videos encoded using Constant Bit Rate (CBR), as well as videos encoded using Constant Quantization Parameter (CQP), a variable bit rate encoding.

Constant Bit Rate

Test-specific settings:
Rate control : CBR
Preset       : High Quality
Bitrate      : 1 - 64 Mbit/s

In the following, we can see screenshot examples of video bit rates from 1 Mbit/s - 64 Mbit/s. Each row of screenshots are from the same animation frame but in different recordings of the same looping animation. Because of this certain visual effects will be slightly different among them.

Each thumbnail links to a full screenshot.
1 Mbit/s
2 Mbit/s
4 Mbit/s
8 Mbit/s
16 Mbit/s
32 Mbit/s
64 Mbit/s
And here are screenshots of a different animation frame, same bit rates:
1 Mbit/s
2 Mbit/s
4 Mbit/s
8 Mbit/s
16 Mbit/s
32 Mbit/s
64 Mbit/s

Image quality clearly improves from left to right, with a big jump between 4 Mbit/s and 8 Mbit/s. Larger bandwidths have diminishing returns in image quality.

Constant Quantisation Parameter

Test-specific settings:
Rate control : CQP
Preset       : High Quality
CQP          : 30-1

In the following, we can see screenshot examples of CQP values from 30 to 1, with 1 being the best quality. The resulting average bit rates are written in parenthesis after the CQP value. For instance, CQP 28 roughly compares to CBR 16 Mbit/s when it comes to bandwidth.

CQP 30 (~13 Mbit/s)
CQP 28 (~16 Mbit/s)
CQP 24 (~30 Mbit/s)
CQP 16 (~58 Mbit/s)
CQP 8 (~86 Mbit/s)
CQP 4 (~87 Mbit/s)
CQP 1 (~87 Mbit/s)
CQP 30 (~13 Mbit/s)
CQP 28 (~16 Mbit/s)
CQP 24 (~30 Mbit/s)
CQP 16 (~58 Mbit/s)
CQP 8 (~86 Mbit/s)
CQP 4 (~87 Mbit/s)
CQP 1 (~87 Mbit/s)

All of these are roughly equal image quality, and it seems that values below CQP 30 don't necessarily provide better quality.

Quality Presets

Test-specific settings:
Rate control : CBR
Preset       : Default, High Quality
Bitrate      : 1 - 64 Mbit/s

The NVIDIA encoder has quality presets which provide very different results. In the following screenshots, the 'Default' preset is compared to the 'High Quality' preset.

First, the NVENC 'Default' Preset:
1 Mbit/s
2 Mbit/s
4 Mbit/s
8 Mbit/s
16 Mbit/s
32 Mbit/s
64 Mbit/s

The screenshots have some very visible square-angle artifacts, all the way up to 32 Mbit/s.

Next, is the NVENC 'High Quality' Preset:
1 Mbit/s
2 Mbit/s
4 Mbit/s
8 Mbit/s
16 Mbit/s
32 Mbit/s
64 Mbit/s

For 8 Mbit/s and above, the image quality is much improved, the artifacts are much less pronounced.

YouTube Encoding

When uploading to YouTube, video quality becomes the baseline for what quality the YouTube encoding can deliver. However, since YouTube bandwidth settings are limited, there will be a point of diminishing returns for uploading videos of high quality.

The following screenshots are from the YouTube player running at its '1080p60' quality, with YouTube encoded versions of videos with different quality settings. In these videos, we're using these encoding settings:

Test-specific settings:
Rate control : CQP
Preset       : High Quality
CQP          : 32-1

And here are the resulting quality, with the lowest quality / filesize on the left.

CQP 32 (~11 Mbit/s)
CQP 30 (~13 Mbit/s)
CQP 28 (~17 Mbit/s)
CQP 24 (~30 Mbit/s)
CQP 2 (~86 Mbit/s)
CQP 1 (~87 Mbit/s)
CQP 32 (~11 Mbit/s)
CQP 30 (~13 Mbit/s)
CQP 28 (~17 Mbit/s)
CQP 24 (~30 Mbit/s)
CQP 2 (~86 Mbit/s)
CQP 1 (~87 Mbit/s)

The screenshots on the right are not significantly higher quality than the ones on the left. In this case, CQP 32 is not significantly worse than CQP 1, even though the uploaded CQP 1 file has 8 times more information per frame.

Recommended Settings for YouTube

YouTube screenshot (CQP 32, High Quality)
YouTube screenshot (CQP 32, High Quality)
YouTube screenshot (CQP 32, High Quality)
YouTube screenshot (CQP 32, High Quality)

Based on the test results, enabling the 'High Quality' preset is generally recommended. 8 Mbit/s bandwidth seems reasonable, or a CQP setting of 32. Although CQP encoding may provide better average image quality, CBR may be more suitable for streaming, because it ensures limits on bandwidth. Listed below are recommended settings based on the test results.

Local recording settings:
Capture Hardware  : Elgato HD60
Encoding Software : OBS Studio
Resolution        : 1920x1080
Frame rate        : 60FPS
Encoder           : NVENC H.264
Rate control      : CQP
Preset            : High Quality
CQP               : 32
Profile           : main
Level             : auto
Two-Pass Encoding : off
Keyframe Interval : auto
- Screenshots on the right are from YouTube, from an uploaded video using these settings.

Streaming settings:
Capture Hardware  : Elgato HD60
Encoding Software : OBS Studio
Resolution        : 1920x1080
Frame rate        : 60FPS
Encoder           : NVENC H.264
Rate control      : CBR
Preset            : High Quality
Bitrate           : 8 Mbit/s
Profile           : main
Level             : auto
Two-Pass Encoding : off
Keyframe Interval : auto

Video Examples

Finally, we have two video examples, one using the CQP settings above, and one using x264 4 Mbit/s for comparison.

Good Quality:

NVENC H.264 CQP 32 (High Quality) video example:
Capture Hardware  : Elgato HD60
Encoding Software : OBS Studio
Resolution        : 1920x1080
Frame rate        : 60FPS
Encoder           : NVENC H.264
Rate control      : CQP
Preset            : High Quality
CQP               : 32
Profile           : main
Level             : auto
Two-Pass Encoding : off
Keyframe Interval : auto

Bad Quality:

x264 4 Mbit/s CBR (veryfast) video example:
Capture Hardware  : Elgato HD60
Encoding Software : OBS Studio
Resolution        : 1920x1080
Frame rate        : 60FPS
Encoder           : x264 (software encoder)
Rate control      : CBR
CPU Usage Preset  : veryfast
Bitrate           : 4 Mbit/s
Profile           : main
Tune              : (None)