Comment réparer une vidéo MP4 corrompue ?
Vous le savez, dès que j’ai 5 min, j’essaye de faire quelques petites vidéos sur Youtube. Ça prend quand même un peu de temps et malheureusement, parfois, j’ai le matériel qui foire.
Dernier exemple en date, je faisais un petit screencast (filmer son écran), quand soudain, j’ai un hub USB qui a laché et le disque branché dessus qui me sert à stocker mes vidéos aussi. Le logiciel OBS que j’utilise pour filmer a planté et l’enregistrement vidéo s’est interrompu.
Et c’est ainsi que je me suis retrouvé avec un MP4 corrompu. Impossible de le lire, même dans VLC. J’ai donc étudié le problème et j’ai vu qu’il existait des tonnes de jolis services payants ou de shareware pour réparer des vidéos corrompues. Mais aucun ne m’a convaincu et j’étais à ce moment là persuadé qu’il y avait mieux.
J’ai d’abord tenté le coup avec ffmpeg en utilisant la commande suivante pour réaliser une copie (non corrompue) de ma vidéo corrompue.
ffmpeg -i VideoCorrupted.mp4 -c copy Video.mp4
Mais tout ce que j’ai obtenu c’est l’erreur suivante :
moov atom not found VideoCorrupted.mp4: Invalid data found when processing input
Je ne connaissais pas ce truc, alors j’ai cherché une définition.
Moov Atom contient toutes les informations sur le fichier vidéo lues par les lecteurs vidéo. Les encodeurs vidéo déplacent souvent automatiquement les métadonnées au début des fichiers vidéo pour les rendre accessibles sur le web.
https://www.ezs3.com/public/Checking_Metadata_or_Moov_Atom_Location.cfm
Ce sont donc bien les métadonnées qui ne sont pas présentes mais la vidéo en elle même est bien là. Surtout que mon fichier corrompu pèse plusieurs giga, donc c’était sûr, il y a bien quelque chose dans ce MP4. Il ne restait plus qu’à trouver comment y accéder.
Et j’ai trouvé !!! Il s’agit d’un logiciel qui s’appelle Untrunc qui permet de réparer des MP4, M4V, MOV et 3GP corrompus. Je vais donc vous expliquer comment faire pour réparer un fichier vidéo corrompu.
Alors avant tout faut savoir que untrunc est un logiciel pour Linux. Mais qu’il est possible de le faire tourner dans un Docker, et c’est ce que je vais vous expliquer aujourd’hui comme ça vous aurez une solution universelle qui fonctionnera sur tous les OS capables de faire tourner du Docker.
Et le tout en 3 petites étapes ! Magie magie !
Etape 1 - Télécharger et installer Docker
Rendez-vous ici et téléchargez Docker pour votre système d’exploitation. Ensuite, installez le et lancez le.
Si vous êtes sous Ubuntu, voici la procédure :
sudo apt-get install curl apt-transport-https ca-certificates software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce Et pour vérifier qu'il tourne : sudo systemctl status docker
Etape 2 - Télécharger et installer l’image
Il y a plusieurs images untrunc sur le dépot Docker et j’ai choisi celle de synctree car c’est la plus téléchargée.
Donc pour la récupérer, dans un terminal ou une invite de commande, faites :
docker pull synctree/untrunc
Etape 3 - Lancez la réparation
Il faut savoir que pour réparer le fichier, untrunc a besoin de 2 vidéos. Votre vidéo corrompue bien sûr mais également une vidéo de référence parfaitement lisible, réalisée avec le même outil, dans les mêmes conditions, afin de pouvoir recomposer les méta données corrompues.
Donc toujours dans le terminal, entrez la commande suivante :
docker run -v /repertoire/des/vidéos:/files -it synctree/untrunc /files/VideoOK.mp4 /files/VideoCorrupted.mp4
Pensez à remplacer “/repertoire/des/vidéos” par le chemin d’accès à vos vidéos. “/files” est un genre d’alias qui pointera alors vers “/repertoire/des/vidéos”. C’est pourquoi vous pourrez indiquer le chemin de vos vidéos en utilisant l’alias comme ceci “/files/VideoOK.mp4”. J’espère être le plus clair possible.
Validez et laissez tourner ! Vous devriez voir pleins de choses comme ceci qui défilent :
Ça peut durer plus ou moins longtemps mais au final, vous aurez un fichier du type VideoCorrupted.mp4_fixed.mp4 qui sera créé et votre vidéo sera lisible !
Il est possible que le son soit décalé, c’est quelque chose qui arrive assez souvent. Dans ce cas, pensez bien à le recaler avec votre logiciel d’édition vidéo préféré.
Et pour ceux qui veulent, j’ai même fait un petit tuto vidéo ici.