Il m'est arrivé plusieurs fois que je puisse me retrouver dans des fichiers vidéo corrompus:
- vidéo téléchargée à partir de sources officielles mais avec torrent et pour une raison quelconque, toutes les pièces ne sont pas en .mkv, .ts ou .mp4
- enregistre au format .ts où à un certain point les données sont manquantes
- vidéos copiées d'un vieux disque dur avec des secteurs endommagés
Lorsque je joue ces vidéos avec VLC ou d'autres joueurs, ils jouent jusqu'à un certain point, puis se quittent instantanément. Parfois, je peux essayer de sauter la mauvaise partie, mais je pourrais rencontrer un autre secteur défectueux et recommencer instantanément.
La question est:
Puis-je résoudre ces problèmes (je suppose que le flux et les images clés sont liés) avec ffmpeg et peut-être en mode -c afin de ne pas tout recompresser?
Ce que je veux réaliser, c'est une vidéo pleine longueur où les parties manquantes sont sautées, je préfère un problème plutôt que de faire planter mes vidéos.
Réponses:
Si des parties du fichier résident sur des secteurs physiquement défectueux, ou pour une raison quelconque, le système d'exploitation ne peut pas servir l'intégralité du fichier à FFmpeg, alors naturellement FFmpeg ne peut rien faire à ce sujet. Vous devriez obtenir un utilitaire qui peut ignorer ces portions et écrire les parties récupérables dans un nouveau fichier, comme ddrescue .
Maintenant, si le protocole de fichier n'est pas la cause d'erreurs, vous pouvez essayer
la source
-c copy
. Étonnant que cela ne fonctionne pas pendant le recodage.Invalid data found when processing input
- et ffmpeg abandonne.Dans la recherche d'une meilleure réponse, une voie possible pourrait être:
Cependant, je suis presque sûr qu'il existe des options supplémentaires qui peuvent rendre le résultat encore meilleur.
la source