From 6362f49fdda53180d694f28e7759fb256af5bb5a Mon Sep 17 00:00:00 2001 From: Conn O'Griofa Date: Fri, 4 Nov 2022 23:59:37 +0000 Subject: [PATCH] video: amdvce: set better ffmpeg encoder options * reorder options alphabetically * set gops_per_idr to 1. Ref: https://trac.ffmpeg.org/ticket/7272 * qp_min/qp_max set by ffmpeg is suboptimal for the AMF encoder. Changing to the correct values greatly increases visual quality. Ref: https://github.com/GPUOpen-LibrariesAndSDKs/AMF/issues/256#issuecomment-790064914 * Enforce HRD to ensure that bitrate/maxrate is correctly constrained * Enable VBAQ to improve visual quality in complex scenes (movement/foliage) --- src/video.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/video.cpp b/src/video.cpp index bec77c81b9d..e847b629f4e 100644 --- a/src/video.cpp +++ b/src/video.cpp @@ -455,21 +455,29 @@ static encoder_t amdvce { AV_PIX_FMT_NV12, AV_PIX_FMT_P010, { { + { "enforce_hrd"s, true }, + { "gops_per_idr"s, 1 }, { "header_insertion_mode"s, "idr"s }, - { "gops_per_idr"s, 30 }, - { "usage"s, "ultralowlatency"s }, + { "qmax"s, 51 }, + { "qmin"s, 0 }, { "quality"s, &config::video.amd.quality }, { "rc"s, &config::video.amd.rc_hevc }, + { "usage"s, "ultralowlatency"s }, + { "vbaq"s, true }, }, std::make_optional({ "qp_p"s, &config::video.qp }), "hevc_amf"s, }, { { - { "usage"s, "ultralowlatency"s }, + { "enforce_hrd"s, true }, + { "log_to_dbg"s, "1"s }, + { "qmax"s, 51 }, + { "qmin"s, 0 }, { "quality"s, &config::video.amd.quality }, { "rc"s, &config::video.amd.rc_h264 }, - { "log_to_dbg"s, "1"s }, + { "usage"s, "ultralowlatency"s }, + { "vbaq"s, true }, }, std::make_optional({ "qp_p"s, &config::video.qp }), "h264_amf"s,