Comment réparer l'erreur 'Past Duration Too Large' dans FFmpeg?

FFmpeg est un programme libre et gratuit à utiliser qui sert à gérer les flux vidéo, audio et autres flux multimédia. Le programme a été conçu pour gérer le traitement des fichiers vidéo et audio à l’aide d’une ligne de commande. Cependant, très récemment, de nombreux rapports signalant une erreur « Durée antérieure trop longue » lors de l'encodage ou de la réduction de la taille d' une vidéo.

Logo FFmpeg

Quelles sont les causes de l'erreur «Durée passée trop longue» dans FFmpeg?

Après avoir reçu de nombreux rapports de plusieurs utilisateurs, nous avons décidé d’enquêter sur le problème et de mettre au point un ensemble de solutions pour le résoudre complètement. Nous avons également examiné les raisons pour lesquelles cette erreur est déclenchée et les avons répertoriées comme suit:

  • Framerate d'entrée manquant: dans la plupart des cas, le problème est dû au fait que le framerate d'entrée n'a pas été entré pour les images. Cela a pour conséquence que le programme suppose que le nombre d'images par seconde en entrée est de 25 images par seconde, ce qui peut poser problème si ce n'est pas le cas.
  • Paramètres de synchronisation non implémentés: avec la plupart des utilisateurs, l'implémentation de certains paramètres de synchronisation a résolu le problème. Parfois, les images risquent de ne pas être correctement synchronisées car certaines images risquent d'être supprimées et cette erreur peut être déclenchée.

Maintenant que vous avez une compréhension de base de la nature du problème, nous allons avancer vers les solutions. Assurez-vous de les mettre en œuvre dans l'ordre spécifique dans lequel elles sont présentées pour éviter les conflits.

Solution 1: Ajouter des cadres d'entrée

Si le framerate d'entrée de la vidéo n'a pas été ajouté, cela pourrait entraîner la suppression de certaines images et le déclenchement de l'erreur. Par conséquent, dans cette étape, nous allons ajouter les images en entrée pour cela:

  1. Observez la convocation que vous avez utilisée pour convertir la vidéo. Elle pourrait ressembler à la suivante:
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Maintenant, ajoutez simplement le framerate à la convocation utilisée comme suit
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  3. Vérifiez si le problème persiste.

Solution 2: Utilisation des drapeaux de synchronisation

L'ajout des drapeaux de synchronisation peut aider à synchroniser la sortie et la vidéo d'entrée en fonction du format d'image initial de la vidéo. Par conséquent, si les commandes de synchronisation n'ont pas été ajoutées, il est possible que les images ne soient pas synchronisées correctement. Dans cette étape, nous allons ajouter les commandes de synchronisation

  1. A ce stade, vous devez probablement utiliser la convocation suivante
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  2. Cependant, au lieu de cela, utilisez la convocation suivante
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1 
  3. Notez que nous venons d'ajouter « -async 1 -vsync1 » à la convocation et que vous devez l'ajouter à la fin de la convocation que vous utilisez.

    Remarque: votre convocation initiale peut différer de celle utilisée à titre d'exemple. Les modifications apportées à la convocation ne devraient toutefois pas différer.

Des Articles Intéressants