feat(linux/vaapi): VAAPI encoder improvements (#5388)
This commit is contained in:
@@ -356,6 +356,9 @@
|
||||
id: "vaapi",
|
||||
name: "VA-API Encoder",
|
||||
options: {
|
||||
"vaapi_blbrc": "disabled",
|
||||
"vaapi_quality": "auto",
|
||||
"vaapi_rc": "auto",
|
||||
"vaapi_strict_rc_buffer": "disabled",
|
||||
},
|
||||
},
|
||||
|
||||
@@ -12,13 +12,80 @@ const config = ref(props.config)
|
||||
|
||||
<template>
|
||||
<div id="vaapi-encoder" class="config-page">
|
||||
<!-- Strict RC Buffer -->
|
||||
<Checkbox class="mb-3"
|
||||
id="vaapi_strict_rc_buffer"
|
||||
locale-prefix="config"
|
||||
v-model="config.vaapi_strict_rc_buffer"
|
||||
default="false"
|
||||
></Checkbox>
|
||||
<!-- VAAPI Rate Control group options -->
|
||||
<div class="mb-3 accordion">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#panelsStayOpen-collapseOne">
|
||||
{{ $t('config.vaapi_rc_group') }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="panelsStayOpen-collapseOne" class="accordion-collapse collapse show"
|
||||
aria-labelledby="panelsStayOpen-headingOne">
|
||||
<div class="accordion-body">
|
||||
<!-- VAAPI Rate Control -->
|
||||
<div class="mb-3">
|
||||
<label for="vaapi_rc" class="form-label">{{ $t('config.vaapi_rc') }}</label>
|
||||
<select id="vaapi_rc" class="form-select" v-model="config.vaapi_rc">
|
||||
<option value="auto">{{ $t('auto') }}</option>
|
||||
<option value="avbr">{{ $t('config.vaapi_rc_avbr') }}</option>
|
||||
<option value="vbr">{{ $t('config.vaapi_rc_vbr') }}</option>
|
||||
<option value="cbr">{{ $t('config.vaapi_rc_cbr') }}</option>
|
||||
<option value="cqp">{{ $t('config.vaapi_rc_cqp') }}</option>
|
||||
<option value="icq">{{ $t('config.vaapi_rc_icq') }}</option>
|
||||
<option value="qvbr">{{ $t('config.vaapi_rc_qvbr') }}</option>
|
||||
</select>
|
||||
<div class="form-text">{{ $t('config.vaapi_rc_desc') }}</div>
|
||||
</div>
|
||||
|
||||
<!-- BLBRC -->
|
||||
<Checkbox class="mb-3"
|
||||
id="vaapi_blbrc"
|
||||
locale-prefix="config"
|
||||
v-model="config.vaapi_blbrc"
|
||||
default="false"
|
||||
></Checkbox>
|
||||
|
||||
<!-- Strict RC Buffer -->
|
||||
<Checkbox class="mb-3"
|
||||
id="vaapi_strict_rc_buffer"
|
||||
locale-prefix="config"
|
||||
v-model="config.vaapi_strict_rc_buffer"
|
||||
default="false"
|
||||
></Checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- VAAPI Quality group options -->
|
||||
<div class="mb-3 accordion">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#panelsStayOpen-collapseTwo">
|
||||
{{ $t('config.vaapi_quality_group') }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="panelsStayOpen-collapseTwo" class="accordion-collapse collapse show"
|
||||
aria-labelledby="panelsStayOpen-headingTwo">
|
||||
<div class="accordion-body">
|
||||
<!-- VAAPI Quality -->
|
||||
<div class="mb-3">
|
||||
<label for="vaapi_quality" class="form-label">{{ $t('config.vaapi_quality') }}</label>
|
||||
<select id="vaapi_quality" class="form-select" v-model="config.vaapi_quality">
|
||||
<option value="auto">{{ $t('auto') }}</option>
|
||||
<option value="speed">{{ $t('config.vaapi_quality_speed') }}</option>
|
||||
<option value="balanced">{{ $t('config.vaapi_quality_balanced') }}</option>
|
||||
<option value="quality">{{ $t('config.vaapi_quality_quality') }}</option>
|
||||
</select>
|
||||
<div class="form-text">{{ $t('config.vaapi_quality_desc') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -397,6 +397,23 @@
|
||||
"touchpad_as_ds4_desc": "If disabled, touchpad presence will not be taken into account during gamepad type selection.",
|
||||
"upnp": "UPnP",
|
||||
"upnp_desc": "Automatically configure port forwarding for streaming over the Internet",
|
||||
"vaapi_blbrc": "Block level based bitrate control (BLBRC)",
|
||||
"vaapi_blbrc_desc": "Enable block level rate control, which assigns different bitrate block by block. Can be combined with CBR/VBR-type rate control methods on supported encoders.",
|
||||
"vaapi_quality": "VA-API Quality",
|
||||
"vaapi_quality_balanced": "balanced -- balanced",
|
||||
"vaapi_quality_desc": "Determines encoder tradeoff between quality and speed/power consumption.",
|
||||
"vaapi_quality_group": "VA-API Quality Settings",
|
||||
"vaapi_quality_quality": "quality -- prefer quality",
|
||||
"vaapi_quality_speed": "speed -- prefer speed",
|
||||
"vaapi_rc": "VA-API Rate Control",
|
||||
"vaapi_rc_avbr": "avbr -- average variable bitrate",
|
||||
"vaapi_rc_cbr": "cbr -- constant bitrate",
|
||||
"vaapi_rc_cqp": "cqp -- constant qp mode",
|
||||
"vaapi_rc_desc": "This controls the rate control method to ensure we are not exceeding the client bitrate target. Note that supported rate control methods varies by vendor, and automatic may force-enable strict bitrate enforcement on certain devices.",
|
||||
"vaapi_rc_group": "VA-API Rate Control Settings",
|
||||
"vaapi_rc_icq": "icq -- intelligent constant qp mode",
|
||||
"vaapi_rc_qvbr": "qvbr -- quality-defined variable bitrate",
|
||||
"vaapi_rc_vbr": "vbr -- variable bitrate",
|
||||
"vaapi_strict_rc_buffer": "Strictly enforce frame bitrate limits for H.264/HEVC on AMD GPUs",
|
||||
"vaapi_strict_rc_buffer_desc": "Enabling this option can avoid dropped frames over the network during scene changes, but video quality may be reduced during motion.",
|
||||
"vk_rc_cbr": "CBR (Constant Bitrate) (default)",
|
||||
|
||||
Reference in New Issue
Block a user