Guide de décision pour la copie Blu-ray

Vérifier une sauvegarde Blu-ray : empreinte, décodage complet et restauration

Une méthode pour contrôler un fichier MKV ou MP4 avec SHA-256, ffprobe, un décodage FFmpeg complet, la lecture cible et un essai de restauration.

Une sauvegarde fiable ne se résume pas à une empreinte identique. SHA-256 compare les octets ; ffprobe inventorie les flux ; un décodage complet cherche les erreurs audio et vidéo jusqu’à la fin ; lecture et restauration vérifient l’usage réel.

La méthode ci-dessous concerne les fichiers MKV ou MP4 déjà lisibles, créés à partir de médias personnels ou autorisés. Elle ne contourne aucune protection, ne répare aucun fichier et ne valide ni image ISO, ni arborescence BDMV, ni menu Blu-ray. Même une série de contrôles réussis n’autorise pas à supprimer automatiquement l’unique original.

Décrire le résultat attendu avant de lancer un outil

Consignez le chemin absolu, la taille en octets, le titre principal, la durée attendue, les pistes indispensables, la date du contrôle et les versions des outils. Indiquez aussi si la source est déjà validée ou de qualité inconnue.

Un fichier d’origine incertaine ne devient pas un « master » parce qu’il a été copié. Remux et transcodage modifient volontairement les octets : une empreinte différente de la source ne prouve alors aucune corruption. Créez une nouvelle référence après acceptation. Le guide d’archivage des médias personnels distingue original, travail et consultation.

1. Comparer les octets avec SHA-256

Dans PowerShell, calculez SHA-256 sur la source et sur sa copie à l’identique. Remplacez les chemins d’exemple.

Get-FileHash -LiteralPath 'D:\Archives\film.mkv' -Algorithm SHA256
Get-FileHash -LiteralPath 'E:\Sauvegarde\film.mkv' -Algorithm SHA256

La documentation Microsoft de Get-FileHash précise que l’empreinte vient du contenu. Pour une copie inchangée, deux valeurs SHA-256 identiques montrent que les deux fichiers contiennent les mêmes octets. La Library of Congress présente aussi la fixité comme une comparaison à une référence connue.

Cette égalité ne juge pas la vidéo. Si la source était déjà endommagée, sa copie fidèle reproduit le même défaut et la même empreinte. Si les valeurs diffèrent lors d’une copie 1:1, refusez cette copie, gardez la source et examinez le transfert, le chemin sélectionné et le support cible.

2. Inventorier le conteneur et les pistes avec ffprobe

Enregistrez ensuite les informations de format et de flux dans un fichier JSON.

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

Selon la documentation de ffprobe, -show_format affiche les informations du conteneur et -show_streams celles de chaque flux détecté. Comparez la durée annoncée à votre valeur attendue. Vérifiez l’image, les langues audio, les sous-titres et les sous-titres forcés à partir d’une liste préparée ; notre méthode de conservation des pistes détaille cette étape.

Le fait que ffprobe produise du JSON ne signifie pas que tout le fichier a été décodé. Si une piste attendue manque dans l’inventaire, le contrôle suivant ne doit pas transformer cette absence en réussite silencieuse.

3. Décoder toute la vidéo et tout l’audio

FFmpeg et ffprobe doivent déjà être accessibles dans PATH. La commande suivante sélectionne explicitement les flux vidéo et audio et jette le résultat décodé au lieu de créer un nouveau fichier.

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

Dans la documentation officielle de FFmpeg, -map sert à choisir les flux. Le ? évite uniquement l’erreur « aucune correspondance » lorsqu’un type de flux est absent. Il ne rend pas facultative une piste que vous attendiez : comparez toujours le résultat à l’inventaire ffprobe. -xerror arrête le traitement lorsqu’une erreur est signalée et le muxer null évite d’écrire les images et les échantillons décodés.

Avec -v error, le journal conserve les messages de niveau error et supérieur, pas tous les warnings. N’ajoutez pas -c copy, car le streamcopy transfère les paquets sans les décoder. Une limite telle que -t 60 ne contrôle que le début. La formulation correcte après une exécution normale, sans limite et arrivée à la fin, est : « Cette version de FFmpeg n’a signalé aucune erreur dans les flux audio et vidéo sélectionnés pendant ce passage. »

Une limite subsiste : un fichier valide mais tronqué proprement peut se terminer sans erreur. Comparez les durées attendue et détectée et vérifiez la fin. Un code de sortie 1 ne prouve pas non plus à lui seul une corruption : décodeur indisponible, chemin erroné ou faute de commande peuvent produire un échec. Cette commande ne décode ni les sous-titres, ni les pièces jointes, ni les menus Blu-ray.

Ce que montre notre essai synthétique

Nous avons utilisé le build FFmpeg/ffprobe déjà présent, N-100410-gcd821c18dc, sans le présenter comme une version récente. Le fichier d’essai était un MKV synthétique de trois secondes contenant une vidéo H.264 et un son AAC. Nous avons ensuite remplacé de manière contrôlée la longueur NAL du premier paquet vidéo généré.

Fichier ffprobe décodage complet comparaison SHA-256
MKV synthétique sain deux flux, sortie 0 sortie 0 identique à sa copie saine
MKV volontairement endommagé toujours deux flux, sortie 0 sortie 1 identique à sa copie endommagée

Dans ce cas précis, les métadonnées restaient donc lisibles alors que le décodage échouait. L’empreinte de la copie endommagée correspondait bien à celle du fichier endommagé. L’expérience ne mesure aucun taux général de détection. Nous n’avons testé ni disque, ni lecteur optique, ni logiciel de sauvegarde commercial, ni téléviseur, ni lecture des sous-titres ou des menus.

4. Lire sur la cible, puis restaurer ailleurs

Ouvrez le fichier dans le lecteur réellement prévu. Allez au début, au milieu et à la fin ; changez de piste audio et de sous-titre ; contrôlez une scène où les sous-titres forcés sont nécessaires. Notez exactement les appareils et passages observés, sans prétendre avoir visionné toute l’œuvre. Pour une clé USB, ajoutez les limites FAT32 et les vérifications après copie.

Testez ensuite le chemin retour. Restaurez la sauvegarde vers un dossier temporaire indépendant ou un autre support. Comparez le SHA-256 du fichier restauré à la référence de la sauvegarde, puis répétez l’inventaire et, si nécessaire, le décodage et la lecture. Cette opération vérifie aussi les droits, les chemins et le support de stockage. Si votre objectif est de préserver ISO, BDMV et menu, définissez d’autres critères à partir du choix entre ISO, dossier et MKV.

Le compte rendu réunit identifiant, empreinte, durées, pistes obligatoires, commandes, versions, codes de sortie, journal, appareil et destination restaurée. Tant qu’un élément manque, marquez le contrôle comme incomplet et gardez l’original ainsi qu’une autre copie. Même après réussite, durée de vie du support et compatibilité universelle restent inconnues.