Wie kann der Fehler 'Vergangene Dauer zu groß' in FFmpeg behoben werden?



Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen

FFmpeg ist ein kostenloses Open-Source-Programm, das für die Verarbeitung von Video-, Audio- und anderen Multimedia-Streams verwendet wird. Das Programm wurde für die befehlszeilenbasierte Verarbeitung von Video- und Audiodateien entwickelt. In jüngster Zeit sind jedoch viele Berichte über „ Vergangene Dauer zu groß Fehler beim Codieren oder Verkleinern eines Videos.



FFmpeg Logo



Was verursacht den Fehler 'Vergangene Dauer zu groß' in FFmpeg?

Nachdem wir zahlreiche Berichte von mehreren Benutzern erhalten hatten, beschlossen wir, das Problem zu untersuchen, und entwickelten eine Reihe von Lösungen, um es vollständig zu beheben. Außerdem haben wir die Gründe untersucht, aus denen dieser Fehler ausgelöst wird, und sie wie folgt aufgelistet:



  • Eingabe-Framerate fehlt: In den meisten Fällen wird das Problem dadurch verursacht, dass die Eingabe-Framerate für die Bilder nicht eingegeben wird. Dies führt dazu, dass das Programm davon ausgeht, dass die Eingangsbildrate 25 fps beträgt, was zu Problemen führen kann, wenn dies nicht der Fall ist.
  • Synchronisierungseinstellungen nicht implementiert: Bei den meisten Benutzern wurde das Problem durch die Implementierung bestimmter Synchronisierungseinstellungen behoben. Manchmal werden die Frames möglicherweise nicht richtig synchronisiert, wodurch bestimmte Frames möglicherweise gelöscht werden und dieser Fehler ausgelöst wird.

Nachdem Sie ein grundlegendes Verständnis für die Art des Problems haben, werden wir uns den Lösungen zuwenden. Stellen Sie sicher, dass Sie diese in der spezifischen Reihenfolge implementieren, in der sie angezeigt werden, um Konflikte zu vermeiden.

Lösung 1: Hinzufügen von Eingaberahmen

Wenn die Eingangsbildrate des Videos nicht hinzugefügt wurde, werden möglicherweise einige Frames gelöscht und der Fehler wird ausgelöst. Daher werden wir in diesem Schritt die Eingaberahmen dafür hinzufügen:

  1. Beachten Sie die Konvokation, mit der Sie das Video möglicherweise konvertiert haben ähnlich Zu dem Folgendem
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
  2. Jetzt einfach hinzufügen das Framerate zur Einberufung wie folgt verwendet
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  3. Überprüfen Sie, ob das Problem weiterhin besteht.

Lösung 2: Verwenden von Sync Flags

Durch Hinzufügen der Synchronisierungsflags können Sie die Ausgabe und das Eingangsvideo entsprechend den anfänglichen Frameraten des Videos synchronisieren. Wenn die Synchronisierungsbefehle nicht hinzugefügt wurden, werden die Frames möglicherweise nicht ordnungsgemäß synchronisiert. In diesem Schritt fügen wir die Synchronisierungsbefehle hinzu



  1. Zu diesem Zeitpunkt müssen Sie wahrscheinlich sein mit die folgende Einberufung
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  2. Stattdessen jedoch verwenden die folgende Einberufung
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
  3. Beachten Sie, dass wir gerade das “ -async 1 -vsync1 ”Zur Einberufung und dies muss am Ende der Einberufung hinzugefügt werden, die Sie verwenden.
    Hinweis: Ihre anfängliche Einberufung kann von der als Beispiel verwendeten abweichen. Die der Einberufung hinzugefügten Änderungen sollten sich jedoch nicht unterscheiden.
2 Minuten gelesen