top of page

Vidéos familiales numérisées corrompues ou illisibles : des solutions existent !

  • Photo du rédacteur: mcrays2
    mcrays2
  • 30 avr.
  • 6 min de lecture

Les vidéos de famille occupent une place essentielle dans la généalogie et la valorisation des archives privées. Elles captent ce que les documents écrits ne peuvent restituer : les voix, les gestes, les visages, l’atmosphère d’un foyer à un moment donné. Ces témoignages vivants constituent une mémoire familiale d’une richesse considérable, souvent unique et non reproductible.


Pourtant, leur conservation sur le long terme soulève des défis croissants. L’évolution technologique rapide des formats vidéo, des codecs et du matériel de lecture rend difficile la pérennité de ces enregistrements. Un fichier produit il y a quinze ou vingt ans dans un format alors courant peut devenir aujourd’hui illisible, faute de compatibilité avec les lecteurs disponibles ou en raison d’une corruption liée au vieillissement des supports.


Nous avons eu à traiter deux cas concrets parmi d'autres illustrant parfaitement ces défis :

  • un fichier MOV corrompu d’une part,

  • des fichiers MPEG Program Stream (.ps) issus d’enregistrements vidéo anciens d’autre part.

    Voici comment nous les avons résolus, étape par étape, en utilisant des outils gratuits et open source.


Si l'idée même de lire ce tuto vous donne des boutons, si vous avez un grand nombre de vidéos à traiter, si vous rencontrez d'autres problèmes que ceux décrits ici, n'hésitez pas prendre contact pour un devis gratuit ! Contact

 

Cas n°1 : un fichier MOV avec moov atom manquant


Le problème : un fichier MOV illisible

Première étape face à un fichier .mov impossible à ouvrir : distinguer un problème de lecteur d’une véritable corruption du fichier.


Choisir le bon lecteur

Le format MOV est un format Apple. Windows ne le lit pas nativement, ce qui explique que le lecteur Windows Media Player soit souvent mis en échec. La solution la plus simple : VLC Media Player (logiciel libre, gratuit), qui lit nativement les fichiers MOV sans codec supplémentaire.

Si VLC ne parvient pas non plus à ouvrir le fichier, c’est que le problème est plus profond : le fichier est probablement corrompu.


Le diagnostic : le moov atom est manquant

Pour tenter une réparation, on se tourne naturellement vers FFmpeg, l’outil de traitement vidéo de référence (open source, gratuit).


La commande de base :

ffmpeg -i fichier_corrompu.mov -c copy fichier_repare.mov


Mais FFmpeg a retourné cette erreur :

moov atom not found

Error opening input: Invalid data found when processing input


Ce message est un diagnostic en soi. Le moov atom est la partie du fichier MOV qui contient toutes les métadonnées essentielles : durée, codec, index des images. Sans lui, aucun lecteur ne peut interpréter le fichier.

Ce type de corruption survient typiquement lorsque l’enregistrement a été interrompu brutalement : batterie à plat, coupure de courant, transfert incomplet. Le fichier est écrit sur le disque, mais l’index final n’a jamais eu le temps d’être inscrit.


La solution : reconstruire le moov atom avec untrunc

L’outil adapté à ce cas précis s’appelle untrunc. Son principe est élégant : il emprunte la structure d’un fichier vidéo sain enregistré avec le même appareil et les mêmes réglages pour reconstruire les métadonnées manquantes du fichier corrompu.


Prérequis indispensable

Disposer d’un fichier MOV valide issu du même appareil photo ou caméra. C’est la clé de voûte de la méthode.


Installation sous Windows

Le projet original untrunc n’existe qu’en version Linux/Mac.

Il existe cependant un build Windows prêt à l’emploi, maintenu par anthwlock, mais il en existe sans doute d'autres.


Windows SmartScreen peut afficher un avertissement au premier lancement. Cliquez sur « Informations complémentaires » puis « Exécuter quand même » — comportement normal pour un exécutable non signé.


Utilisation

Lancez l’interface graphique :

untrunc.exe -gui

Dans la fenêtre qui s’ouvre, sélectionnez votre fichier MOV valide comme référence, puis le fichier corrompu à r

éparer.


Le fichier réparé a été généré avec succès et est à nouveau parfaitement lisible.

 

Cas n°2 : des fichiers .ps avec timestamps corrompus

Le problème : une barre de temps incohérente dans VLC

Les fichiers .ps (MPEG Program Stream) sont typiques des enregistrements effectués sur des magnétoscopes numériques ou des boîtiers TNT des années 2000. Leur structure interne est souvent fragile : pas d’index temporel fiable, timestamps discontinus, paquets corrompus.

Dans notre cas, VLC parvenait à lire les fichiers, mais :

  • la barre de progression était totalement fausse : durée affichée de 7 heures au lieu d’une heure, impossibilité de naviguer dans la vidéo.

  • Le son et l’image étaient également désynchronisés d’environ 1,5 seconde.


Le diagnostic : ce que le log FFmpeg révèle

L’analyse du fichier par FFmpeg a immédiatement révélé plusieurs problèmes cumulés :

  • Un timestamp de départ à 28 541 secondes (soit ~7h54) : typique d’une capture TNT qui encode l’heure réelle de diffusion.

  • Une discontinuité massive en cours de fichier (DTS passant de 309 600 à 2 569 127 689).

  • Des paquets audio AAC corrompus provoquant une erreur dès 9 minutes sur 1 heure de vidéo.

  • Des timestamps audio non monotones (qui reculent) causant un décalage son/image.


La méthode de résolution : quatre niveaux d’intervention


Niveau 1 — Simple remballage (insuffisant ici)

La première tentative, la plus rapide, consiste à changer de conteneur sans réencoder :


ffmpeg -i fichier.ps -c copy fichier.mkv


Insuffisant : les paquets AAC corrompus ont causé une erreur dès 9 minutes, interrompant la conversion.


Niveau 2 — Ignorer les erreurs et réencoder l’audio

On ajoute des drapeaux de tolérance aux erreurs et on réencode l’audio au lieu de le copier :

ffmpeg -fflags +genpts+discardcorrupt -err_detect ignore_err -i fichier.ps -c:v copy -c:a aac -b:a 128k -af "aresample=async=1" fichier_v2.mkv

Résultat : la conversion aboutit jusqu’au bout, mais la durée affichée dans VLC reste de 7h55 — le timestamp initial à 28 541 secondes n’a pas été corrigé.


Niveau 3 — Rééencoder la vidéo avec reconstruction complète des timestamps

C’est la solution qui a finalement fonctionné pour la barre de temps. On réencode également la vidéo, ce qui permet de reconstruire entièrement les timestamps :


ffmpeg -fflags +genpts+discardcorrupt+igndts -err_detect ignore_err -i fichier.ps -vf "setpts=PTS-STARTPTS" -c:v libx264 -preset veryfast -crf 23 -c:a aac -b:a 128k -af "aresample=async=1000,asetpts=PTS-STARTPTS" -avoid_negative_ts make_zero fichier_final.mkv


Les options clés :

  • +igndts : ignore complètement les DTS source et se base sur les PTS.

  • setpts=PTS-STARTPTS : repart de zéro pour les timestamps vidéo.

  • asetpts=PTS-STARTPTS : idem pour l’audio.

  • aresample=async=1000 : resynchronisation audio agressive.

La barre de temps de VLC est désormais correcte. Reste le décalage son/image.


Niveau 4 — Corriger le décalage audio

Le son étant en retard constant d’environ 1,5 seconde sur l’image, une méthode simple permet de mesurer précisément ce décalage :

  • ouvrir le fichier dans VLC et utiliser Outils → Piste Synchronisation (touches J et K) pour ajuster en temps réel jusqu’à obtenir la synchronisation parfaite. VLC affiche la valeur exacte en millisecondes.

Une fois la valeur confirmée (1,5 s dans notre cas), on applique la correction en retardant le flux vidéo à l’entrée, sur le fichier déjà converti :


ffmpeg -itsoffset 1.5 -i fichier_converti.mkv -i fichier_converti.mkv -map 0:v -map 1:a -c:v copy -c:a copy fichier_final_sync.mkv


Cette commande lit le fichier deux fois : elle prend la vidéo du premier flux (décalée de 1,5 s) et l’audio du second (intact), sans aucun réencodage. Le résultat est immédiat et la vidéo est parfaitement synchronisée.


Cas n°3 dérivé du cas n°2 (sur un autre fichier) : flux audio non reconnu

Sur un second fichier .ps, FFmpeg n’a pas réussi à détecter le flux audio (0 channels), produisant un fichier muet. Le log affichait :


Could not find codec parameters for stream 0 (Audio: aac, 0 channels)

Consider increasing the value for the 'analyzeduration' and 'probesize' options


La solution : forcer FFmpeg à analyser davantage de données avant de commencer la conversion, en augmentant les seuils d’analyse :


ffmpeg -analyzeduration 100M -probesize 100M -fflags +genpts+discardcorrupt+igndts ...

 

Récapitulatif des méthodes

Symptôme

Cause probable

Solution

Le fichier ne s’ouvre pas dans Windows Media Player

Format MOV non supporté nativement sous Windows

Installer VLC

VLC ne lit pas le fichier

Fichier corrompu

Tenter FFmpeg

FFmpeg retourne « moov atom not found »

Index vidéo absent (enregistrement interrompu)

Utiliser untrunc

Barre de temps incohérente (durée erronée)

Timestamps corrompus ou offset TNT

FFmpeg avec setpts + avoid_negative_ts

La conversion s’arrête en cours de fichier

Paquets audio AAC corrompus

FFmpeg avec discardcorrupt + réencodage audio

Fichier converti muet

Flux audio non détecté au début du fichier

Ajouter -analyzeduration 100M -probesize 100M

Décalage son/image constant

Offset fixe entre flux audio et vidéo

Mesurer avec VLC (J/K), corriger avec -itsoffset

 

Outils utilisés

 


En conclusion


Souriez ! Un fichier vidéo ancien ou corrompu n’est pas forcément perdu. Les outils open source disponibles permettent, avec méthode et patience, de récupérer la quasi-totalité de ces enregistrements.


Rendre accessibles ces témoignages vivants aux générations futures, c'est un des aspects de la valorisation d'archives privées et c'est l'une des missions de Nostalys !

Alors, n'hésitez pas prendre contact avec moi pour un devis gratuit ! Contact

Commentaires


bottom of page