mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-24 09:08:23 +03:00
Improve hwaccel UI config (#22590)
* Add proper labels for hwaccel presets * Filter presets based on hardware
This commit is contained in:
parent
2c9a25e678
commit
5d67ba76fd
@ -5,6 +5,7 @@ import copy
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
import traceback
|
||||
import urllib
|
||||
from datetime import datetime, timedelta
|
||||
@ -246,19 +247,26 @@ def get_active_profile(request: Request):
|
||||
@router.get("/ffmpeg/presets", dependencies=[Depends(allow_any_authenticated())])
|
||||
def ffmpeg_presets():
|
||||
"""Return available ffmpeg preset keys for config UI usage."""
|
||||
machine = platform.machine().lower()
|
||||
is_arm64 = machine in ("aarch64", "arm64", "armv8", "armv7l")
|
||||
|
||||
if is_arm64:
|
||||
hwaccel_presets = [
|
||||
"preset-rpi-64-h264",
|
||||
"preset-rpi-64-h265",
|
||||
"preset-jetson-h264",
|
||||
"preset-jetson-h265",
|
||||
"preset-rkmpp",
|
||||
"preset-vaapi",
|
||||
]
|
||||
else:
|
||||
hwaccel_presets = [
|
||||
"preset-vaapi",
|
||||
"preset-intel-qsv-h264",
|
||||
"preset-intel-qsv-h265",
|
||||
"preset-nvidia",
|
||||
]
|
||||
|
||||
# Whitelist based on documented presets in ffmpeg_presets.md
|
||||
hwaccel_presets = [
|
||||
"preset-rpi-64-h264",
|
||||
"preset-rpi-64-h265",
|
||||
"preset-vaapi",
|
||||
"preset-intel-qsv-h264",
|
||||
"preset-intel-qsv-h265",
|
||||
"preset-nvidia",
|
||||
"preset-jetson-h264",
|
||||
"preset-jetson-h265",
|
||||
"preset-rkmpp",
|
||||
]
|
||||
input_presets = [
|
||||
"preset-http-jpeg-generic",
|
||||
"preset-http-mjpeg-generic",
|
||||
|
||||
@ -1330,7 +1330,18 @@
|
||||
"none": "None",
|
||||
"useGlobalSetting": "Inherit from global setting",
|
||||
"selectPreset": "Select preset",
|
||||
"manualPlaceholder": "Enter FFmpeg arguments"
|
||||
"manualPlaceholder": "Enter FFmpeg arguments",
|
||||
"presetLabels": {
|
||||
"preset-rpi-64-h264": "Raspberry Pi (H.264)",
|
||||
"preset-rpi-64-h265": "Raspberry Pi (H.265)",
|
||||
"preset-vaapi": "VAAPI (Intel/AMD GPU)",
|
||||
"preset-intel-qsv-h264": "Intel QuickSync (H.264)",
|
||||
"preset-intel-qsv-h265": "Intel QuickSync (H.265)",
|
||||
"preset-nvidia": "NVIDIA GPU",
|
||||
"preset-jetson-h264": "NVIDIA Jetson (H.264)",
|
||||
"preset-jetson-h265": "NVIDIA Jetson (H.265)",
|
||||
"preset-rkmpp": "Rockchip RKMPP"
|
||||
}
|
||||
},
|
||||
"cameraInputs": {
|
||||
"itemTitle": "Stream {{index}}"
|
||||
|
||||
@ -405,7 +405,10 @@ export function FfmpegArgsWidget(props: WidgetProps) {
|
||||
<SelectContent>
|
||||
{presetOptions.map((preset) => (
|
||||
<SelectItem key={preset} value={preset}>
|
||||
{preset}
|
||||
{t(`configForm.ffmpegArgs.presetLabels.${preset}`, {
|
||||
ns: "views/settings",
|
||||
defaultValue: preset,
|
||||
})}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user