Add encoding frame rate limit

This commit is contained in:
Yukino Song
2025-02-03 03:26:03 +08:00
parent 525d42afc5
commit 8b0053437a
6 changed files with 19 additions and 0 deletions

View File

@@ -417,6 +417,7 @@ namespace config {
video_t video {
false, // headless_mode
true, // limit_framerate
28, // qp
0, // hevc_mode
@@ -1089,6 +1090,7 @@ namespace config {
}
bool_f(vars, "headless_mode", video.headless_mode);
bool_f(vars, "limit_framerate", video.limit_framerate);
int_f(vars, "qp", video.qp);
int_between_f(vars, "hevc_mode", video.hevc_mode, { 0, 3 });
int_between_f(vars, "av1_mode", video.av1_mode, { 0, 3 });

View File

@@ -16,6 +16,7 @@
namespace config {
struct video_t {
bool headless_mode;
bool limit_framerate;
// ffmpeg params
int qp; // higher == more compression and less quality

View File

@@ -193,6 +193,8 @@
"dd_config_revert_delay": 3000,
"dd_mode_remapping": {"mixed": [], "resolution_only": [], "refresh_rate_only": []},
"dd_wa_hdr_toggle": "disabled",
"fallback_mode": "",
"headless_mode": "disabled",
"min_fps_factor": 1,
},
},
@@ -229,6 +231,7 @@
"fec_percentage": 20,
"qp": 28,
"min_threads": 2,
"limit_framerate": "enabled",
"hevc_mode": 0,
"av1_mode": 0,
"capture": "",

View File

@@ -1,6 +1,7 @@
<script setup>
import { ref } from 'vue'
import PlatformLayout from '../../PlatformLayout.vue'
import Checkbox from "../../Checkbox.vue";
const props = defineProps([
'platform',
@@ -34,6 +35,14 @@ const config = ref(props.config)
<div class="form-text">{{ $t('config.min_threads_desc') }}</div>
</div>
<!-- Limit Framerate -->
<Checkbox class="mb-3"
id="limit_framerate"
locale-prefix="config"
v-model="config.limit_framerate"
default="true"
></Checkbox>
<!-- HEVC Support -->
<div class="mb-3">
<label for="hevc_mode" class="form-label">{{ $t('config.hevc_mode') }}</label>

View File

@@ -283,6 +283,8 @@
"lan_encryption_mode_1": "Enabled for supported clients",
"lan_encryption_mode_2": "Required for all clients",
"lan_encryption_mode_desc": "This determines when encryption will be used when streaming over your local network. Encryption can reduce streaming performance, particularly on less powerful hosts and clients.",
"limit_framerate": "Limit capture framerate",
"limit_framerate_desc": "Limit the framerate being captured to client requested framerate. May not run at full framerate if vsync is enabled and display refreshrate does not match requested framerate. Could cause lag on some clients if disabled.",
"locale": "Locale",
"locale_desc": "The locale used for Apollo's user interface.",
"log_level": "Log Level",

View File

@@ -278,6 +278,8 @@
"lan_encryption_mode_1": "为支持的客户端启用",
"lan_encryption_mode_2": "强制所有客户端使用",
"lan_encryption_mode_desc": "这将决定在本地网络上进行流媒体传输时何时使用加密。加密会降低流媒体性能,尤其是在功能较弱的主机和客户端上。",
"limit_framerate": "限制捕获帧率",
"limit_framerate_desc": "将捕获帧率限制到客户端请求的帧率。当启用垂直同步且显示器刷新率与客户端刷新率不匹配时可能会跑不满请求的帧率。若禁用,可能会在某些客户端上导致延迟。",
"locale": "本地化",
"locale_desc": "用于 Apollo 用户界面的本地化设置。",
"log_level": "日志级别",