diff --git a/docs/source/about/advanced_usage.rst b/docs/source/about/advanced_usage.rst index 2a6ba5ba..8c2dc3c6 100644 --- a/docs/source/about/advanced_usage.rst +++ b/docs/source/about/advanced_usage.rst @@ -986,14 +986,15 @@ sw_tune sw_tune = zerolatency -nv_preset -^^^^^^^^^ +nvenc_preset +^^^^^^^^^^^^ **Description** - The encoder preset to use. + NVENC encoder performance preset. + Higher numbers improve compression (quality at given bitrate) at the cost of increased encoding latency. + Recommended to change only when limited by network or decoder, otherwise similar effect can be accomplished by increasing bitrate. - .. Note:: This option only applies when using nvenc `encoder`_. For more information on the presets, see - `nvenc preset migration guide `__. + .. Note:: This option only applies when using NVENC `encoder`_. **Choices** @@ -1003,30 +1004,65 @@ nv_preset ========== =========== Value Description ========== =========== - p1 fastest (lowest quality) - p2 faster (lower quality) - p3 fast (low quality) - p4 medium (default) - p5 slow (good quality) - p6 slower (better quality) - p7 slowest (best quality) + 1 P1 (fastest) + 2 P2 + 3 P3 + 4 P4 + 5 P5 + 6 P6 + 7 P7 (slowest) ========== =========== **Default** - ``p4`` + ``1`` **Example** .. code-block:: text - nv_preset = p4 + nvenc_preset = 1 -nv_tune -^^^^^^^ +nvenc_twopass +^^^^^^^^^^^^^ **Description** - The encoder tuning profile. + Enable two-pass mode in NVENC encoder. + This allows to detect more motion vectors, better distribute bitrate across the frame and more strictly adhere to bitrate limits. + Disabling it is not recommended since this can lead to occasional bitrate overshoot and subsequent packet loss. - .. Note:: This option only applies when using nvenc `encoder`_. + .. Note:: This option only applies when using NVENC `encoder`_. + +**Choices** + +.. table:: + :widths: auto + + =========== =========== + Value Description + =========== =========== + disabled One pass (fastest) + quarter_res Two passes, first pass at quarter resolution (faster) + full_res Two passes, first pass at full resolution (slower) + =========== =========== + +**Default** + ``quarter_res`` + +**Example** + .. code-block:: text + + nvenc_twopass = quarter_res + +nvenc_realtime_hags +^^^^^^^^^^^^^^^^^^^ + +**Description** + Use realtime gpu scheduling priority in NVENC when hardware accelerated gpu scheduling (HAGS) is enabled in Windows. + Currently NVIDIA drivers may freeze in encoder when HAGS is enabled, realtime priority is used and VRAM utilization is close to maximum. + Disabling this option lowers the priority to high, sidestepping the freeze at the cost of reduced capture performance when the GPU is heavily loaded. + + .. Note:: This option only applies when using NVENC `encoder`_. + + .. Caution:: Applies to Windows only. **Choices** @@ -1036,27 +1072,26 @@ nv_tune ========== =========== Value Description ========== =========== - hq high quality - ll low latency - ull ultra low latency - lossless lossless + disabled Use high priority + enabled Use realtime priority ========== =========== **Default** - ``ull`` + ``enabled`` **Example** .. code-block:: text - nv_tune = ull + nvenc_realtime_hags = enabled -nv_rc -^^^^^ +nvenc_h264_cavlc +^^^^^^^^^^^^^^^^ **Description** - The encoder rate control. + Prefer CAVLC entropy coding over CABAC in H.264 when using NVENC. + CAVLC is outdated and needs around 10% more bitrate for same quality, but provides slightly faster decoding when using software decoder. - .. Note:: This option only applies when using nvenc `encoder`_. + .. Note:: This option only applies when using H.264 format with NVENC `encoder`_. **Choices** @@ -1066,47 +1101,17 @@ nv_rc ========== =========== Value Description ========== =========== - constqp constant QP mode - vbr variable bitrate - cbr constant bitrate + disabled Prefer CABAC + enabled Prefer CAVLC ========== =========== **Default** - ``cbr`` + ``disabled`` **Example** .. code-block:: text - nv_rc = cbr - -nv_coder -^^^^^^^^ - -**Description** - The entropy encoding to use. - - .. Note:: This option only applies when using H264 with nvenc `encoder`_. - -**Choices** - -.. table:: - :widths: auto - - ========== =========== - Value Description - ========== =========== - auto let ffmpeg decide - cabac context adaptive binary arithmetic coding - higher quality - cavlc context adaptive variable-length coding - faster decode - ========== =========== - -**Default** - ``auto`` - -**Example** - .. code-block:: text - - nv_coder = auto + nvenc_h264_cavlc = disabled qsv_preset ^^^^^^^^^^