Guides

OBS a planté en plein enregistrement : récupérer le MP4

Vous avez enregistré pendant deux heures, OBS a planté, et le MP4 qu'il a laissé derrière lui ne s'ouvre nulle part. Les forums vous diront que c'est fichu. C'est vrai pour une définition très étroite de « réparer », et faux pour une autre — et toute la partie se joue dans cette différence. Vos séquences sont presque certainement encore sur le disque. Ce que le plantage a emporté, c'est l'index qui les rend lisibles.

Pourquoi le plantage vous laisse un fichier illisible

Un MP4, c'est deux choses dans un même fichier : les séquences, un long bloc de vidéo et d'audio compressés, et l'index, une petite table qui indique au lecteur où se trouve chaque image et comment l'audio s'aligne. Pendant qu'OBS enregistre, il écrit les séquences sur le disque en continu. Il ne peut pas encore écrire l'index, car l'index enregistre des tailles et des décalages finaux qui ne sont connus qu'une fois l'enregistrement terminé. OBS écrit donc l'index en dernier, à l'instant où vous cliquez sur arrêt.

Un plantage n'atteint jamais cet instant. Le processus meurt avec les séquences déjà sur le disque et l'index jamais écrit. En termes de MP4, le fichier possède son en-tête ftyp et son bloc mdat de médias, et il lui manque l'atome moov qui les indexe — c'est pourquoi tous les lecteurs le refusent et ffmpeg dit moov atom not found. Des heures de séquences peuvent se trouver dans un fichier qui paraît, pour n'importe quel lecteur normal, complètement vide. Pour l'anatomie complète de cet index et pourquoi il vit à la fin, voyez l'atome moov du MP4 expliqué, et pour l'erreur exacte et ses causes, « moov atom not found ».

Un plantage d'OBS, dessiné : l'enregistrement a atteint le disque, mais l'index qu'OBS écrit à l'arrêt n'a jamais été écrit.

Est-ce vraiment fichu ? Oui et non

Cherchez ce problème et vous trouverez fil de forum après fil de forum, beaucoup avec un contributeur d'OBS affirmant qu'un MP4 non finalisé est essentiellement fichu. Ils n'ont pas tort, et il vaut la peine de comprendre exactement ce qu'ils veulent dire, car c'est une affirmation précise, pas un haussement d'épaules.

Ce qu'ils veulent dire, c'est que vous ne pouvez pas remuxerle fichier. Le remuxage copie les flux dans un conteneur propre, et c'est la façon normale de sauver un MP4 capricieux. Mais le remux doit lire l'index existant pour savoir où sont les flux, et un fichier non finalisé n'a aucun index à lire. Le remux échoue donc sur-le-champ, et avec lui échouent toutes les astuces ffmpeg -c copy et faststart bâties sur le remuxage. Face à cette définition de « réparer », le fichier est vraiment fichu.

La moitié qu'ils laissent de côté, c'est que le remuxage n'est pas la seule option. La reconstruction de l'index est une opération différente : au lieu de lire un index qui n'est pas là, elle analyse directement les séquences à la recherche des limites d'images et reconstruit l'index à partir de ce qu'elle mesure. C'est la catégorie de réparation qu'effectuent des outils en ligne de commande comme untrunc, et c'est ce qui récupère un enregistrement que les forums avaient enterré. Les séquences n'ont jamais été le problème ; l'index manquant l'était, et un index, ça se reconstruit.

L'approche par enregistrement de référence

Reconstruire l'index, c'est reconstituer la structure du fichier à partir des séquences elles-mêmes, et la façon la plus fiable d'y parvenir passe par unenregistrement de référence : un clip sain, arrêté normalement, réalisé dans OBS avec les mêmes réglages, le même encodeur, la même résolution, la même fréquence d'images et le même conteneur. Ce fichier sain porte un index complet et valide pour exactement le format qu'utilisait votre enregistrement cassé, ce qui donne à la reconstruction un modèle qui s'ajuste à vos séquences survivantes.

En produire un prend moins d'une minute : ouvrez OBS avec le même profil sous lequel vous enregistriez, capturez quelques secondes, et arrêtez normalement pour que le fichier se finalise. La reconstruction lit cette référence pour interpréter vos données, puis écrit un fichier lisible par-dessus les séquences qui ont survécu.

Maintenant les limites honnêtes, dites clairement. Les dernières secondes avant le plantage étaient encore en mémoire et n'ont jamais atteint le disque : elles sont perdues ; la reconstruction rend tout jusqu'à ce point. Un enregistrement réalisé avec un débit fortement variable peut revenir avec un léger décalage entre l'audio et la vidéo. La référence doit vraiment correspondre, car un clip fait avec d'autres réglages donne un modèle qui ne s'aligne pas. Et si le fichier affiche 0 octet ou n'est qu'une infime fraction de sa taille attendue, il n'y a aucune séquence dedans à reconstruire — c'est un problème de stockage ou de récupération de données, pas de réparation. Ce qu'une reconstruction rend, c'est votre véritable enregistrement, indexé et lisible, jamais des images inventées.

L'éviter la prochaine fois : comment OBS est censé enregistrer

Tout ce mode de défaillance est évitable, et le projet OBS a construit les outils pour l'éviter. Trois réglages, par ordre d'utilité :

Enregistrez en MKV, puis remuxez en MP4

Le conseil de toujours, et encore le plus sûr : réglez OBS pour enregistrer en MKV. Le MKV est écrit de sorte qu'un enregistrement reste utilisable même si OBS s'arrête de façon inattendue, car il ne repose pas sur un unique index écrit à la fin. Quand votre session se termine proprement, utilisez le remux intégré d'OBS pour convertir le MKV en MP4 sans perte, sans réencodage, en quelques secondes. Vous pouvez même faire en sorte qu'OBS remuxe en MP4 automatiquement après chaque enregistrement.

Utilisez le Hybrid MP4 sur OBS 30.2 et versions ultérieures

Si vous avez besoin de MP4 directement, peut-être pour un logiciel de montage qui n'aime pas le MKV, activez le Hybrid MP4, ajouté dans OBS 30.2. Il écrit le MP4 dans une structure fragmentée et résistante aux plantages : un enregistrement interrompu reste largement utilisable au lieu de rester échoué sans index. C'est ce que le MP4 offre de plus proche de la sécurité du MKV.

Comprenez l'astuce du MP4 fragmenté

Le Hybrid MP4 fonctionne grâce au MP4 fragmenté, une structure qui écrit de petits fragments d'index autonomes tout au long du fichier plutôt qu'un seul index à la fin. Si vous configurez à la main une sortie personnalisée, le réglage du muxer est movflags=frag_keyframe+empty_moov, qui produit le même comportement résistant aux plantages. C'est le mécanisme sous le bouton convivial.

FAQ

Puis-je récupérer un enregistrement OBS après un plantage ?

Souvent oui, si OBS enregistrait en MP4 ou MOV et que le fichier a une taille saine. OBS écrit les séquences sur le disque en continu pendant l'enregistrement et n'écrit l'index qui relie le tout qu'au moment où vous appuyez sur arrêt. Un plantage saute cette étape : les séquences sont sur le disque, sans index, et ne se lisent pas. Reconstruire l'index rend l'enregistrement à nouveau lisible, moins les dernières secondes qui étaient encore en mémoire quand OBS est mort. Un fichier de 0 octet est un autre problème, sans aucune séquence à partir de laquelle reconstruire.

Pourquoi mon MP4 d'OBS est-il illisible après le plantage d'OBS ?

Parce que le MP4 n'a jamais été finalisé. L'index dont un lecteur a besoin, l'atome moov, s'écrit au moment où vous arrêtez l'enregistrement, une fois les tailles finales connues. Un plantage coupe le courant au processus avant cette écriture : le fichier contient toutes ses séquences, mais rien de l'indexation qui pointe vers elles. Les lecteurs et ffmpeg le signalent par « moov atom not found ». Les séquences ont survécu ; la carte, non.

Faut-il enregistrer en MKV ou en MP4 dans OBS ?

Enregistrez en MKV si la résistance aux plantages compte — et pour les longues sessions, elle compte. Le MKV est écrit de sorte qu'un enregistrement reste utilisable même si OBS s'arrête de façon inattendue, car il ne dépend pas d'un unique index écrit à la fin. Une fois terminé, remuxez le MKV en MP4 sans perte depuis OBS, en quelques secondes, sans réencodage. Si vous devez absolument enregistrer directement en MP4, utilisez l'option Hybrid MP4 d'OBS 30.2 et versions ultérieures, qui conserve une structure résistante aux plantages.

Puis-je remuxer un MP4 d'OBS corrompu pour le réparer ?

Non, et c'est le malentendu qui se cache derrière la plupart des conseils du genre « c'est fichu ». Le remuxage copie les flux dans un conteneur neuf, mais pour cela il doit d'abord lire l'index existant, et un MP4 non finalisé n'a aucun index à lire. Le remux échoue instantanément sur ces fichiers. C'est une vraie limite du remuxage, pas une preuve que les séquences ont disparu. Reconstruire l'index, une opération différente, est ce qui récupère réellement un enregistrement non finalisé.

Qu'est-ce que le Hybrid MP4 dans OBS ?

Le Hybrid MP4 est une option d'enregistrement ajoutée dans OBS 30.2 qui écrit le MP4 de façon fragmentée et résistante aux plantages : un enregistrement interrompu par un plantage reste largement utilisable au lieu de rester échoué sans index. Il vous offre le confort d'un MP4 que la plupart des logiciels de montage acceptent directement, avec une bonne part de la sécurité qui avait fait du MKV le conseil standard pour enregistrer avec OBS.

L'index manquant au cœur de tout cela, en détail : l'anatomie du MP4 et l'atome moov.