瀏覽代碼

obs-nvenc: Force at least 4 b-frames when using UHQ tune

derrod 1 年之前
父節點
當前提交
e8968ba715
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      plugins/obs-nvenc/nvenc.c

+ 8 - 0
plugins/obs-nvenc/nvenc.c

@@ -274,6 +274,14 @@ static bool init_encoder_base(struct nvenc_data *enc, obs_data_t *settings)
 
 	initialize_params(enc, &nv_preset, nv_tuning, voi->width, voi->height, voi->fps_num, voi->fps_den);
 
+#ifdef NVENC_12_2_OR_LATER
+	/* Force at least 4 b-frames when using the UHQ tune */
+	if (nv_tuning == NV_ENC_TUNING_INFO_ULTRA_HIGH_QUALITY && enc->props.bf < 4) {
+		warn("Forcing number of b-frames to 4 for UHQ tune.");
+		enc->props.bf = 4;
+	}
+#endif
+
 	config->gopLength = gop_size;
 	config->frameIntervalP = gop_size == 1 ? 0 : (int32_t)enc->props.bf + 1;