🆕High Quality Recording (in OBS® Studio)
This commit is contained in:
@@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
category: "OBS"
|
||||||
|
title: "High Quality Recording (in OBS® Studio)"
|
||||||
|
comments: true
|
||||||
|
redirect_from:
|
||||||
|
- /guides/high-quality-recordings/
|
||||||
|
---
|
||||||
|
|
||||||
|
{% capture content %}Ever since publishing the guide on how to achieve the {% include inline/link.liquid url="https://www.xaymar.com/guides/obs/high-quality-streaming/nvenc/" content="best possible NVIDIA NVENC quality with FFmpeg 4.3.x and below" %}, people repeatedly ask me what the best possible recording settings are. So today, as a Christmas present, let me answer this question to the best of my knowledge and help all of you achieve a quality you’ve never seen before.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=1 content="The Basics: Format, Space, Range and Error" %}
|
||||||
|
{% capture content %}As usual in life, nothing is allowed to be simple. And video just so happens to be one of the more complex topics to exist, as it merges many fields of science into one. But that doesn’t mean that you won’t be able to understand the basics of it:{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Color Format" %}
|
||||||
|
{% capture content %}The color format describes how color information is stored, and you might have already heard about NV12, I420, I422, and I444. The four I listed are color formats that store information in different ways, some interleaved, some subsampling. “What’s subsampling?” you ask, and that’s really simple to answer: Human perception is imperfect, and we are far more likely to notice brightness differences than color differences – so storing brightness and color at different sizes is an efficient compression method.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}This is what the 444, 422, and 420 part describes, though it’s usually written as X:Y:Z. The X component describes how to resize the luma (brightness) plane, while the Y and Z component describe how to resize the chroma (color) plane. This means that for 4:2:0 at 1920×1080 we have a luma plane of 1920×1080 (the 4: part), and a chroma plane of 960×540 (the 2:0 part). With 4:2:2 we would get a chroma plane of 960×1080 instead. NV12 is just a different way to store 4:2:0.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}Note that reducing the subsampling fraction increases the accumulating error, which is something we want to avoid at all cost.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Color Space" %}
|
||||||
|
{% capture content %}Since you now know about Color Formats, it’s time to learn about color spaces. Color spaces describe how the stored color information can be converted to something that makes sense to a computer. You’ve probable heard of the major three currently in use: Bt.601, Bt.709, and sRGB.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}Most content available in the modern day is either Bt.709 or sRGB, while HDR content is Rec.2020 or ACEScc. Since OBS Studio has yet to support HDR, and HDR still hasn’t achieved widespread adoption (due to various reasons), we’ll focus on the SDR ones: Bt.709 and sRGB. “Why not Bt.601?” Because Bt.601 has been replaced by Bt.709 for a long time, and it was only used for compatibility.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}Which Color Space you use depends on the content you intend to capture. Bt.709 is used by Movies, Webcams, and a lot of other things, while sRGB is being used by almost every SDR game you can think of. If you want to record PC games or software with the least amount of accumulating error, set it to sRGB. Otherwise set it to Bt.709.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Color Range" %}
|
||||||
|
{% capture content %}Color range specifies how much “range” the luma and chroma planes have, and should have no effect when the Color Format is RGB. The two settings you will most likely see are “Partial” (TV, Legal, MPEG) and “Full” (PC, Extended, JPEG). When you use the “Partial” setting, luma has a range of 16 to 235, while chroma has a range of 16 to 240. If you use the “Full” setting, both luma and chroma have a range of 0 to 255.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}In the modern day there should be no reason to use Partial anymore, as it was primarily used as footroom and headroom during analog and early digital TV. Unfortunately once again we have some software and hardware not implementing the standard fully, so “Partial” is often recommended due to that. However for the best recording quality, and lowest accumulating error, you should set it to “Full”.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Accumulating Error" %}
|
||||||
|
{% capture content %}You might have noticed that I kept mentioning accumulating error through the description, and that’s for a good reason. Accumulating error is something that happens when you repeatedly convert, compress, decompress, resize, resample or do other mathematical things with information in a limited amount of space. Accumulating error is everyones enemy, especially when trying to be correct with colors. Chances are that you’ve already encountered accumulating error in the wild as color banding from post processing in video games.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Scaling" %}
|
||||||
|
{% capture content %}Scaling is something that should be avoided, as it removes any possibility of lossless and immediately drops you high quality recording only. If you are forced to use scaling, use Bicubic instead of Lanczos. Lanczos adds artifacts due to its excessive sharpening, and Linear is too smooth for real usage.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=1 content="Choosing your Recording Quality" %}
|
||||||
|
{% capture content %}Before we actually step into the settings themselves, you first need to choose what quality you want to aim for, and what quality you can actually achieve with your hardware. There are a few quality “levels” that you can aim for, with each one having different requirements, use cases and even effects on video editing software. In the order of highest quality to lowest:{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Lossless (True Lossless)" %}
|
||||||
|
{% capture content %}This is the highest possible quality that you can achieve, and is usually described as raw output. Due to the insanely high requirements on hardware and software, it is very rarely supported for video, and almost only supported for single photos or short photo series. Barely any PC will be able to handle true lossless playback, much less recording, at modern framerates and resolutions. File sizes likely will exceed 5 gigabits per second, so recording it requires a super fast SSD on PCI-E.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Effective Lossless (aka Near Lossless)" %}
|
||||||
|
{% capture content %}Effective lossless is a step down from True Lossless, and achieves a similar goal to it: Instead of keeping things perfect, a very tiny margin of error is acceptable, low enough that it will not cause any error in the final output. You might already be familiar with some of the codecs that can achieve this, such as Apple ProRes 4:4:4:4 HQ, H.264 and H.265. It’s very likely that you have already used this before and realized that your hardware might be completely outclassed by the processing requirements of it. The file sizes however are still large, often exceeding 1.5 gigabit per second and still requires a fast SSD.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Visually Lossless (aka Indistinguishable)" %}
|
||||||
|
{% capture content %}A third variant of the lossless kind is visually lossless, which has a higher error threshold than effective lossless. Instead of aiming to be as close to the original footage, we just try to be visually indistinguishable from the original for most algorithms and human perception (and technology based on human perception). This allows the file sizes to shrink to just 300 megabits per second or less, which is already be possible to handle with a normal SSD. You should start here if you have a Turing or Ampere NVIDIA GPU paired with a mid- to high-end Intel or AMD CPU.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="High Quality" %}
|
||||||
|
{% capture content %}In case any of the above aren’t to your liking or impossible, the next step down approaches the area where errors start to be visible to the trained eye, and definitely noticable by algorithms of any kind. File sizes here shrink to 150 megabits per second, while still delivering reasonable overall quality in the footage. In the event that you have an AMD GPU or want to use the integrated GPU in Intel or AMD APUs, this is most likely your best starting point.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Acceptable Quality" %}
|
||||||
|
{% capture content %}As a last ditch effort when everything else fails, this is already in the area where errors are visible. The quality from this setting will be low enough to have significant impacts on video editing tools, and makes your editing life a living nightmare. You can forget about getting any quality out of this, the best you can hope for is footage that doesn’t get taken over by artifacts. You have been warned, it’s your choice if you want to use this.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=1 content="Setting up the Encoders" %}
|
||||||
|
{% capture content %}Done picking what quality level you want? Then lets move on to encoders!{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture list %}
|
||||||
|
<li>{% include inline/link.liquid url="amf/" content="AMF" %}</li>
|
||||||
|
<li>{% include inline/link.liquid url="nvenc/" content="NVENC" %}</li>
|
||||||
|
<li>{% include inline/link.liquid url="prores/" content="ProRES" %}</li>
|
||||||
|
<li>{% include inline/link.liquid url="qsv/" content="QSV" %}</li>
|
||||||
|
<li>{% include inline/link.liquid url="x264/" content="x264" %}</li>
|
||||||
|
{% endcapture %}{% include blocks/list.liquid content=list %}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
category: "OBS"
|
||||||
|
title: "High Quality Recordings with AMD AMF (in OBS® Studio)"
|
||||||
|
comments: true
|
||||||
|
---
|
||||||
|
|
||||||
|
{% capture content %}For the unfortunate souls who bought an AMD GPU on the belief that AMD can fix their encoder via Drivers, unfortunately "Fine Wine™" only goes so far. AMDs encoder lacks features that other vendors had for years, and simply do not hold a candle to Intels and NVIDIAs encoder. Still, you're not quite out of luck, as you still have NV12 recording as an option, which limits you to High or Acceptable Quality.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="True Lossless" %}
|
||||||
|
{% capture content %}At the time of writing this, AMD does not have an encoder capable of 4:4:4 encoding.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Effective Lossless" %}
|
||||||
|
{% capture content %}At the time of writing this, AMD does not have an encoder capable of 4:4:4 encoding.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Visually Lossless" %}
|
||||||
|
{% capture content %}At the time of writing this, AMD does not have an encoder capable of 4:4:4 encoding.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="High Quality" %}
|
||||||
|
{% capture content %}As no AMD encoder supports 4:4:4, you're free to use NV12 here. Ensure your Color Format is set to NV12, Color Range to Full, and that your Color Space matches the content.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture columns %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/obs64_0HRbKNS2ZG.png" caption="H.264 CQP" %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/obs64_PnMKEZtZck.png" caption="H.265 CQP" %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% endcapture %}{% include blocks/columns.liquid content=columns columns=2 %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Acceptable Quality" %}
|
||||||
|
{% capture content %}As no AMD encoder supports 4:4:4, you're free to use NV12 here. Ensure your Color Format is set to NV12, Color Range to Full, and that your Color Space matches the content.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture columns %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/obs64_cz9EQNZQmB.png" caption="H.264 CQP" %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/obs64_TXnfMbeCF2.png" caption="H.265 CQP" %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% endcapture %}{% include blocks/columns.liquid content=columns columns=2 %}
|
||||||
|
|
||||||
|
{% capture content %}{% include inline/link.liquid url="../" content="Back to the Guide" %}{% endcapture %}{% include blocks/paragraph.liquid align="center" content=content %}
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
category: "OBS"
|
||||||
|
title: "High Quality Recordings with NVIDIA NVENC (in OBS® Studio)"
|
||||||
|
comments: true
|
||||||
|
---
|
||||||
|
|
||||||
|
{% capture content %}With {% include inline/link.liquid url="https://streamfx.xaymar.com/" content="StreamFX" %}'s NVENC you can achieve the quality targets in one of two ways: Constant Quantization Parameters (CQP) or Variable Bitrate with Constant Quality (VBR-CQ). Both have their own advantages and downsides, and it depends entirely on your requirements which one you should use. Modern {% include inline/link.liquid url="https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new" content="NVIDIA GPUs (Pascal and newer)" %} also all support 4:4:4 and 4:2:0 encoding at most of the quality levels shown here with hardly any impact on framerate. Please note that due to API limitations, it is currently not possible to get zero-copy encoding for 4:4:4 content.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}When using VBR-CQ, it should be noted that the quality you will end up with is directly related to the settings chosen, which will have a direct impact on framerate. This impact will be far higher than anything CQP could cause, so be warned of skipped frames from rendering lag if you don't have OBS Studio running as Administrator. However thanks to this additional work, VBR-CQ can exceed CQP quality while using less space - very similar to how CRF in x264 works!{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="True Lossless" %}
|
||||||
|
{% capture content %}Due to codec limitations, "True Lossless" is not possible with H.264. It is however possible to get extremely close with I-only encoding, which has next to no measurable error. Ensure that you have your Color Format set to I444, Color Range set to Full, and that your Color Range matches the content recorded.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture columns %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642026495_obs64_OpulentStandardLlama.png" caption="H.264" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642031553_obs64_ElementaryForkedAsianpiedstarling.png" caption="H.265" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% endcapture %}{% include blocks/columns.liquid content=columns columns=2 %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Effective Lossless" %}
|
||||||
|
{% capture content %}Effective Lossless is not quite True Lossless, but close enough that it will almost never matter. Ensure that you have your Color Format set to I444, Color Range set to Full, and that your Color Range matches the content recorded.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture columns %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642026797_obs64_LeadingMetallicNurseshark.png" caption="H.264 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642041471_obs64_PeskyPuzzledAsiaticlesserfreshwaterclam.png" caption="H.264 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642031790_obs64_TeemingRecklessBullmastiff.png" caption="H.265 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642032358_obs64_ShySpanishWolverine.png" caption="H.265 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% endcapture %}{% include blocks/columns.liquid content=columns columns=4 %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Visually Lossless" %}
|
||||||
|
{% capture content %}Visually Lossless tries to get as close as possible to the point where Humans are unable to tell between original and encoded. Ensure that you have your Color Format set to I444, Color Range set to Full, and that your Color Range matches the content recorded.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture columns %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642026555_obs64_WellgroomedEarnestGroundbeetle.png" caption="H.264 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642028421_obs64_CulturedSolidEquine.png" caption="H.264 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642031992_obs64_TomatoOddGalapagossealion.png" caption="H.265 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642032844_explorer_OutrageousDroopyEasternnewt.png" caption="H.265 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% endcapture %}{% include blocks/columns.liquid content=columns columns=4 %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="High Quality" %}
|
||||||
|
{% capture content %}As we now have fallen below the ideal quality level where it matters, you can freely choose between I444 and NV12. Note that for H.264 encoding, you will need to change the 'Profile' to 'High' if you choose NV12. Ensure that you have your Color Format set to I444 or NV12, Color Range set to Full, and that your Color Range matches the content recorded.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture columns %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642026608_obs64_WhimsicalBareTomtit.png" caption="H.264 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642028483_obs64_HandyAnxiousAmericanalligator.png" caption="H.264 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642032037_obs64_EachMoistStork.png" caption="H.265 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642032889_obs64_SuperficialSeriousAmmonite.png" caption="H.265 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% endcapture %}{% include blocks/columns.liquid content=columns columns=4 %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Acceptable Quality" %}
|
||||||
|
{% capture content %}At this level you will likely be unable to reach reasonable quality, and can freely choose between I444 and NV12. Note that for H.264 encoding, you will need to change the 'Profile' to 'High' if you choose NV12. Ensure that you have your Color Format set to I444 or NV12, Color Range set to Full, and that your Color Range matches the content recorded.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
{% capture columns %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642026667_obs64_SoftGraciousGlowworm.png" caption="H.264 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642028506_obs64_BuzzingPrimaryVervet.png" caption="H.264 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642032071_obs64_FondArtisticArieltoucan.png" caption="H.265 CQP" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% capture column %}
|
||||||
|
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/1642032923_obs64_PutridGrayZeren.png" caption="H.265 VBR-CQ" link=true %}
|
||||||
|
{% endcapture %}{% include blocks/column.liquid content=column %}
|
||||||
|
{% endcapture %}{% include blocks/columns.liquid content=columns columns=4 %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Additional Information" %}
|
||||||
|
{% capture list %}
|
||||||
|
<li>Some of the settings for VBR-CQ can be freely adjusted in order to regain performance:
|
||||||
|
{% capture list2 %}
|
||||||
|
<li><i>Two Pass</i> can be disabled, but it will increase file size and may decrease quality.</li>
|
||||||
|
<li><i>Look Ahead</i> can be set as low as 16 in H264 and 4 in HEVC, but it will increase file size and may decrease quality.</li>
|
||||||
|
<li><i>Maximum B-Frames</i> can be freely adjusted, which may increase file size and may decrease quality.</li>
|
||||||
|
{% endcapture %}{% include blocks/list.liquid content=list2 %}
|
||||||
|
</li>
|
||||||
|
<li>You can freely adjust the Key Frame <i>Interval</i> for anything not requiring I-only.</li>
|
||||||
|
<li>On Pascal, Maxwell and Kepler GPUs, it may be necessary to set <i>Maximum B-Frames</i> to 0.</li>
|
||||||
|
<li>On some Hardware, it may be necessary to use the <i>Preset</i> "High Performance" over "Lossless High Performance".</li>
|
||||||
|
<li>When OBS Studio updates FFmpeg to a more recent version, it may be necessary to set the <i>Preset</i> and <i>Tune</i> via Custom Settings until StreamFX updates.</li>
|
||||||
|
{% endcapture %}{% include blocks/list.liquid content=list %}
|
||||||
|
|
||||||
|
{% capture content %}{% include inline/link.liquid url="../" content="Back to the Guide" %}{% endcapture %}{% include blocks/paragraph.liquid align="center" content=content %}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
category: "OBS"
|
||||||
|
title: "High Quality Recordings with ProRES (in OBS® Studio)"
|
||||||
|
comments: true
|
||||||
|
---
|
||||||
|
|
||||||
|
{% capture content %}ProRes only supports RGB and I444 and requires next to no additional setup, all you need to do is adjust the profile setting according to the table below. Due to there being no further profiles to support 4:4:4 at lower quality, 4:2:2 subsampling is used. This halves the horizontal chroma samples, while keeping the vertical chroma samples in tact – not exactly ideal for text and other high contrast content.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}
|
||||||
|
<thead><tr>
|
||||||
|
<th width="10%">Option</th>
|
||||||
|
<th width="*">Effective Lossless</th>
|
||||||
|
<th width="*">Visually Lossless</th>
|
||||||
|
<th width="*">High Quality</th>
|
||||||
|
<th width="*">Acceptable Quality</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tr>
|
||||||
|
<td>Profile</td>
|
||||||
|
<td>4444 Extreme Quality (AP4X)</td>
|
||||||
|
<td>4444 High Quality (AP4H)</td>
|
||||||
|
<td>422 High Quality (APCH)</td>
|
||||||
|
<td>422 Standard (APCN)</td>
|
||||||
|
</tr>
|
||||||
|
{% endcapture %}{% include blocks/table.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}{% include inline/link.liquid url="../" content="Back to the Guide" %}{% endcapture %}{% include blocks/paragraph.liquid align="center" content=content %}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
category: "OBS"
|
||||||
|
title: "High Quality Recordings with Intel QSV (in OBS® Studio)"
|
||||||
|
comments: true
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
{% capture content %}{% include inline/link.liquid url="../" content="Back to the Guide" %}{% endcapture %}{% include blocks/paragraph.liquid align="center" content=content %}
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
category: "OBS"
|
||||||
|
title: "High Quality Recordings with x264 (in OBS® Studio)"
|
||||||
|
comments: true
|
||||||
|
---
|
||||||
|
|
||||||
|
{% capture content %}The x264 encoder supports both 4:4:4 as well as 4:2:0, as long as the underlying hardware is fast enough to handle it. It also has two different ways to reach each quality level: Constant Quantization Parameter (CQP) and Constant Rate Factor (CRF). Unfortunately OBS Studio only offers the latter, so for now we are stuck with that.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}With a single-PC setup, 4:4:4 recording using CRF will be very difficult. You might have to lower the preset used in order to maintain reasonable performance in game and encodes. Note that OBS Studio must be assigned a higher priority than the game.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="True Lossless" %}
|
||||||
|
{% capture content %}Due to codec limitations, "True Lossless" is not possible with H.264. While I-only encoding gets extremely close (with almost no error), OBS's implementation of x264 forbids this.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Effective Lossless" %}
|
||||||
|
{% capture content %}
|
||||||
|
<thead><tr>
|
||||||
|
<th width="20%">Option</th>
|
||||||
|
<th width="*">Value</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tr>
|
||||||
|
<td>Rate Control</td>
|
||||||
|
<td>CRF</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CRF</td>
|
||||||
|
<td>0</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Keyframe Interval</td>
|
||||||
|
<td>1</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CPU Usage Preset</td>
|
||||||
|
<td>veryfast <i>(Picking a slower preset saves space, but takes more CPU)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Profile</td>
|
||||||
|
<td>high</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Tune</td>
|
||||||
|
<td>Any <i>(Ensure that your tune matches up with your target content, or leave at None)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>x264 Options</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
{% endcapture %}{% include blocks/table.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Visually Lossless" %}
|
||||||
|
{% capture content %}
|
||||||
|
<thead><tr>
|
||||||
|
<th width="20%">Option</th>
|
||||||
|
<th width="*">Value</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tr>
|
||||||
|
<td>Rate Control</td>
|
||||||
|
<td>CRF</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CRF</td>
|
||||||
|
<td>8</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Keyframe Interval</td>
|
||||||
|
<td>1</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CPU Usage Preset</td>
|
||||||
|
<td>veryfast <i>(Picking a slower preset saves space, but takes more CPU)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Profile</td>
|
||||||
|
<td>high</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Tune</td>
|
||||||
|
<td>Any <i>(Ensure that your tune matches up with your target content, or leave at None)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>x264 Options</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
{% endcapture %}{% include blocks/table.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="High Quality" %}
|
||||||
|
{% capture content %}
|
||||||
|
<thead><tr>
|
||||||
|
<th width="20%">Option</th>
|
||||||
|
<th width="*">Value</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tr>
|
||||||
|
<td>Rate Control</td>
|
||||||
|
<td>CRF</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CRF</td>
|
||||||
|
<td>16</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Keyframe Interval</td>
|
||||||
|
<td>1</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CPU Usage Preset</td>
|
||||||
|
<td>veryfast <i>(Picking a slower preset saves space, but takes more CPU)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Profile</td>
|
||||||
|
<td>high</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Tune</td>
|
||||||
|
<td>Any <i>(Ensure that your tune matches up with your target content, or leave at None)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>x264 Options</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
{% endcapture %}{% include blocks/table.liquid content=content %}
|
||||||
|
|
||||||
|
{% include blocks/heading.liquid level=2 content="Acceptable Quality" %}
|
||||||
|
{% capture content %}
|
||||||
|
<thead><tr>
|
||||||
|
<th width="20%">Option</th>
|
||||||
|
<th width="*">Value</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tr>
|
||||||
|
<td>Rate Control</td>
|
||||||
|
<td>CRF</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CRF</td>
|
||||||
|
<td>21</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Keyframe Interval</td>
|
||||||
|
<td>1</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CPU Usage Preset</td>
|
||||||
|
<td>veryfast <i>(Picking a slower preset saves space, but takes more CPU)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Profile</td>
|
||||||
|
<td>high</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Tune</td>
|
||||||
|
<td>Any <i>(Ensure that your tune matches up with your target content, or leave at None)</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>x264 Options</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
{% endcapture %}{% include blocks/table.liquid content=content %}
|
||||||
|
|
||||||
|
{% capture content %}{% include inline/link.liquid url="../" content="Back to the Guide" %}{% endcapture %}{% include blocks/paragraph.liquid align="center" content=content %}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
category: "OBS"
|
||||||
|
title: "High Quality Streaming (in OBS® Studio)"
|
||||||
|
comments: true
|
||||||
|
---
|
||||||
+2
@@ -3,6 +3,8 @@ layout: default
|
|||||||
category: "OBS"
|
category: "OBS"
|
||||||
title: "High Quality Streaming with NVIDIA® NVENC (in OBS® Studio)"
|
title: "High Quality Streaming with NVIDIA® NVENC (in OBS® Studio)"
|
||||||
comments: true
|
comments: true
|
||||||
|
redirect_from:
|
||||||
|
- /guides/obs/high-quality-streaming-nvenc/
|
||||||
---
|
---
|
||||||
|
|
||||||
{% capture content %}Streaming with more than one PC has been the leader in H.264 encoding for years, but NVIDIAs Turing and Ampere generation has put a significant dent into that lead. The new generation of GPUs with the brand new encoder brought comparable quality x264 medium – if you can find a GPU that is. Let’s take a look at what’s needed to set up your stream for massively improved quality.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
{% capture content %}Streaming with more than one PC has been the leader in H.264 encoding for years, but NVIDIAs Turing and Ampere generation has put a significant dent into that lead. The new generation of GPUs with the brand new encoder brought comparable quality x264 medium – if you can find a GPU that is. Let’s take a look at what’s needed to set up your stream for massively improved quality.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
|
||||||
Reference in New Issue
Block a user