Upgrade guides and StreamFX page

This commit is contained in:
Michael Fabian 'Xaymar' Dirks
2023-04-23 17:06:58 +02:00
parent 2c51c7bead
commit 8d794b57f4
6 changed files with 547 additions and 660 deletions
+129 -28
View File
@@ -6,37 +6,138 @@ comments: true
date: "2022-01-13" date: "2022-01-13"
--- ---
{% 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 %} <p class="block">If you decided to go with the "Red" team instead of "Blue" or "Green", then unforunately you're a bit more limited in throughput, quality and features. While AMDs "Fine Wine" does often improve things, their hardware usually only has partial support for a certain standard, and encoding is no different. However you can still do many things with the hardware, and is by no means outdated or bad - it's just an unfortunate situation.</p>
{% include blocks/heading.liquid level=2 content="True Lossless" %} <details class="block" open><summary><h2>AV1</h2></summary>
{% 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 %} <table class="block">
<thead><tr>
<th>Option</th>
<th width="16%">True Lossless</th>
<th width="16%">Near Lossless</th>
<th width="16%">Indistinguishable</th>
<th width="16%">High Quality</th>
<th width="16%">Acceptable Quality</th>
</tr></thead>
<tr>
<td>Rate Control</td>
<td colspan="255">CQP</td>
</tr>
<tr>
<td>CQ Level</td>
<td>0</td>
<td>1 - 4</td>
<td>5 - 10</td>
<td>11 - 16</td>
<td>17 - 22+</td>
</tr>
<tr>
<td>Profile</td>
<td colspan="255">Speed</td>
</tr>
<tr>
<td>Max B-frames</td>
<td colspan="255">Any, but less may be faster</td>
</tr>
<tr>
<td>AMF/FFmpeg Options</td>
<td colspan="255">preanalysis=false filler_data=false skip_frame=false</td>
</tr>
<tr>
<td>Color Format</td>
<td colspan="255">4:4:4</td>
<td colspan="255">4:4:4</td>
</tr>
</table>
{% include blocks/heading.liquid level=2 content="Effective Lossless" %} <ul class="block">
{% 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 %} <li>AMDs AV1 encoder is capable of 4:4:4 and 4:2:0 encoding, so it is the only available option for True Lossless SDR recording.</li>
</ul>
</details>
{% include blocks/heading.liquid level=2 content="Visually Lossless" %} <details class="block" open><summary><h2>H265/HEVC</h2></summary>
{% 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 %} <table class="block">
<thead><tr>
<th>Option</th>
<th width="16%">True Lossless</th>
<th width="16%">Near Lossless</th>
<th width="16%">Indistinguishable</th>
<th width="16%">High Quality</th>
<th width="16%">Acceptable Quality</th>
</tr></thead>
<tr>
<td>Rate Control</td>
<td rowspan="255" colspan="2" style="vertical-align: middle; text-align: center;">N/A</td>
<td colspan="255">CQP</td>
</tr>
<tr>
<td>CQ Level</td>
<td>5 - 10</td>
<td>11 - 16</td>
<td>17 - 22+</td>
</tr>
<tr>
<td>Profile</td>
<td colspan="255">Speed</td>
</tr>
<tr>
<td>Max B-frames</td>
<td colspan="255">Any, but less may be faster</td>
</tr>
<tr>
<td>AMF/FFmpeg Options</td>
<td colspan="255"><code>profile_tier=high preanalysis=false vbaq=false filler_data=false skip_frame=false</code></td>
</tr>
</table>
{% include blocks/heading.liquid level=2 content="High Quality" %} <ul class="block">
{% 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 %} <li>AMDs HEVC encoder is capable of 4:2:0 in both SDR (8bit) and HDR (10bit) mode.</li>
{% capture columns %} </ul>
{% capture column %} </details>
{% 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" %} <details class="block" open><summary><h2>H264/HEVC</h2></summary>
{% 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 %} <table class="block">
{% capture columns %} <thead><tr>
{% capture column %} <th>Option</th>
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/obs64_cz9EQNZQmB.png" caption="H.264 CQP" %} <th width="16%">True Lossless</th>
{% endcapture %}{% include blocks/column.liquid content=column %} <th width="16%">Near Lossless</th>
{% capture column %} <th width="16%">Indistinguishable</th>
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2022/01/obs64_TXnfMbeCF2.png" caption="H.265 CQP" %} <th width="16%">High Quality</th>
{% endcapture %}{% include blocks/column.liquid content=column %} <th width="16%">Acceptable Quality</th>
{% endcapture %}{% include blocks/columns.liquid content=columns columns=2 %} </tr></thead>
<tr>
<td>Rate Control</td>
<td rowspan="255" colspan="2" style="vertical-align: middle; text-align: center;">N/A</td>
<td colspan="255">CQP</td>
</tr>
<tr>
<td>CQ Level</td>
<td>5 - 10</td>
<td>11 - 16</td>
<td>17 - 22+</td>
</tr>
<tr>
<td>Profile</td>
<td colspan="255">Speed</td>
</tr>
<tr>
<td>Max B-frames</td>
<td colspan="255">Any, but less may be faster</td>
</tr>
<tr>
<td>AMF/FFmpeg Options</td>
<td colspan="255"><code>profile_tier=high preanalysis=false vbaq=false filler_data=false skip_frame=false</code></td>
</tr>
</table>
{% capture content %}{% include inline/link.liquid url="../" content="Back to the Guide" %}{% endcapture %}{% include blocks/paragraph.liquid align="center" content=content %} <ul class="block">
<li>AMDs H264 encoder is only capable of 4:2:0 SDR (8bit).</li>
</ul>
</details>
<h2 class="block">Additional Information</h2>
<ul class="block">
<li>OBS Studio does not yet have a HDR capable format for 4:4:4. (State: 2023-04-23)</li>
<li>More B-Frames may result in smaller files, but also more encoder usage.</li>
</ul>
<p class="block align-center"><a href="../">Back to the Guide</a></p>
+234 -155
View File
@@ -6,12 +6,62 @@ comments: true
date: "2022-02-18" date: "2022-02-18"
--- ---
{% 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.{% endcapture %}{% include blocks/paragraph.liquid content=content %} <p class="block">The "Green" team has hardware capable of significantly more than the competition, and offers more flexibility in terms of configuration and quality. While not always the best in quality, and often optimizing for a different type of quality than would be expected, they are decent options with a variety of choices. NVIDIA has a good foundation in both live and offline content creation, and constantly aims to improve on this.</p>
{% include blocks/heading.liquid level=2 content="Constant Quantization Parameter (CQP)" %} <details class="block" open><summary><h2>AV1</h2></summary>
{% capture content %}Of the two methods available, CQP is by far the faster method, with hardly any noticable impact on other parts of the GPU. It also supports vastly higher framerates compared to the alternative method, thanks to NVIDIA optimizing their presets further. With the "Fastest (P1)" preset it is now possible to record 1920x1080 NV12 at nearly 460 FPS on an RTX 3080 or higher. Unfortunately none of my PCI-E SSDs, not even the PCI-E 4.0 from Samsung, managed to withstand the amount of data requested at once, so the exact upper limit is unknown.{% endcapture %}{% include blocks/paragraph.liquid content=content %} <table class="block">
<thead><tr>
<th>Option</th>
<th width="16%">Lossless</th>
<th width="16%">Near Lossless</th>
<th width="16%">Indistinguishable</th>
<th width="16%">High Quality</th>
<th width="16%">Acceptable Quality</th>
</tr></thead>
<tr>
<td>Rate Control</td>
<td colspan="255">CQP</td>
</tr>
<tr>
<td>CQ Level</td>
<td>0</td>
<td>1 - 4</td>
<td>5 - 10</td>
<td>11 - 16</td>
<td>17 - 22+</td>
</tr>
<tr>
<td>Preset</td>
<td colspan="255">P1: Fastest (Lowest Quality)</td>
</tr>
<tr>
<td>Tuning</td>
<td colspan="255">High Quality</td>
</tr>
<tr>
<td>Multipass Mode</td>
<td colspan="255">Single Pass</td>
</tr>
<tr>
<td>Profile</td>
<td colspan="255">main</td>
</tr>
<tr>
<td>Look-ahead</td>
<td colspan="255">Disabled</td>
</tr>
<tr>
<td>Psycho Visual Tuning</td>
<td colspan="255">Disabled</td>
</tr>
<tr>
<td>Max B-frames</td>
<td colspan="255">0</td>
</tr>
</table></details>
{% capture content %} <details class="block" open><summary><h2>H265/HEVC (with StreamFX)</h2></summary>
<table class="block">
<thead><tr> <thead><tr>
<th>Option</th> <th>Option</th>
<th width="16%">Lossless</th> <th width="16%">Lossless</th>
@@ -23,65 +73,53 @@ date: "2022-02-18"
</thead> </thead>
<tr> <tr>
<td>Preset</td> <td>Preset</td>
<td colspan=5>Fastest (P1)</td> <td colspan=255>Fastest (P1)</td>
</tr> </tr>
<tr> <tr>
<td>Tune</td> <td>Tune</td>
<td>Lossless</td> <td>Lossless</td>
<td colspan=4>High Quality</td> <td colspan=255>High Quality</td>
</tr> </tr>
<tr> <tr>
<th colspan=6>H264</th> <th colspan=255>H265</th>
</tr> </tr>
<tr> <tr>
<td>Profile</td> <td>Profile</td>
<td>High 4:4:4 Predictive</td> <td colspan=255>Main</td>
<td colspan=4>High 4:4:4 Predictive (when using I444)<br> High (when using NV12)</td>
</tr>
<tr>
<td>Level</td>
<td colspan=5>Automatic</td>
</tr>
<tr>
<th colspan=6>H265</th>
</tr>
<tr>
<td>Profile</td>
<td colspan=5>Main</td>
</tr> </tr>
<tr> <tr>
<td>Tier</td> <td>Tier</td>
<td colspan=5>High</td> <td colspan=255>High</td>
</tr> </tr>
<tr> <tr>
<td>Level</td> <td>Level</td>
<td colspan=5>Automatic</td> <td colspan=255>Automatic</td>
</tr> </tr>
<tr> <tr>
<th colspan=6>Rate Control Options</th> <th colspan=255>Rate Control Options</th>
</tr> </tr>
<tr> <tr>
<td>Mode</td> <td>Mode</td>
<td colspan=5>Constant Quantization Parameter</td> <td colspan=255>Constant Quantization Parameter</td>
</tr> </tr>
<tr> <tr>
<td>Multi-Pass</td> <td>Multi-Pass</td>
<td colspan=5>Single Pass</td> <td colspan=255>Single Pass</td>
</tr> </tr>
<tr> <tr>
<td>Look Ahead</td> <td>Look Ahead</td>
<td colspan=5>0 frames</td> <td colspan=255>0 frames</td>
</tr> </tr>
<tr> <tr>
<td>Adaptive I-Frames</td> <td>Adaptive I-Frames</td>
<td colspan=5>Disabled</td> <td colspan=255>Disabled</td>
</tr> </tr>
<tr> <tr>
<td>Adaptive B-Frames</td> <td>Adaptive B-Frames</td>
<td colspan=5>Disabled</td> <td colspan=255>Disabled</td>
</tr> </tr>
<tr> <tr>
<th colspan=6>Quantization Parameters</th> <th colspan=255>Quantization Parameters</th>
</tr> </tr>
<tr> <tr>
<td>I-Frame QP<br>P-Frame QP<br>B-Frame QP</td> <td>I-Frame QP<br>P-Frame QP<br>B-Frame QP</td>
@@ -92,260 +130,301 @@ date: "2022-02-18"
<td>17 to 22</td> <td>17 to 22</td>
</tr> </tr>
<tr> <tr>
<th colspan=6>Adaptive Quantization</th> <th colspan=255>Adaptive Quantization</th>
</tr> </tr>
<tr> <tr>
<td>Spatial Adaptive Quantization</td> <td>Spatial Adaptive Quantization</td>
<td colspan=5>Disabled</td> <td colspan=255>Disabled</td>
</tr> </tr>
<tr> <tr>
<td>Temporal Adaptive Quantization</td> <td>Temporal Adaptive Quantization</td>
<td colspan=5>Disabled</td> <td colspan=255>Disabled</td>
</tr> </tr>
<tr> <tr>
<th colspan=6>Other Options</th> <th colspan=255>Other Options</th>
</tr> </tr>
<tr> <tr>
<td>Maximum B-Frames</td> <td>Maximum B-Frames</td>
<td colspan=5><i>Any</i></td> <td colspan=255><i>Any</i></td>
</tr> </tr>
<tr> <tr>
<td>B-Frame Reference Mode</td> <td>B-Frame Reference Mode</td>
<td colspan=5><i>Any</i></td> <td colspan=255><i>Any</i></td>
</tr> </tr>
<tr> <tr>
<td>Zero Latency</td> <td>Zero Latency</td>
<td colspan=5>Default</td> <td colspan=255>Default</td>
</tr> </tr>
<tr> <tr>
<td>Weighted Prediction</td> <td>Weighted Prediction</td>
<td colspan=5>Default</td> <td colspan=255>Default</td>
</tr> </tr>
<tr> <tr>
<td>Non-reference P-Frames</td> <td>Non-reference P-Frames</td>
<td colspan=5>Default</td> <td colspan=255>Default</td>
</tr> </tr>
<tr> <tr>
<td>Reference Frames</td> <td>Reference Frames</td>
<td colspan=5>-1 frames</td> <td colspan=255>-1 frames</td>
</tr> </tr>
<tr> <tr>
<td>Low Delay Key-Frame Scale</td> <td>Low Delay Key-Frame Scale</td>
<td colspan=5>-1</td> <td colspan=255>-1</td>
</tr> </tr>
<tr> <tr>
<th colspan=6>Key Frames</th> <th colspan=255>Key Frames</th>
</tr> </tr>
<tr> <tr>
<td>Interval Type</td> <td>Interval Type</td>
<td>Frames</td> <td>Frames</td>
<td colspan=4>Frames<br>Seconds</td> <td colspan=255>Any</td>
</tr> </tr>
<tr> <tr>
<td>Interval</td> <td>Interval</td>
<td>1 frame</td> <td>1 frame</td>
<td colspan=4>1 frame<br>0.5 seconds</td> <td colspan=255>Any</td>
</tr> </tr>
<tr> </table></details>
<th colspan=6>OBS Studio Advanced Video Settings</th>
</tr>
<tr>
<td>Color Format</td>
<td>I444</td>
<td colspan=4>I444 or NV12</td>
</tr>
<tr>
<td>Color Space</td>
<td colspan=5><i>Identical to Input (sRGB on PC, Bt.709/sRGB for Console)</i></td>
</tr>
<tr>
<td>Color Range</td>
<td colspan=5><i>Identical to Input (Full on PC, Partial on Console)</i></td>
</tr>
{% endcapture %}{% include blocks/table.liquid content=content %}
{% include blocks/heading.liquid level=2 content="Variable Bitrate with Constant Quality (VBR-CQ)" %} <details class="block" open><summary><h2>H265/HEVC</h2></summary>
{% capture content %}The second method for recording is VBR-CQ, which is similar to x264's CRF but not a perfect match. While x264's CRF will improve with higher presets and lower CRF values, NVENC's VBR-CQ has a flat ceiling that simply can't be bypassed, no matter what settings are applied. Still, it has its uses for Indistinguishable, High quality and Acceptable Quality recordings. Performance wise it is far slower and has much more impact on the machine, so it should not be used for Single-PC setups.{% endcapture %}{% include blocks/paragraph.liquid content=content %} <table class="block">
{% capture content %}
<thead><tr> <thead><tr>
<th>Option</th> <th>Option</th>
<th width="25%">Indistinguishable</th> <th width="16%">Lossless</th>
<th width="25%">High Quality</th> <th width="16%">Near Lossless</th>
<th width="25%">Acceptable Quality</th> <th width="16%">Indistinguishable</th>
<th width="16%">High Quality</th>
<th width="16%">Acceptable Quality</th>
</tr></thead>
<tr>
<td>Rate Control</td>
<td colspan="255">CQP</td>
</tr>
<tr>
<td>CQ Level</td>
<td>0</td>
<td>1 - 4</td>
<td>5 - 10</td>
<td>11 - 16</td>
<td>17 - 22+</td>
</tr>
<tr>
<td>Preset</td>
<td colspan="255">P1: Fastest (Lowest Quality)</td>
</tr>
<tr>
<td>Tuning</td>
<td colspan="255">High Quality</td>
</tr>
<tr>
<td>Multipass Mode</td>
<td colspan="255">Single Pass</td>
</tr>
<tr>
<td>Profile</td>
<td colspan="255">main (for 8bit)<br>main10 (for 10bit)</td>
</tr>
<tr>
<td>Look-ahead</td>
<td colspan="255">Disabled</td>
</tr>
<tr>
<td>Psycho Visual Tuning</td>
<td colspan="255">Disabled</td>
</tr>
<tr>
<td>Max B-frames</td>
<td colspan="255">0</td>
</tr>
</table></details>
<details class="block" open><summary><h2>H264/AVC (with StreamFX)</h2></summary>
<table class="block">
<thead><tr>
<th>Option</th>
<th width="16%">Lossless</th>
<th width="16%">Near Lossless</th>
<th width="16%">Indistinguishable</th>
<th width="16%">High Quality</th>
<th width="16%">Acceptable Quality</th>
</tr> </tr>
</thead> </thead>
<tr> <tr>
<td>Preset</td> <td>Preset</td>
<td colspan=3>Medium (P4) or slower</td> <td colspan=255>Fastest (P1)</td>
</tr> </tr>
<tr> <tr>
<td>Tune</td> <td>Tune</td>
<td colspan=3>High Quality</td> <td>Lossless</td>
<td colspan=255>High Quality</td>
</tr> </tr>
<tr> <tr>
<th colspan=4>H264</th> <th colspan=255>H264</th>
</tr> </tr>
<tr> <tr>
<td>Profile</td> <td>Profile</td>
<td colspan=3>High 4:4:4 Predictive (when using I444)<br> High (when using NV12)</td> <td>High 4:4:4 Predictive</td>
<td colspan=255>High 4:4:4 Predictive (when using I444)<br> High (when using NV12)</td>
</tr> </tr>
<tr> <tr>
<td>Level</td> <td>Level</td>
<td colspan=3>Automatic</td> <td colspan=255>Automatic</td>
</tr>
<tr>
<th colspan=4>H265</th>
</tr>
<tr>
<td>Profile</td>
<td colspan=3>Main</td>
</tr>
<tr>
<td>Tier</td>
<td colspan=3>High</td>
</tr> </tr>
<tr> <tr>
<td>Level</td> <td>Level</td>
<td colspan=3>Automatic</td> <td colspan=255>Automatic</td>
</tr> </tr>
<tr> <tr>
<th colspan=4>Rate Control Options</th> <th colspan=255>Rate Control Options</th>
</tr> </tr>
<tr> <tr>
<td>Mode</td> <td>Mode</td>
<td colspan=3>Variable Bitrate</td> <td colspan=255>Constant Quantization Parameter</td>
</tr> </tr>
<tr> <tr>
<td>Multi-Pass</td> <td>Multi-Pass</td>
<td colspan=3>Two Pass at Quarter Resolution<br><i>or:</i> Two Pass at Full Resolution</td> <td colspan=255>Single Pass</td>
</tr> </tr>
<tr> <tr>
<td>Look Ahead</td> <td>Look Ahead</td>
<td colspan=3>32 frames</td> <td colspan=255>0 frames</td>
</tr> </tr>
<tr> <tr>
<td>Adaptive I-Frames</td> <td>Adaptive I-Frames</td>
<td colspan=3>Enabled</td> <td colspan=255>Disabled</td>
</tr> </tr>
<tr> <tr>
<td>Adaptive B-Frames</td> <td>Adaptive B-Frames</td>
<td colspan=3>Enabled</td> <td colspan=255>Disabled</td>
</tr> </tr>
<tr> <tr>
<th colspan=4>Limits</th> <th colspan=255>Quantization Parameters</th>
</tr>
<tr>
<td>Target Quality</td>
<td>1.00 to 10.99</td>
<td>11.00 to 17.99</td>
<td>17.00 to 22.99</td>
</tr>
<tr>
<td>Target Bitrate</td>
<td colspan=3>0 kbit/s</td>
</tr>
<tr>
<td>Maximum Bitrate</td>
<td colspan=3>0 kbit/s</td>
</tr>
<tr>
<td>Buffer Size</td>
<td colspan=3>0 kbit</td>
</tr>
<tr>
<th colspan=6>Quantization Parameters</th>
</tr>
<tr>
<td>Minimum QP<br>Maximum QP</td>
<td colspan=3>-1</td>
</tr> </tr>
<tr> <tr>
<td>I-Frame QP<br>P-Frame QP<br>B-Frame QP</td> <td>I-Frame QP<br>P-Frame QP<br>B-Frame QP</td>
<td colspan=3>-1</td> <td>0</td>
<td>0 to 4</td>
<td>5 to 10</td>
<td>11 to 16</td>
<td>17 to 22</td>
</tr> </tr>
<tr> <tr>
<th colspan=4>Adaptive Quantization</th> <th colspan=255>Adaptive Quantization</th>
</tr> </tr>
<tr> <tr>
<td>Spatial Adaptive Quantization</td> <td>Spatial Adaptive Quantization</td>
<td colspan=3>Enabled</td> <td colspan=255>Disabled</td>
</tr>
<tr>
<td>Spatial Adaptive Quantization Strength</td>
<td colspan=3>1 (Lowest) to 15 (Highest)</td>
</tr> </tr>
<tr> <tr>
<td>Temporal Adaptive Quantization</td> <td>Temporal Adaptive Quantization</td>
<td colspan=3>Enabled</td> <td colspan=255>Disabled</td>
</tr> </tr>
<tr> <tr>
<th colspan=4>Other Options</th> <th colspan=255>Other Options</th>
</tr> </tr>
<tr> <tr>
<td>Maximum B-Frames</td> <td>Maximum B-Frames</td>
<td colspan=3><i>As many as your GPU supports</i></td> <td colspan=255><i>Any</i></td>
</tr> </tr>
<tr> <tr>
<td>B-Frame Reference Mode</td> <td>B-Frame Reference Mode</td>
<td colspan=3>Each <i>if supported</i><br>Half <i>if supported</i><br>None <i>in any other case</i></td> <td colspan=255><i>Any</i></td>
</tr> </tr>
<tr> <tr>
<td>Zero Latency</td> <td>Zero Latency</td>
<td colspan=3>Default</td> <td colspan=255>Default</td>
</tr> </tr>
<tr> <tr>
<td>Weighted Prediction</td> <td>Weighted Prediction</td>
<td colspan=3>Default</td> <td colspan=255>Default</td>
</tr> </tr>
<tr> <tr>
<td>Non-reference P-Frames</td> <td>Non-reference P-Frames</td>
<td colspan=3>Enabled</td> <td colspan=255>Default</td>
</tr> </tr>
<tr> <tr>
<td>Reference Frames</td> <td>Reference Frames</td>
<td colspan=3><i>As many as your GPU supports</i></td> <td colspan=255>-1 frames</td>
</tr> </tr>
<tr> <tr>
<td>Low Delay Key-Frame Scale</td> <td>Low Delay Key-Frame Scale</td>
<td colspan=3>-1</td> <td colspan=255>-1</td>
</tr> </tr>
<tr> <tr>
<th colspan=4>Key Frames</th> <th colspan=255>Key Frames</th>
</tr> </tr>
<tr> <tr>
<td>Interval Type</td> <td>Interval Type</td>
<td colspan=3>Seconds</td> <td>Frames</td>
<td colspan=255>Any</td>
</tr> </tr>
<tr> <tr>
<td>Interval</td> <td>Interval</td>
<td colspan=3>1.00 seconds <i>or more</i></td> <td>1 frame</td>
<td colspan=255>Any</td>
</tr> </tr>
<tr> </table></details>
<th colspan=6>OBS Studio Advanced Video Settings</th>
</tr>
<tr>
<td>Color Format</td>
<td colspan=3>I444 or NV12</td>
</tr>
<tr>
<td>Color Space</td>
<td colspan=3><i>Identical to Input (sRGB on PC, Bt.709/sRGB for Console)</i></td>
</tr>
<tr>
<td>Color Range</td>
<td colspan=3><i>Identical to Input (Full on PC, Partial on Console)</i></td>
</tr>
{% endcapture %}{% include blocks/table.liquid content=content %}
{% include blocks/heading.liquid level=2 content="Additional Information" %} <details class="block" open><summary><h2>H264/AVC</h2></summary>
{% capture list %} <table class="block">
<thead><tr>
<th>Option</th>
<th width="16%">Lossless</th>
<th width="16%">Near Lossless</th>
<th width="16%">Indistinguishable</th>
<th width="16%">High Quality</th>
<th width="16%">Acceptable Quality</th>
</tr></thead>
<tr>
<td>Rate Control</td>
<td colspan="255">CQP</td>
</tr>
<tr>
<td>CQ Level</td>
<td>0</td>
<td>1 - 4</td>
<td>5 - 10</td>
<td>11 - 16</td>
<td>17 - 22+</td>
</tr>
<tr>
<td>Preset</td>
<td colspan="255">P1: Fastest (Lowest Quality)</td>
</tr>
<tr>
<td>Tuning</td>
<td colspan="255">High Quality</td>
</tr>
<tr>
<td>Multipass Mode</td>
<td colspan="255">Single Pass</td>
</tr>
<tr>
<td>Profile</td>
<td colspan="255">high</td>
</tr>
<tr>
<td>Look-ahead</td>
<td colspan="255">Disabled</td>
</tr>
<tr>
<td>Psycho Visual Tuning</td>
<td colspan="255">Disabled</td>
</tr>
<tr>
<td>Max B-frames</td>
<td colspan="255">0</td>
</tr>
</table></details>
<h2 class="block">Additional Information</h2>
<ul class="block">
<li><i>Multi-Pass</i> at Full Resolution is a new option, and has measurably increased quality in VBR-CQ. However, it is very expensive and should be the first option changed if performance is a problem.</li> <li><i>Multi-Pass</i> at Full Resolution is a new option, and has measurably increased quality in VBR-CQ. However, it is very expensive and should be the first option changed if performance is a problem.</li>
<li><i>Look Ahead</i> in VBR-CQ can be freely adjusted as needed, as long as it is not lower than the number of B-Frames and Reference Frames.</li> <li><i>Look Ahead</i> in VBR-CQ can be freely adjusted as needed, as long as it is not lower than the number of B-Frames and Reference Frames.</li>
<li><i>Adaptive B-Frames</i> is required for VBR-CQ, as B-Frames can both increase and decrease quality if used in the wrong place. </li> <li><i>Adaptive B-Frames</i> is required for VBR-CQ, as B-Frames can both increase and decrease quality if used in the wrong place. </li>
<li>Stronger <i>Spatial Adaptive Quantization</i> will focus more bitrate towards visually complex areas, but may starve smoother areas of the bitrate it needs.</li> <li>Stronger <i>Spatial Adaptive Quantization</i> will focus more bitrate towards visually complex areas, but may starve smoother areas of the bitrate it needs.</li>
<li>The Key Frames <i>Interval</i> can be freely adjusted for anything but Lossless, as I-only encoding is required to guarantee the least data loss.</li> <li>The Key Frames <i>Interval</i> can be freely adjusted for anything but Lossless, as I-only encoding is required to guarantee the least data loss.</li>
<li>The old presets were deprecated by NVIDIA and now map to the new P1-P7 presets, which come with massive performance or quality boosts. <i>High Quality</i> is now <i>Medium (P4)</i>, while <i>High Performance</i> is closer to <i>Faster (P2)</i>.</li> <li>The old presets were deprecated by NVIDIA and now map to the new P1-P7 presets, which come with massive performance or quality boosts. <i>High Quality</i> is now <i>Medium (P4)</i>, while <i>High Performance</i> is closer to <i>Faster (P2)</i>.</li>
{% endcapture %}{% include blocks/list.liquid content=list %} </ul>
{% capture content %}{% include inline/link.liquid url="../" content="Back to the Guide" %}{% endcapture %}{% include blocks/paragraph.liquid align="center" content=content %} <p class="block align-center"><a href="../">Back to the Guide</a></p>
+1 -1
View File
@@ -2,7 +2,7 @@
{% include page_content.liquid %} {% include page_content.liquid %}
{% include breadcrumbs.liquid title=page.title permalink=page.url %} {% include breadcrumbs.liquid title=page.title permalink=page.url %}
<div id="index"> <div id="index">
{% for data in paginator.posts %}Hello World {% for data in paginator.posts %}
{% if site.xaymar.index.excerpt.enabled %} {% if site.xaymar.index.excerpt.enabled %}
{% assign content=data.excerpt | strip_html | normalize_whitespace | truncatewords: site.xaymar.index.excerpt.length %} {% assign content=data.excerpt | strip_html | normalize_whitespace | truncatewords: site.xaymar.index.excerpt.length %}
{% else %} {% else %}
+1 -1
View File
@@ -6,7 +6,7 @@ date: "2022-02-25"
--- ---
<figure class="block float clear" style="float: right; width: 33%; max-width: 256px;"> <figure class="block float clear" style="float: right; width: 33%; max-width: 256px;">
<img src="{{ "projects/obs/streamfx/icon.svg" | absolute_url }}"/> <img src="{{ "projects/obs/streamfx/icon.png" | absolute_url }}"/>
<figcaption>Official Icon (All Rights Reserved)</figcaption> <figcaption>Official Icon (All Rights Reserved)</figcaption>
</figure> </figure>
<figure class="block float clear" style="float: right; width: 33%; max-width: 256px;"> <figure class="block float clear" style="float: right; width: 33%; max-width: 256px;">
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

-293
View File
@@ -1,293 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 256 256"
version="1.1"
id="svg8"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="icon.svg"
inkscape:export-filename="D:\Projects\Xaymar\obs-streamfx\media\icon.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1214">
<stop
style="stop-color:#f0e6ff;stop-opacity:1"
offset="0"
id="stop1210" />
<stop
style="stop-color:#d2dce6;stop-opacity:1"
offset="1"
id="stop1212" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path908"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
transform="scale(0.8) translate(12.5,0)" />
</marker>
<filter
x="-0.10000000000000001"
height="1.5"
y="-0.25"
inkscape:label="awesome_glow"
id="filter840-1"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
result="result5"
id="feGaussianBlur842-6"
stdDeviation="6" />
<feGaussianBlur
result="result3"
in="SourceGraphic"
id="feGaussianBlur844-1"
stdDeviation="4" />
<feGaussianBlur
result="result1"
in="SourceGraphic"
id="feGaussianBlur846-7"
stdDeviation="2" />
<feBlend
result="result2"
in="result5"
id="feBlend848-5"
in2="result3"
mode="color-dodge" />
<feBlend
result="result4"
in="result2"
id="feBlend850-5"
in2="result1"
mode="color-dodge" />
<feBlend
result="result6"
id="feBlend852-3"
in2="SourceGraphic"
mode="color-dodge" />
</filter>
<filter
style="color-interpolation-filters:sRGB"
id="filter1178"
inkscape:label="Logo Glow"
x="-0.050000000000000003"
y="-0.050000000000000003"
width="1.1000000000000001"
height="1.1000000000000001">
<feColorMatrix
id="feColorMatrix1192"
result="result6"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 "
in="SourceGraphic" />
<feGaussianBlur
stdDeviation="33"
id="feGaussianBlur1232"
result="result7" />
<feColorMatrix
id="feColorMatrix1238"
values="1.33 0 0 0 0 0 1.33 0 0 0 0 0 1.33 0 0 0 0 0 1 0 " />
<feGaussianBlur
stdDeviation="16"
id="feGaussianBlur1240" />
<feComposite
in2="SourceAlpha"
id="feComposite1234"
operator="in"
result="result8" />
<feBlend
mode="lighten"
id="feBlend1236"
in="SourceGraphic"
in2="result8" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1214"
id="linearGradient1216"
x1="7.757576"
y1="7.757576"
x2="248.24243"
y2="248.24243"
gradientUnits="userSpaceOnUse" />
<filter
style="color-interpolation-filters:sRGB"
id="filter840-1-0"
inkscape:label="awesome_glow"
y="-0.25"
height="1.5"
x="-0.1">
<feGaussianBlur
stdDeviation="2"
id="feGaussianBlur842-6-6"
result="result5" />
<feGaussianBlur
stdDeviation="1"
id="feGaussianBlur844-1-8"
in="SourceGraphic"
result="result3" />
<feGaussianBlur
stdDeviation="0.5"
id="feGaussianBlur846-7-1"
in="SourceGraphic"
result="result1" />
<feBlend
mode="color-dodge"
in2="result3"
id="feBlend848-5-0"
in="result5"
result="result2" />
<feBlend
mode="color-dodge"
in2="result1"
id="feBlend850-5-1"
in="result2"
result="result4" />
<feBlend
mode="color-dodge"
in2="SourceGraphic"
id="feBlend852-3-0"
result="result6" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8237469"
inkscape:cx="175.74562"
inkscape:cy="146.39594"
inkscape:document-units="px"
inkscape:current-layer="g1339"
showgrid="false"
units="px"
inkscape:window-width="2560"
inkscape:window-height="1417"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:document-rotation="0"
inkscape:pagecheckerboard="true">
<inkscape:grid
type="xygrid"
id="grid434"
spacingx="8"
spacingy="8"
empspacing="16" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g1280"
style="filter:url(#filter1178)">
<rect
style="display:none;fill:#010002;fill-opacity:1;stroke:url(#linearGradient1216);stroke-width:12;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:8;stroke-opacity:1;paint-order:normal;filter:url(#filter1178)"
id="rect901"
width="240.48485"
height="240.48485"
x="7.757576"
y="7.757576"
rx="128" />
<path
d="M 248,128 188,231.92305 H 68 L 8,128 68,24.076952 l 120,0 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="true"
sodipodi:arg2="0.52359878"
sodipodi:arg1="0"
sodipodi:r2="103.92305"
sodipodi:r1="120"
sodipodi:cy="128"
sodipodi:cx="128"
sodipodi:sides="6"
id="path442"
style="fill:#000000;fill-opacity:1;stroke:#ebf2ff;stroke-width:8;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
sodipodi:type="star" />
<path
inkscape:transform-center-y="-3.5355338"
inkscape:transform-center-x="-2.828427"
d="M 128,40 204.21024,84.000002 204.21023,172 128,216 51.789763,172 l 3e-6,-88.000002 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="true"
sodipodi:arg2="-1.0471976"
sodipodi:arg1="-1.5707963"
sodipodi:r2="76.210236"
sodipodi:r1="88"
sodipodi:cy="128"
sodipodi:cx="128"
sodipodi:sides="6"
id="path1273"
style="fill:#000000;fill-opacity:1;stroke:#e5e5e5;stroke-width:8;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
sodipodi:type="star" />
</g>
<g
id="g1339"
style="filter:url(#filter840-1)"
transform="matrix(0.95,0,0,0.95,6.3999897,6.4000079)">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:74.6669px;line-height:1.05;font-family:'Defcon Zero';-inkscape-font-specification:'Defcon Zero, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#6d59ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.50784;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="127.03922"
y="130.29129"
id="text817"><tspan
sodipodi:role="line"
id="tspan815"
x="127.03922"
y="130.29129"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:74.6669px;font-family:'Defcon Zero';-inkscape-font-specification:'Defcon Zero, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#6d59ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.50784;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><tspan
y="230.86159"
x="127.03922"
dy="-33.808769"
id="tspan899"
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:101.053px;font-family:'Defcon Zero';-inkscape-font-specification:'Defcon Zero, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#6d59ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.50784;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">FX</tspan></text>
<text
transform="scale(0.83775661,1.1936641)"
y="102.68661"
x="152.77435"
id="text817-0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:62.5523px;line-height:1.05;font-family:'Defcon Zero';-inkscape-font-specification:'Defcon Zero, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#6d59ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.13326;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:62.5523px;font-family:'Defcon Zero';-inkscape-font-specification:'Defcon Zero, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#6d59ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.13326;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="102.68661"
x="152.77435"
sodipodi:role="line"
id="tspan899-7"
dy="0 0 0 0 0 0"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:62.5523px;font-family:'Defcon Zero';-inkscape-font-specification:'Defcon Zero, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#6d59ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.13326;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="tspan1331"
dy="0">Stream</tspan></tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB