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.
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
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.
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. And here are screenshots of a different animation frame, same bit rates: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.
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.
All of these are roughly equal image quality, and it seems that values below CQP 30 don't necessarily provide better quality.
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:The screenshots have some very visible square-angle artifacts, all the way up to 32 Mbit/s.
Next, is the NVENC 'High Quality' Preset:For 8 Mbit/s and above, the image quality is much improved, the artifacts are much less pronounced.
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.
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.
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.
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
Finally, we have two video examples, one using the CQP settings above, and one using x264 4 Mbit/s for comparison.
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
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)