Add option for intra refresh (resolves #86)
This commit is contained in:
@@ -1008,6 +1008,7 @@ namespace config {
|
||||
bool_f(vars, "nvenc_spatial_aq", video.nv.adaptive_quantization);
|
||||
generic_f(vars, "nvenc_twopass", video.nv.two_pass, nv::twopass_from_view);
|
||||
bool_f(vars, "nvenc_h264_cavlc", video.nv.h264_cavlc);
|
||||
bool_f(vars, "nvenc_intra_refresh", video.nv.intra_refresh);
|
||||
bool_f(vars, "nvenc_realtime_hags", video.nv_realtime_hags);
|
||||
bool_f(vars, "nvenc_opengl_vulkan_on_dxgi", video.nv_opengl_vulkan_on_dxgi);
|
||||
bool_f(vars, "nvenc_latency_over_power", video.nv_sunshine_high_power_mode);
|
||||
|
||||
@@ -321,10 +321,14 @@ namespace nvenc {
|
||||
set_ref_frames(format_config.maxNumRefFramesInDPB, format_config.numRefL0, 5);
|
||||
set_minqp_if_enabled(config.min_qp_hevc);
|
||||
fill_h264_hevc_vui(format_config.hevcVUIParameters);
|
||||
format_config.enableIntraRefresh = 1;
|
||||
format_config.singleSliceIntraRefresh = 1;
|
||||
format_config.intraRefreshPeriod = 300;
|
||||
format_config.intraRefreshCnt = 299;
|
||||
|
||||
if (config.intra_refresh) {
|
||||
format_config.enableIntraRefresh = 1;
|
||||
format_config.singleSliceIntraRefresh = 1;
|
||||
format_config.intraRefreshPeriod = 300;
|
||||
format_config.intraRefreshCnt = 299;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +48,9 @@ namespace nvenc {
|
||||
|
||||
// Add filler data to encoded frames to stay at target bitrate, mainly for testing
|
||||
bool insert_filler_data = false;
|
||||
|
||||
// Intra refresh for clients that doesn't request keyframe correctly
|
||||
bool intra_refresh = false;
|
||||
};
|
||||
|
||||
} // namespace nvenc
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<nav class="navbar navbar-light navbar-expand-lg navbar-background header">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="./" title="Apollo">
|
||||
<img src="./images/logo-apollo-45.png" height="45" alt="Apollo">
|
||||
<img src="/images/logo-apollo-45.png" height="45" alt="Apollo">
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
|
||||
@@ -241,6 +241,7 @@
|
||||
"nvenc_latency_over_power": "enabled",
|
||||
"nvenc_opengl_vulkan_on_dxgi": "enabled",
|
||||
"nvenc_h264_cavlc": "disabled",
|
||||
"nvenc_intra_refresh": "disabled"
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -114,6 +114,16 @@ const config = ref(props.config)
|
||||
</select>
|
||||
<div class="form-text">{{ $t('config.nvenc_h264_cavlc_desc') }}</div>
|
||||
</div>
|
||||
|
||||
<!-- NVENC Intra Refresh -->
|
||||
<div>
|
||||
<label for="nvenc_h264_cavlc" class="form-label">{{ $t('config.nvenc_intra_refresh') }}</label>
|
||||
<select id="nvenc_h264_cavlc" class="form-select" v-model="config.nvenc_intra_refresh">
|
||||
<option value="disabled">{{ $t('_common.disabled_def') }}</option>
|
||||
<option value="enabled">{{ $t('_common.enabled') }}</option>
|
||||
</select>
|
||||
<div class="form-text">{{ $t('config.nvenc_intra_refresh_desc') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -262,6 +262,8 @@
|
||||
"notify_pre_releases_desc": "Whether to be notified of new pre-release versions of Apollo",
|
||||
"nvenc_h264_cavlc": "Prefer CAVLC over CABAC in H.264",
|
||||
"nvenc_h264_cavlc_desc": "Simpler form of entropy coding. CAVLC needs around 10% more bitrate for same quality. Only relevant for really old decoding devices.",
|
||||
"nvenc_intra_refresh": "Intra Refresh",
|
||||
"nvenc_intra_refresh_desc": "Enable Intra Refresh for some clients to render correctly continuously (e.g. Xbox Client)",
|
||||
"nvenc_latency_over_power": "Prefer lower encoding latency over power savings",
|
||||
"nvenc_latency_over_power_desc": "Apollo requests maximum GPU clock speed while streaming to reduce encoding latency. Disabling it is not recommended since this can lead to significantly increased encoding latency.",
|
||||
"nvenc_opengl_vulkan_on_dxgi": "Present OpenGL/Vulkan on top of DXGI",
|
||||
|
||||
@@ -260,6 +260,8 @@
|
||||
"notify_pre_releases_desc": "是否接收 Apollo 新预发布版本的通知",
|
||||
"nvenc_h264_cavlc": "在 H.264 中,偏向 CAVLC 而不是 CABAC",
|
||||
"nvenc_h264_cavlc_desc": "一种更简单的熵编码形式。相同质量的情况下,CAVLC 需要增加 10% 的比特率。只适用于非常老旧的解码设备。",
|
||||
"nvenc_intra_refresh": "帧内刷新",
|
||||
"nvenc_intra_refresh_desc": "启用帧内刷新以使部分客户端可以持续正常渲染 (e.g. Xbox Client)",
|
||||
"nvenc_latency_over_power": "倾向于较低的编码延迟而不是省电",
|
||||
"nvenc_latency_over_power_desc": "Apollo 在串流时请求最高的 GPU 核心频率,以降低编码延迟。 不建议禁用它,因为这会大大增加编码延迟。",
|
||||
"nvenc_opengl_vulkan_on_dxgi": "在 DXGI 基础上呈现 OpenGL/Vulkan",
|
||||
|
||||
Reference in New Issue
Block a user