Ce qu'une coupure de courant fait vraiment au fichier
Les caméras d'action et les drones enregistrent dans un conteneur MP4 ou MOV, et ce conteneur a une particularité précise et impitoyable. Pendant que vous enregistrez, la caméra déverse la vidéo et l'audio compressés sur la carte comme un seul bloc qui grandit. Elle n'écrit pas encore l'index : la table qui indique à un lecteur où commence chaque image, combien de temps elle dure et comment l'audio s'aligne. La caméra ne peut écrire cet index qu'une fois l'enregistrement terminé, car jusque-là elle ne connaît pas les tailles finales. L'index est donc écrit en dernier, au moment où vous appuyez sur stop.
Coupez le courant avant cet instant et il vous reste un fichier avec un début valide et toutes vos séquences, mais sans index. En termes de MP4, le fichier a son en-tête ftyp et son bloc mdat de données média, et il lui manque l'atome moov qui les indexe. Un lecteur l'ouvre, ne trouve aucun index et le rejette. Des outils comme ffmpeg le signalent sans détour par moov atom not found. C'est la façon la plus courante dont les séquences en vol ou en pleine capture se cassent, et — c'est important — la plus récupérable, car les données ont survécu et seul le plan qui les répertorie a disparu.
Coupure de courant en pleine capture, illustrée : les séquences ont atteint la carte, mais l'index que la caméra écrit à l'arrêt n'a jamais été écrit.
Pour une visite au niveau de l'octet de cet index absent et pour savoir pourquoi il se trouve à la fin du fichier, voyez ce que signifie « moov atom not found ».
Essayez d'abord la réparation intégrée de la caméra
Si vous filmez en GoPro, le premier geste est gratuit et officiel, et la plupart des guides de réparation le passent sous silence parce qu'il ne vend rien. Quand une GoPro trouve un clip non finalisé, généralement après une batterie à plat ou une carte retirée trop tôt, elle propose de réparer le fichier elle-même au prochain allumage. Selon le modèle, vous verrez une icône de réparation ou les mots REPAIRING FILE à l'écran. Appuyez sur n'importe quel bouton pour la laisser faire. Si ça marche, vous obtenez un clip lisible directement en sortie de caméra, sans aucun logiciel.
Deux limites honnêtes de la réparation intégrée, toutes deux voulues. Elle ne corrige que les fichiers tronqués, exactement le cas de la coupure de courant ci-dessus ; elle ne peut rien faire face à une carte qui tombe physiquement en panne. Et elle ne fonctionne que sur les fichiers enregistrés par ce même modèle de caméra, car elle s'appuie sur la connaissance qu'a la caméra de son propre format d'enregistrement. Si la réparation tourne en boucle ou se bloque, éteignez la caméra, réinsérez la batterie et la carte SD, et accordez-lui une tentative de plus avant de continuer. Les appareils DJI, autant le dire clairement, n'ont pas de réparation intégrée équivalente : les séquences de drone passent donc directement à l'approche logicielle ci-dessous.
Quand la réparation intégrée échoue
La réparation intégrée de la caméra est une bonne première passe, mais elle abandonne facilement, et il y a des situations courantes qu'elle ne touche pas :
- Courant perdu en pleine écriture. Une coupure brutale, une batterie arrachée en pleine charge, ou un drone qui a perdu le courant en l'air peuvent laisser le fichier dans un état que la caméra refuse de réparer.
- La carte a été retirée trop tôt. Sortir la carte avant que la caméra ait fini de vider ses données laisse un fichier tronqué que la caméra peut ne pas reconnaître au démarrage suivant.
- La carte s'est remplie en pleine capture. Manquer d'espace pendant un clip est une autre façon de laisser en plan un fichier non finalisé.
- La réparation tourne simplement en boucle. Après une réinsertion, si elle ne se termine toujours pas, la caméra a fait ce qu'elle pouvait.
Dans chacun de ces cas, le fichier sous-jacent est le même : séquences présentes, index absent. C'est un travail pour une reconstruction logicielle de l'index, sur une copie du fichier, afin que l'original sur la carte reste intact.
L'approche du clip de référence
Reconstruire un index absent, c'est déduire la structure des séquences à partir des séquences elles-mêmes, et la manière la plus fiable de le faire passe par un clip de référence : un enregistrement sain, finalisé normalement, de la même caméra avec les mêmes réglages. Le clip sain porte un index complet et valide pour exactement la résolution, la fréquence d'images, le codec et le profil de débit qu'utilisait votre fichier cassé. Cela donne à la reconstruction un gabarit qui correspond, si bien qu'elle peut reconstruire l'index absent par-dessus vos séquences survivantes et écrire un fichier lisible.
C'est la même classe de reconstruction que réalisent des outils en ligne de commande comme untrunc, et c'est la raison pour laquelle le clip de référence compte autant : ce n'est pas un ornement, c'est le plan que la reconstruction lit pour interpréter vos données. Procurez-vous-en un en filmant quelques secondes de séquences jetables sur la même caméra avec les mêmes réglages, puis en arrêtant l'enregistrement normalement pour qu'il se finalise.
Les limites honnêtes méritent d'être dites d'emblée. Les dernières secondes avant la coupure étaient encore dans le tampon mémoire de la caméra et n'ont jamais atteint la carte : elles sont perdues ; la reconstruction rend tout ce qui précède ce point. Des séquences enregistrées à débit très variable peuvent revenir avec un léger décalage audio et vidéo. Et la référence doit vraiment correspondre : un clip à une autre résolution ou d'une autre caméra ne s'alignera pas. Ce que vous récupérez, ce sont vos vraies séquences, reconstruites autour d'un index valide, pas des images inventées.
Quand c'est un fichier de 0 octet : récupération, pas réparation
Il existe un cas où rien de ce qui précède ne s'applique. Si le clip affiche 0 octet, ou ne fait qu'une fraction minuscule de la taille qu'il devrait avoir, ou s'ouvre comme une suite ininterrompue de zéros, alors les séquences n'ont jamais atteint la carte. Ce n'est pas un index cassé par-dessus de bonnes données ; c'est une absence de données. Aucun outil de réparation ne peut reconstruire un fichier à partir de rien, et tout outil qui prétend le faire vous vend un résultat d'analyse.
Un clip de 0 octet signifie que la carte est tombée en panne en pleine écriture, ou que le système de fichiers a perdu la trace de l'endroit où sont allées les données. Le bon premier pas est la récupération : un logiciel de récupération de carte fouille le stockage brut à la recherche des séquences que le système de fichiers ne pointe plus. S'il trouve quelque chose, vous avez alors un fichier à réparer. Récupération et réparation sont deux tâches distinctes menées dans cet ordre, et la façon la plus sûre de se prémunir contre le besoin de l'une ou l'autre tient à quelques bonnes habitudes fiables avec la carte, abordées dans comment éviter de corrompre des fichiers sur les cartes SD.
FAQ
Puis-je récupérer des séquences GoPro après une batterie morte en plein clip ?
En général oui, si le fichier a une taille correcte. Une caméra d'action écrit les séquences sur la carte en continu pendant l'enregistrement et n'écrit l'index qui relie le tout qu'au moment où vous appuyez sur stop. Une batterie à plat saute l'arrêt : les séquences sont donc sur la carte, mais sans index, et rien ne se lit. Reconstruire cet index rend le clip de nouveau lisible, moins les dernières secondes qui étaient encore dans le tampon mémoire de la caméra au moment de la coupure. Un fichier qui affiche 0 octet est un problème différent, et plus difficile.
Que signifie l'icône SOS ou de réparation de fichier de GoPro ?
Cela signifie que la caméra a repéré un clip qui n'a pas été finalisé, généralement après une coupure de courant ou une carte retirée trop tôt, et qu'elle propose de le réparer. Les modèles récents affichent une icône de réparation ou les mots « REPAIRING FILE » ; appuyez sur n'importe quel bouton pour la laisser faire. Elle ne corrige que les fichiers tronqués, et ne fonctionne que sur les fichiers enregistrés par ce même modèle de caméra. Si elle réussit, vous obtenez un clip lisible. Si elle tourne en boucle ou échoue, éteignez la caméra, réinsérez la batterie et la carte SD, et réessayez une fois avant de passer à une réparation logicielle.
Pourquoi ma vidéo DJI ne se lit-elle pas après le crash du drone ?
Pour la même raison qu'un clip GoPro ne se lit pas après une batterie à plat : le crash ou l'atterrissage forcé a coupé le courant avant que l'enregistrement soit finalisé, si bien que l'index n'a jamais été écrit sur la carte. Les séquences compressées sont présentes mais non indexées. Les appareils DJI n'ont pas de réparation intégrée fiable équivalente à celle de GoPro : la voie est donc une reconstruction logicielle de l'index, idéalement en utilisant comme référence un clip sain issu du même drone et des mêmes réglages.
Mon fichier GoPro ou DJI fait 0 octet — peut-on le réparer ?
Non, car il n'y a rien à réparer dedans. Un fichier de 0 octet signifie que la carte a enregistré une entrée de répertoire mais qu'aucune donnée n'a jamais atterri derrière, ce qui pointe généralement vers une carte tombée en panne en pleine écriture ou un problème de système de fichiers. C'est un travail de récupération, pas de réparation : le logiciel de récupération de carte doit d'abord fouiller le stockage brut à la recherche des séquences, et ce n'est que s'il trouve quelque chose qu'il y a ensuite un fichier à reconstruire.
Le clip de référence doit-il avoir les mêmes réglages ?
Oui, le plus proche possible. Le clip de référence fournit le gabarit structurel qui manque au fichier endommagé : résolution, fréquence d'images, codec et profil de débit. Un clip de la même caméra avec les mêmes réglages donne un gabarit qui convient. Un clip à une autre résolution ou fréquence d'images, ou d'une autre caméra, donne un gabarit qui ne convient pas, et le forcer produit un fichier qui se lit mal ou pas du tout.
La même histoire d'index absent, un autre appareil : réparer une vidéo de drone DJI corrompue.