This commit is contained in:
2026-03-09 13:46:44 +00:00
parent fa6594b163
commit 78ceb23a27
2 changed files with 37 additions and 21 deletions

View File

@@ -282,22 +282,33 @@ build_handbrake_nvdec() {
fi fi
} }
has_nvidia_gpu() {
[[ -e /dev/nvidia0 ]] && return 0
command_exists nvidia-smi && nvidia-smi &>/dev/null && return 0
command_exists lspci && lspci 2>/dev/null | grep -qi "nvidia" && return 0
return 1
}
install_handbrake() { install_handbrake() {
header "HandBrake CLI installieren" header "HandBrake CLI installieren"
# NVIDIA-GPU vorhanden? → immer NVDEC-Build erzwingen
if has_nvidia_gpu; then
info "NVIDIA-GPU erkannt HandBrake wird mit NVDEC aus Quellcode gebaut."
BUILD_HANDBRAKE_NVDEC=true
fi
# --build-handbrake oder NVIDIA erkannt: aus Quellcode mit NVDEC bauen
if [[ "$BUILD_HANDBRAKE_NVDEC" == true ]]; then if [[ "$BUILD_HANDBRAKE_NVDEC" == true ]]; then
build_handbrake_nvdec build_handbrake_nvdec
return return
fi fi
# Bereits installiert → nichts tun
if command_exists HandBrakeCLI; then if command_exists HandBrakeCLI; then
local ver local ver
ver=$(HandBrakeCLI --version 2>&1 | head -1) ver=$(HandBrakeCLI --version 2>&1 | head -1)
ok "HandBrakeCLI bereits installiert: ${ver}" ok "HandBrakeCLI bereits installiert: ${ver}"
if ! HandBrakeCLI --help 2>&1 | grep -qi "nvdec"; then
warn "Das installierte HandBrakeCLI unterstützt kein NVDEC."
warn "Für NVDEC neu bauen: sudo bash install-dev.sh --no-makemkv --no-nginx --build-handbrake"
fi
return return
fi fi
@@ -305,9 +316,6 @@ install_handbrake() {
info "Versuche HandBrake CLI aus den Standard-Repos..." info "Versuche HandBrake CLI aus den Standard-Repos..."
if apt-get install -y handbrake-cli 2>/dev/null; then if apt-get install -y handbrake-cli 2>/dev/null; then
ok "HandBrakeCLI installiert (Standard-Repos)" ok "HandBrakeCLI installiert (Standard-Repos)"
if ! HandBrakeCLI --help 2>&1 | grep -qi "nvdec"; then
warn "Dieses HandBrakeCLI hat kein NVDEC. Für NVDEC: sudo bash install-dev.sh --no-makemkv --no-nginx --build-handbrake"
fi
return return
fi fi

View File

@@ -296,33 +296,41 @@ build_handbrake_nvdec() {
fi fi
} }
handbrake_has_nvdec() {
command_exists HandBrakeCLI || return 1
HandBrakeCLI --help 2>&1 | grep -qi "nvdec"
}
install_handbrake() { install_handbrake() {
header "HandBrake CLI installieren" header "HandBrake CLI installieren"
# --build-handbrake: immer aus Quellcode mit NVDEC bauen # Bereits installiert MIT NVDEC → nichts tun
if [[ "$BUILD_HANDBRAKE_NVDEC" == true ]]; then if handbrake_has_nvdec; then
build_handbrake_nvdec ok "HandBrakeCLI mit NVDEC bereits installiert: $(HandBrakeCLI --version 2>&1 | head -1)"
return return
fi fi
# Bereits installiert? # Installiert OHNE NVDEC → entfernen und NVDEC-Build erzwingen
if command_exists HandBrakeCLI; then if command_exists HandBrakeCLI; then
local ver warn "HandBrakeCLI ohne NVDEC gefunden wird ersetzt durch NVDEC-Build."
ver=$(HandBrakeCLI --version 2>&1 | head -1) BUILD_HANDBRAKE_NVDEC=true
ok "HandBrakeCLI bereits installiert: ${ver}" fi
if ! HandBrakeCLI --help 2>&1 | grep -qi "nvdec"; then
warn "Das installierte HandBrakeCLI unterstützt kein NVDEC." # --build-handbrake-Flag oder kein NVDEC in vorhandener Installation
warn "Für NVDEC neu bauen: sudo bash install.sh --no-makemkv --no-nginx --build-handbrake" if [[ "$BUILD_HANDBRAKE_NVDEC" == true ]]; then
fi build_handbrake_nvdec
return return
fi fi
# Strategie 1: direkt aus den Distro-Repos (Ubuntu Universe / Debian) # Strategie 1: direkt aus den Distro-Repos (Ubuntu Universe / Debian)
info "Versuche HandBrake CLI aus den Standard-Repos..." info "Versuche HandBrake CLI aus den Standard-Repos..."
if apt-get install -y handbrake-cli 2>/dev/null; then if apt-get install -y handbrake-cli 2>/dev/null; then
ok "HandBrakeCLI installiert (Standard-Repos)" # Nach apt-Install: NVDEC prüfen falls nicht, sofort NVDEC-Build
if ! HandBrakeCLI --help 2>&1 | grep -qi "nvdec"; then if handbrake_has_nvdec; then
warn "Dieses HandBrakeCLI hat kein NVDEC. Für NVDEC: sudo bash install.sh --no-makemkv --no-nginx --build-handbrake" ok "HandBrakeCLI installiert (Standard-Repos, mit NVDEC)"
else
warn "Installiertes HandBrakeCLI hat kein NVDEC ersetze durch NVDEC-Build."
build_handbrake_nvdec
fi fi
return return
fi fi