Wie kann der Fehler "Vergangene Dauer zu groß" in FFmpeg behoben werden?
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.
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:
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 Reihenfolge implementieren, in der sie angezeigt werden, um Konflikte zu vermeiden.
Lösung 1: Hinzufügen von Eingaberahmen
Wenn die Eingabe-Framerate 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:
- 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
- Jetzt einfach hinzufügen das Framerate auf die Einberufung wie folgt verwendet
ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
- Ü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, ist es daher möglich, dass die Frames nicht ordnungsgemäß synchronisiert werden. In diesem Schritt fügen wir die Synchronisierungsbefehle hinzu
- 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
- Stattdessen jedoch benutzen die folgende Einberufung
ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
- 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.