MakeMKV 1.18.4 + UHD-Fehler-Ursachen im Klartext (Laufwerk ist geflasht — Disc-Key war das Problem)
Ampel / ampel (push) Successful in 29s
Ampel / ampel (push) Successful in 29s
Diagnose auf der VM (Summer-Wars-UHD, MKB v82): - 'Using LibreDrive mode (v06.3)' — der BU40N-Crossflash IST erledigt, das Laufwerk liest UHD. Der Fehlschlag kam von 'The volume key is unknown for this disc': die Disc ist neuer als MakeMKVs Schluessel-Datenbank — mit 1.17.7 UND der aktuellsten 1.18.4 bewiesen (beide Versionen live gegen die Disc getestet). Konsequenzen: - MakeMKV-Pin von 1.17.7 auf 1.18.4 gehoben: der 1.18er Scan-Haenger (Forum t=38128) wird ueberall mit --noscan umgangen (info-Lauf mit 1.18.4 auf der BU40N sauber durchgelaufen), die Flash-Faehigkeit von 1.17.7 wird nicht mehr gebraucht. Aktuelle Version = aktuellste AACS-Key-DB. URL-Base -> /download (dort liegt nur die aktuelle). - run_makemkv reicht KRITISCHE Meldungen (volume key unknown, Key abgelaufen, too old version) in den Fehlertext durch — vorher stand da nur die nichtssagende letzte Zeile 'Failed to open disc'. - UHD-Klartext in tasks.py unterscheidet jetzt die zwei Faelle: volume-key-unknown (MakeMKV/Disc-Alter, AACS-Dump aus /root/.MakeMKV/ im MakeMKV-Forum einreichen) vs. Failed-to-open ohne LibreDrive (Firmware-Hinweis). - SAVEPOINT: Flash-Status korrigiert (war als offen dokumentiert). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+13
-10
@@ -12,15 +12,18 @@
|
||||
|
||||
FROM python:3.12-slim-bookworm AS makemkv-build
|
||||
|
||||
# 1.17.7 statt 1.18.4 (23.07.2026): MakeMKV 1.18.x hat unter Linux einen
|
||||
# bekannten Hänger beim Laufwerks-Scan (100 % CPU, keine Ausgabe) — bei uns
|
||||
# reproduziert, im Forum vielfach bestätigt (t=38128, t=38239), Workaround
|
||||
# laut Community: 1.17.7. Bonus: 1.17.7 ist auch die Version, die
|
||||
# Firmware-Flashen kann (neuere ignorieren den Flash-Befehl).
|
||||
# MAKEMKV_URL_BASE ist übersteuerbar (Build-Arg), falls makemkv.com
|
||||
# gerade down ist (Wayback-Snapshot als Ausweich-Quelle).
|
||||
ARG MAKEMKV_VERSION=1.17.7
|
||||
ARG MAKEMKV_URL_BASE=https://www.makemkv.com/download/old
|
||||
# Zurück auf die AKTUELLE Version (24.07.2026): 1.17.7 war wegen des
|
||||
# 1.18er-Laufwerks-Scan-Hängers (Forum t=38128) und der Flash-Fähigkeit
|
||||
# gepinnt. Beides erledigt: der Scan wird überall mit --noscan umgangen
|
||||
# (info-Lauf mit 1.18.4 auf der BU40N sauber durchgelaufen, 24.07.), und
|
||||
# das Laufwerk ist geflasht (LibreDrive v06.3 bestätigt). Die AKTUELLE
|
||||
# Version zählt, weil sie die neueste AACS-Schlüssel-Datenbank mitbringt —
|
||||
# 1.17.7 kannte z. B. den Key der Summer-Wars-UHD (MKB v82) nicht.
|
||||
# MAKEMKV_URL_BASE ist übersteuerbar (Build-Arg): /download hat nur die
|
||||
# aktuelle Version, /download/old die älteren; bei Cloudflare-525 einen
|
||||
# Wayback-Snapshot eintragen.
|
||||
ARG MAKEMKV_VERSION=1.18.4
|
||||
ARG MAKEMKV_URL_BASE=https://www.makemkv.com/download
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
@@ -78,7 +81,7 @@ RUN ldconfig
|
||||
|
||||
# Version fürs UI sichtbar machen (Einstellungen → System): makemkvcon hat
|
||||
# keinen --version-Schalter, also kommt die Wahrheit aus dem Build selbst.
|
||||
ARG MAKEMKV_VERSION=1.17.7
|
||||
ARG MAKEMKV_VERSION=1.18.4
|
||||
ENV MAKEMKV_VERSION=${MAKEMKV_VERSION}
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -195,6 +195,17 @@ def run_makemkv(device_path: str, output_dir: str, progress_cb=None) -> dict:
|
||||
)
|
||||
|
||||
letzte_meldung = ""
|
||||
# Kritische Meldungen einsammeln: die LETZTE Zeile ist fast immer nur
|
||||
# "Failed to open disc" — die URSACHE ("volume key is unknown", Key
|
||||
# abgelaufen) steht Zeilen davor und ging im Fehlertext verloren
|
||||
# (Befund 24.07., Summer-Wars-UHD).
|
||||
kritische_meldungen = []
|
||||
KRITISCH = (
|
||||
"volume key is unknown",
|
||||
"evaluation period has expired",
|
||||
"registration key",
|
||||
"Too old version",
|
||||
)
|
||||
try:
|
||||
for line in process.stdout:
|
||||
progress = get_progress_from_prgv(line)
|
||||
@@ -205,6 +216,8 @@ def run_makemkv(device_path: str, output_dir: str, progress_cb=None) -> dict:
|
||||
teile = line.split(",", 4)
|
||||
if len(teile) >= 4:
|
||||
letzte_meldung = teile[3].strip('"')
|
||||
if any(muster in letzte_meldung for muster in KRITISCH):
|
||||
kritische_meldungen.append(letzte_meldung)
|
||||
except RipAbbruch:
|
||||
process.kill()
|
||||
process.wait()
|
||||
@@ -229,6 +242,7 @@ def run_makemkv(device_path: str, output_dir: str, progress_cb=None) -> dict:
|
||||
"status": "error",
|
||||
"error": (
|
||||
f"makemkvcon endete mit Code {process.returncode}"
|
||||
+ (f" — Ursache: {'; '.join(kritische_meldungen)}" if kritische_meldungen else "")
|
||||
+ (f" — letzte Meldung: {letzte_meldung}" if letzte_meldung else "")
|
||||
+ ("" if mkv_dateien else " — keine MKV-Datei entstanden")
|
||||
),
|
||||
|
||||
+24
-14
@@ -274,20 +274,30 @@ def rip_disc(self, device_path: str, job_id: str, target_dir: str = None):
|
||||
progress_cb=fortschritt, output_dir=final_dir,
|
||||
)
|
||||
|
||||
# 4K-UHD scheitert mit Nicht-LibreDrive-Laufwerken IMMER an der
|
||||
# Verschlüsselung — "Failed to open disc" heißt dann nicht "Disc kaputt",
|
||||
# sondern "Laufwerk kann kein UHD" (Firmware-Faden, siehe SAVEPOINT).
|
||||
if (
|
||||
ergebnis.get("status") == "error"
|
||||
and disc_type == "uhd"
|
||||
and "Failed to open disc" in (ergebnis.get("error") or "")
|
||||
):
|
||||
ergebnis["error"] += (
|
||||
" — 4K-UHD erkannt: Das Laufwerk kann UHD-Discs vermutlich nicht "
|
||||
"entschlüsseln. Dafür ist eine LibreDrive-Firmware nötig (BU40N: "
|
||||
"Crossflash auf 1.03-MK, MakeMKV-Forum 'Ultimate UHD Drives "
|
||||
"Flashing Guide'). Normale BD/DVD gehen weiterhin."
|
||||
)
|
||||
# UHD-Fehler in Klartext übersetzen — "Failed to open disc" allein hilft
|
||||
# niemandem. Zwei bekannte Ursachen (Befunde 24.07., Summer-Wars-UHD):
|
||||
if ergebnis.get("status") == "error" and disc_type == "uhd":
|
||||
fehler_text = ergebnis.get("error") or ""
|
||||
if "volume key is unknown" in fehler_text:
|
||||
# LibreDrive lief bereits — MakeMKV kennt nur den Disc-Schlüssel
|
||||
# nicht: Version zu alt ODER Disc neuer als die Key-Datenbank.
|
||||
ergebnis["error"] += (
|
||||
" — Klartext: Das Laufwerk liest die Disc (LibreDrive OK), "
|
||||
"aber MakeMKV kennt den Schlüssel dieser Disc nicht. Erst "
|
||||
"prüfen: MakeMKV aktuell? (Einstellungen → System; Update = "
|
||||
"Image-Rebuild). Ist es aktuell, ist die Disc neuer als die "
|
||||
"Schlüssel-Datenbank — MakeMKV hat einen AACS-Dump unter "
|
||||
"/root/.MakeMKV/ im Worker gespeichert; im MakeMKV-Forum "
|
||||
"(Bereich 'Ultra HD Blu-ray') einreichen, mit einem der "
|
||||
"nächsten Updates ist die Disc dann rippbar."
|
||||
)
|
||||
elif "Failed to open disc" in fehler_text:
|
||||
ergebnis["error"] += (
|
||||
" — 4K-UHD erkannt: Das Laufwerk kann UHD-Discs vermutlich "
|
||||
"nicht entschlüsseln. Dafür ist eine LibreDrive-Firmware nötig "
|
||||
"(MakeMKV-Forum 'Ultimate UHD Drives Flashing Guide'). "
|
||||
"Normale BD/DVD gehen weiterhin."
|
||||
)
|
||||
|
||||
if ergebnis.get("status") == "success" and transcode_an:
|
||||
# Kompression als eigener Task auf der transcode-Queue — kann vom
|
||||
|
||||
Reference in New Issue
Block a user