This commit is contained in:
Michael Fabian 'Xaymar' Dirks
2021-12-28 19:59:43 +01:00
parent 6adf42d457
commit 3c7498b052
2 changed files with 176 additions and 3 deletions
+175 -2
View File
@@ -16,8 +16,8 @@ StreamFX v0.11 and OBS Studio 27.0{% endcapture %}{% include blocks/paragraph.li
{% capture content %}
<thead><tr>
<th>Option</th>
<th>Maxwell/Pascal</th>
<th>Turing/Ampere</th>
<th>Kepler, Maxwell & Pascal</th>
<th>Turing & Ampere</th>
</tr></thead>
<tr>
<td>Preset</td>
@@ -48,10 +48,183 @@ StreamFX v0.11 and OBS Studio 27.0{% endcapture %}{% include blocks/paragraph.li
{% capture content %}StreamFX: NVIDIA NVENC H.264/AVC (via FFmpeg){% endcapture %}{% include blocks/heading.liquid content=content level=3 %}
{% capture content %}If youre new to StreamFXs NVENC integration, it will most likely overwhelm you with the settings it offers. But thanks to all those settings, you can actually go above the default quality by quite a significant amount. Note that I will only cover critical settings, as other settings like Bitrate, Buffer Size and Key Frame Interval are explained elsewhere. {% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% capture content %}
<thead><tr>
<th>Option</th>
<th>Kepler, Maxwell & Pascal</th>
<th>Turing & Ampere</th>
</tr></thead>
<tr>
<td>Preset</td>
<td colspan=2>High Quality</td>
</tr>
<tr>
<td><b>H264</b></td>
<td></td>
<td></td>
</tr>
<tr>
<td>► Profile</td>
<td colspan=2>High</td>
</tr>
<tr>
<td>► Level</td>
<td colspan=2>Automatic</td>
</tr>
<tr>
<td><b>Rate Control Options</b></td>
<td></td>
<td></td>
</tr>
<tr>
<td>► Mode</td>
<td colspan=2>High Quality Constant Bitrate</td>
</tr>
<tr>
<td>► Two Pass</td>
<td>Disabled</td>
<td>Enabled</td>
</tr>
<tr>
<td>► Look Ahead</td>
<td>8 - 12</td>
<td>16 - 32</td>
</tr>
<tr>
<td>► Adaptive I-Frames</td>
<td colspan=2>Enabled</td>
</tr>
<tr>
<td>► Adaptive B-Frames</td>
<td colspan=2>Enabled</td>
</tr>
<tr>
<td><b>Adaptive Quantization</b></td>
<td></td>
<td></td>
</tr>
<tr>
<td>► Spatial (AQ)</td>
<td colspan=2>Enabled</td>
</tr>
<tr>
<td>► Spatial (AQ) Strength</td>
<td colspan=2>&lt;Any&gt;</td>
</tr>
<tr>
<td>► Temporal (AQ)</td>
<td colspan=2>Enabled</td>
</tr>
<tr>
<td><b>Other Options</b></td>
<td></td>
<td></td>
</tr>
<tr>
<td>► Maximum B-Frames</td>
<td>1 or 2</td>
<td>3 or 4</td>
</tr>
<tr>
<td>► B-Frame References</td>
<td colspan=2>"middle"</td>
</tr>
<tr>
<td>► Zero Latency</td>
<td colspan=2>Disabled</td>
</tr>
<tr>
<td>► Weighted Prediction</td>
<td colspan=2>Disabled</td>
</tr>
<tr>
<td>► Non-reference P-Frames</td>
<td colspan=2>Enabled</td>
</tr>
<tr>
<td>► Reference Frames</td>
<td colspan=2>-1 (Automatic)</td>
</tr>
<tr>
<td><b>FFmpeg Options</b> (Optional)</td>
<td></td>
<td></td>
</tr>
<tr>
<td>► Custom Settings</td>
<td></td>
<td></td>
</tr>
{% endcapture %}{% include blocks/table.liquid content=content caption="Ideal NVENC Settings for StreamFX's NVENC." %}
{% capture content %}For certain platforms it may be necessary to turn off Adaptive I-Frames due to how their internal processing works, such as Twitch. This has a drastic quality impact and should only be done if you rely on that platform alone to reach your audience.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% capture content %}Setting up Resolution and Framerate to match the Bitrate{% endcapture %}{% include blocks/heading.liquid content=content level=1 %}
{% capture content %}It is no secret than H.264/AVC is an outdated codec and that platforms should have paved the way for better codecs a long time ago, but it is the solution that we are stuck with until AV1 is adopted by the masses. So in order to get the best quality out of our stream, we should aim to also set up our stream according to the bitrate and codec we use. Below is the average result of a few hundred thousand tests at various resolutions and bitrates, according to PSNR and VMAF (weighted PSNR 30:70 VMAF):{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% capture content %}
<thead><tr>
<th>Resolution</th>
<th>3.5mbit<br/>30 FPS</th>
<th>3.5mbit<br/>60 FPS</th>
<th>6.0mbit<br/>30 FPS</th>
<th>6.0mbit<br/>60 FPS</th>
<th>8.5mbit<br/>30 FPS</th>
<th>8.5mbit<br/>60 FPS</th>
</tr></thead>
<tr>
<td>640x360</td>
<td>6</td>
<td>6</td>
<td>8</td>
<td>7</td>
<td>9</td>
<td>8</td>
</tr>
<tr>
<td>960x540</td>
<td>5</td>
<td>4</td>
<td>6</td>
<td>5</td>
<td>7</td>
<td>7</td>
</tr>
<tr>
<td>1280x720</td>
<td>4</td>
<td>3</td>
<td>4</td>
<td>3</td>
<td>5</td>
<td>4</td>
</tr>
<tr>
<td>1536x864</td>
<td>3</td>
<td>2</td>
<td>4</td>
<td>3</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td>1600x900</td>
<td>3</td>
<td>2</td>
<td>3</td>
<td>2</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<td>1920x1080</td>
<td>2</td>
<td>1</td>
<td>2</td>
<td>2</td>
<td>3</td>
<td>3</td>
</tr>
{% endcapture %}{% include blocks/table.liquid content=content caption="Rating from 1 to 10 based on VMAF and PSNR, weighted towards producing useful ranges. Tests performed with x264 slow.<br/>A 10 is perfect, 9 is near lossless, 8 is indistinguishable, 7 is high quality, 5 is acceptable quality and 3 is watchable." %}
{% capture content %}Please note that watchable in video encoding means that you can decode information within it with reasonable accuracy, instead of it having turned to full garbage. Higher resolutions than 1920×1080 were omitted from the table as the rows would be filled with values between 0 and 1, which just are not very useful to us.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% capture content %}This means that at 3.5mbit, the highest resolution and framerate for a variety streamer is 1280×720 at 30 FPS, or 960×540 at 60 FPS. The equation shifts slightly for 6.0mbit, where you can either go for 1536×864 at 30 FPS or 1280×720 at 60 FPS. Finally at 8.5mbit you are looking at a maximum resolution and framerate of 1920×1080 at 30 FPS or 1536×864 at 60 FPS.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
+1 -1
View File
@@ -43,5 +43,5 @@
}
.block-heading + .block {
margin-top: .25rem;
margin-top: .5rem;
}