diff --git a/docs/source/about/advanced_usage.rst b/docs/source/about/advanced_usage.rst index fe603e38..aae82ae7 100644 --- a/docs/source/about/advanced_usage.rst +++ b/docs/source/about/advanced_usage.rst @@ -1424,6 +1424,22 @@ keybindings qsv_coder = auto +`qsv_slow_hevc `__ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Description** + This options enables use of HEVC on older Intel GPUs that only support low power encoding for H.264. + + .. Caution:: Streaming performance may be significantly reduced when this option is enabled. + +**Default** + ``disabled`` + +**Example** + .. code-block:: text + + qsv_slow_hevc = disabled + `AMD AMF Encoder `__ --------------------------------------------------------------------- diff --git a/src/config.cpp b/src/config.cpp index d9aaab3e..ba2718ac 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -339,6 +339,7 @@ namespace config { { qsv::medium, // preset qsv::_auto, // cavlc + false, // slow_hevc }, // qsv { @@ -962,6 +963,7 @@ namespace config { int_f(vars, "qsv_preset", video.qsv.qsv_preset, qsv::preset_from_view); int_f(vars, "qsv_coder", video.qsv.qsv_cavlc, qsv::coder_from_view); + bool_f(vars, "qsv_slow_hevc", video.qsv.qsv_slow_hevc); std::string quality; string_f(vars, "amd_quality", quality); diff --git a/src/config.h b/src/config.h index e08a87f3..6c48f466 100644 --- a/src/config.h +++ b/src/config.h @@ -44,6 +44,7 @@ namespace config { struct { std::optional qsv_preset; std::optional qsv_cavlc; + bool qsv_slow_hevc; } qsv; struct { diff --git a/src/video.cpp b/src/video.cpp index 636bcf60..b73c0a4d 100644 --- a/src/video.cpp +++ b/src/video.cpp @@ -763,7 +763,9 @@ namespace video { { "profile"s, (int) qsv::profile_hevc_e::main_10 }, }, // Fallback options - {}, + { + { "low_power"s, []() { return config::video.qsv.qsv_slow_hevc ? 0 : 1; } }, + }, std::nullopt, // QP rate control fallback "hevc_qsv"s, }, diff --git a/src_assets/common/assets/web/config.html b/src_assets/common/assets/web/config.html index b90ab7ed..85fecacd 100644 --- a/src_assets/common/assets/web/config.html +++ b/src_assets/common/assets/web/config.html @@ -1021,6 +1021,18 @@ + +
+ + +
+ This can enable HEVC encoding on older Intel GPUs, at the cost of higher GPU usage and worse performance. +
+
+ @@ -1293,6 +1305,7 @@ options: { "qsv_preset": "medium", "qsv_coder": "auto", + "qsv_slow_hevc": "disabled", }, }, {