Entscheidungshilfe für Blu-ray-Kopien

Blu-ray-Backups prüfen: Hash, vollständige Dekodierung und Wiederherstellung

So prüfen Sie MKV- und MP4-Backups mit SHA-256, ffprobe, vollständiger FFmpeg-Dekodierung, Zielwiedergabe und einem echten Wiederherstellungstest.

Eine verlässliche Sicherungsdatei braucht mehrere voneinander getrennte Nachweise. Ein SHA-256-Vergleich zeigt, ob zwei Dateien bytegleich sind. ffprobe zeigt, welche Streams erkannt werden. Eine vollständige Dekodierung sucht bis zum Dateiende nach gemeldeten Audio- und Videofehlern. Wiedergabe und Wiederherstellung beantworten schließlich, ob die Datei im vorgesehenen Arbeitsablauf tatsächlich nutzbar ist.

Diese Anleitung gilt für lesbare MKV- oder MP4-Dateien aus eigenen oder autorisierten Medien. Sie entschlüsselt nichts, repariert keine beschädigten Dateien und prüft keine ISO-, BDMV- oder Menüstruktur. Kein einzelner erfolgreicher Test rechtfertigt es, das einzige Original zu löschen.

Vor dem Test einen Sollzustand festhalten

Notieren Sie zuerst, was Sie überhaupt erwarten. Dazu gehören absoluter Pfad, Dateigröße in Byte, mutmaßliche Laufzeit, der ausgewählte Haupttitel, benötigte Ton- und Untertitelspuren sowie Datum und Version der verwendeten Werkzeuge. Halten Sie außerdem fest, ob die Quelle bereits als zuverlässig gilt oder nur eine Arbeitsdatei unbekannter Qualität ist.

Eine Datei unbekannter Herkunft ist kein „Golden Master“. Bei Remux oder Transkodierung ändern sich die Bytes absichtlich; ein anderer Hash gegenüber der Quelle beweist dann keinen Fehler. Für die fertige Ausgabe wird nach der Erstellung ein eigener Ausgangswert erfasst. Der Leitfaden zum persönlichen Medienarchiv hilft dabei, Original, Arbeitsfassung und Zugriffskopie zu unterscheiden.

1. Bytegleichheit mit SHA-256 prüfen

Berechnen Sie in PowerShell denselben Algorithmus für Quelle und Kopie. Ersetzen Sie die Beispielpfade durch Ihre tatsächlichen Dateien.

Get-FileHash -LiteralPath 'D:\Archiv\film.mkv' -Algorithm SHA256
Get-FileHash -LiteralPath 'E:\Sicherung\film.mkv' -Algorithm SHA256

Laut Microsoft-Dokumentation zu Get-FileHash wird der Hash aus dem Dateiinhalt berechnet. Bei einer unveränderten Kopie zeigen identische SHA-256-Werte, dass genau diese beiden Dateien denselben Inhalt haben. Das entspricht dem Grundgedanken der Fixity-Erläuterung der Library of Congress: Eine empfangene Datei wird mit einem bekannten Bezugswert verglichen.

Der Hash beurteilt jedoch nicht den Film. War die Quelle bereits beschädigt, kann ihre fehlerhafte Kopie denselben Wert besitzen. Unterscheiden sich die Werte bei einer vorgesehenen 1:1-Kopie, gilt die Übertragung als nicht angenommen. Behalten Sie die Quelle und untersuchen Sie Pfad, Übertragung und Zielmedium.

2. Streams und Laufzeit mit ffprobe erfassen

Speichern Sie als Nächstes das erkannte Format und alle Streams als JSON.

ffprobe -v error -show_format -show_streams -of json 'E:\Sicherung\film.mkv' > 'E:\Sicherung\film-probe.json'
$LASTEXITCODE

Die ffprobe-Dokumentation beschreibt -show_format für Containerangaben und -show_streams für die erkannten Medienströme. Vergleichen Sie die gemeldete Dauer mit Ihrem Sollwert und prüfen Sie, ob Video, benötigte Sprachen und Untertitel vorhanden sind. Die Checkliste für Tonspuren und Untertitel verhindert, dass eine bloße Anzahl von Streams mit Vollständigkeit verwechselt wird.

Ein erfolgreich erzeugtes JSON ist keine vollständige Dateidekodierung. Fehlt ein erwarteter Stream bereits hier, darf der nächste Befehl diesen Mangel nicht stillschweigend als Erfolg behandeln.

3. Audio und Video vollständig dekodieren

Wenn FFmpeg und ffprobe über PATH erreichbar sind, dekodieren Sie alle gefundenen Video- und Audioströme ohne eine neue Mediendatei zu erzeugen.

ffmpeg -hide_banner -v error -xerror -i 'E:\Sicherung\film.mkv' -map '0:v?' -map '0:a?' -f null - 2> 'E:\Sicherung\film-decode.log'
$decodeExit = $LASTEXITCODE
$decodeExit
Get-Content -LiteralPath 'E:\Sicherung\film-decode.log'

In der FFmpeg-Dokumentation wählt -map die Streams ausdrücklich aus. Das Fragezeichen verhindert nur einen Fehler, wenn die betreffende Streamart überhaupt nicht vorhanden ist. Es erlaubt nicht, einen erwarteten Tonkanal zu übersehen; dafür bleibt der Abgleich mit dem ffprobe-Inventar zwingend. -xerror beendet die Verarbeitung bei einem gemeldeten Fehler. Der null-Muxer verwirft die dekodierten Bilder und Samples, statt eine Ausgabedatei zu schreiben.

Mit -v error enthält das Protokoll Meldungen der Stufe error und höher, nicht sämtliche Warnungen. Verwenden Sie hier kein -c copy: Streamcopy überträgt Pakete, ohne sie zu dekodieren. Auch eine Begrenzung wie -t 60 ist kein Volltest. Erst wenn die Verarbeitung ohne Zeitlimit normal bis zum Dateiende läuft, darf die Aussage lauten: „Mit dieser FFmpeg-Version wurden in den ausgewählten Audio- und Videoströmen bei diesem Durchlauf keine Fehler gemeldet.“

Auch dann bleibt eine Grenze: Eine formal gültige, aber zu früh endende Datei kann ohne Dekodierfehler auslaufen. Vergleichen Sie daher erwartete und erkannte Laufzeit und sehen Sie das Ende an. Exitcode 1 bedeutet ebenfalls nicht automatisch beschädigte Medien; ein fehlender Decoder, ein falscher Pfad oder ein Syntaxfehler kann denselben Ausgang erzeugen. Untertitel, Anhänge und Blu-ray-Menüs werden durch diesen Befehl nicht dekodiert.

Was der synthetische Versuch gezeigt hat

Für einen reproduzierbaren Versuch nutzten wir den bereits vorhandenen FFmpeg-/ffprobe-Build N-100410-gcd821c18dc. Eine drei Sekunden lange synthetische MKV-Datei enthielt H.264-Video und AAC-Audio. Danach wurde die Längenangabe des ersten erzeugten AVC-Pakets kontrolliert verändert.

Datei ffprobe vollständige Dekodierung SHA-256
gesunde synthetische MKV zwei Streams, Exit 0 Exit 0 identisch mit ihrer gesunden Kopie
kontrolliert beschädigte MKV weiterhin zwei Streams, Exit 0 Exit 1 identisch mit ihrer beschädigten Kopie

Damit ließ sich in genau diesem Test zeigen, dass lesbare Stream-Metadaten keine erfolgreiche Volldekodierung ersetzen. Ein übereinstimmender Hash kann ebenso zeigen, dass ein vorhandener Schaden unverändert mitkopiert wurde. Der Versuch misst keine allgemeine Erkennungsrate. Es wurden keine Disc, kein optisches Laufwerk, keine kommerzielle Backup-Software, kein Fernseher, kein Menü und keine Untertitelwiedergabe getestet.

4. Auf dem Zielgerät abspielen und wirklich wiederherstellen

Prüfen Sie die Datei anschließend in dem Player, für den sie bestimmt ist. Springen Sie zu Anfang, Mitte und Ende, wechseln Sie durch benötigte Tonspuren und Untertitel und kontrollieren Sie eine Stelle mit erzwungenen Untertiteln. Protokollieren Sie die tatsächlich geprüften Stellen, statt eine vollständige Sichtung zu behaupten. Für eine Kopie auf USB gelten zusätzlich Dateisystemgrenzen und Kontrollen nach dem Kopieren.

Der Sicherungsablauf ist erst dann getestet, wenn Sie daraus erfolgreich wiederherstellen. Kopieren Sie die Sicherung in einen getrennten temporären Ordner oder auf einen anderen Datenträger. Vergleichen Sie dort den SHA-256-Wert mit dem Bezugswert der Sicherung und wiederholen Sie Inventar, nötigenfalls Volldekodierung und Wiedergabe. So prüfen Sie nicht nur die Datei, sondern auch Pfad, Rechte und Rückweg. Wenn Sie ISO oder BDMV samt Menü erhalten wollen, legen Sie stattdessen mit dem Vergleich von ISO, Ordner und MKV passende Strukturtests fest.

Ein brauchbares Prüfprotokoll enthält Datei-ID, Hash, Soll- und Ist-Laufzeit, benötigte Streams, Befehle, Werkzeugversionen, Exitcodes, Logdatei, geprüftes Abspielgerät und Wiederherstellungsziel. Solange ein Punkt offen ist, bleibt der Status „nicht vollständig geprüft“ und das Original bleibt erhalten. Auch ein vollständiger Durchlauf garantiert weder zukünftige Datenträgerhaltbarkeit noch Kompatibilität mit jedem Gerät.