diff --git a/install-dev.sh b/install-dev.sh index 0c524f0..3599090 100755 --- a/install-dev.sh +++ b/install-dev.sh @@ -282,22 +282,33 @@ build_handbrake_nvdec() { 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() { 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 build_handbrake_nvdec return fi + # Bereits installiert → nichts tun if command_exists HandBrakeCLI; then local ver ver=$(HandBrakeCLI --version 2>&1 | head -1) 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 fi @@ -305,9 +316,6 @@ install_handbrake() { info "Versuche HandBrake CLI aus den Standard-Repos..." if apt-get install -y handbrake-cli 2>/dev/null; then 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 fi diff --git a/install.sh b/install.sh index aa75b7f..3625b9e 100755 --- a/install.sh +++ b/install.sh @@ -296,33 +296,41 @@ build_handbrake_nvdec() { fi } +handbrake_has_nvdec() { + command_exists HandBrakeCLI || return 1 + HandBrakeCLI --help 2>&1 | grep -qi "nvdec" +} + install_handbrake() { header "HandBrake CLI installieren" - # --build-handbrake: immer aus Quellcode mit NVDEC bauen - if [[ "$BUILD_HANDBRAKE_NVDEC" == true ]]; then - build_handbrake_nvdec + # Bereits installiert MIT NVDEC → nichts tun + if handbrake_has_nvdec; then + ok "HandBrakeCLI mit NVDEC bereits installiert: $(HandBrakeCLI --version 2>&1 | head -1)" return fi - # Bereits installiert? + # Installiert OHNE NVDEC → entfernen und NVDEC-Build erzwingen if command_exists HandBrakeCLI; then - local ver - ver=$(HandBrakeCLI --version 2>&1 | head -1) - 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.sh --no-makemkv --no-nginx --build-handbrake" - fi + warn "HandBrakeCLI ohne NVDEC gefunden – wird ersetzt durch NVDEC-Build." + BUILD_HANDBRAKE_NVDEC=true + fi + + # --build-handbrake-Flag oder kein NVDEC in vorhandener Installation + if [[ "$BUILD_HANDBRAKE_NVDEC" == true ]]; then + build_handbrake_nvdec return fi # Strategie 1: direkt aus den Distro-Repos (Ubuntu Universe / Debian) info "Versuche HandBrake CLI aus den Standard-Repos..." if apt-get install -y handbrake-cli 2>/dev/null; then - 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.sh --no-makemkv --no-nginx --build-handbrake" + # Nach apt-Install: NVDEC prüfen – falls nicht, sofort NVDEC-Build + if handbrake_has_nvdec; then + ok "HandBrakeCLI installiert (Standard-Repos, mit NVDEC)" + else + warn "Installiertes HandBrakeCLI hat kein NVDEC – ersetze durch NVDEC-Build." + build_handbrake_nvdec fi return fi