Πώς να επιδιορθώσετε το σφάλμα «Προηγούμενη διάρκεια πάρα πολύ μεγάλο» στο FFmpeg;

Το FFmpeg είναι ένα πρόγραμμα ελεύθερης χρήσης και ανοιχτού κώδικα που χρησιμοποιείται για το χειρισμό βίντεο, ήχου και άλλων ροών πολυμέσων. Το πρόγραμμα έχει σχεδιαστεί για να χειρίζεται τη γραμμή εντολών χειρισμό επεξεργασίας αρχείων βίντεο και ήχου. Ωστόσο, πολύ πρόσφατα, πολλές αναφορές έχουν εισέλθει σε ένα «Η προηγούμενη διάρκεια είναι πολύ μεγάληΣφάλμα κατά την κωδικοποίηση ή την υποβάθμιση του βίντεο.

Τι προκαλεί το σφάλμα "Προηγούμενη διάρκεια πολύ μεγάλη" στο FFmpeg;

Αφού λάβαμε πολλές αναφορές από πολλούς χρήστες, αποφασίσαμε να διερευνήσουμε το ζήτημα και επινοήσαμε ένα σύνολο λύσεων για να το διορθώσουμε πλήρως. Επίσης, εξετάσαμε τους λόγους για τους οποίους ενεργοποιήθηκε αυτό το σφάλμα και τους αναφέραμε ως εξής:

  • Λείπει το Framerate εισαγωγής:Στις περισσότερες περιπτώσεις, το ζήτημα προκαλείται λόγω του ότι δεν εισάγεται το framerate εισόδου για τις εικόνες. Αυτό έχει ως αποτέλεσμα το πρόγραμμα να υποθέσει ότι το framerate εισόδου είναι 25 fps, το οποίο μπορεί να προκαλέσει προβλήματα εάν δεν συμβαίνει αυτό.
  • Δεν εφαρμόστηκαν ρυθμίσεις συγχρονισμού: Με τους περισσότερους χρήστες, η εφαρμογή ορισμένων ρυθμίσεων συγχρονισμού επιλύει το πρόβλημα. Μερικές φορές, τα πλαίσια ενδέχεται να μην συγχρονιστούν σωστά λόγω των οποίων ορισμένα πλαίσια ενδέχεται να πέσουν και αυτό το σφάλμα μπορεί να προκληθεί.

Τώρα που έχετε μια βασική κατανόηση της φύσης του ζητήματος, θα προχωρήσουμε προς τις λύσεις. Φροντίστε να τα εφαρμόσετε με τη συγκεκριμένη σειρά με την οποία παρουσιάζονται για να αποφύγετε τη σύγκρουση.

Λύση 1: Προσθήκη πλαισίων εισαγωγής

Εάν το καρέ εισαγωγής του βίντεο δεν έχει προστεθεί, ενδέχεται να έχει ως αποτέλεσμα την κατάργηση ορισμένων καρέ και την ενεργοποίηση του σφάλματος. Επομένως, σε αυτό το βήμα, θα προσθέσουμε τα πλαίσια εισόδου για αυτό:

  1. Παρατηρήστε τη συνομιλία που χρησιμοποιήσατε για τη μετατροπή του βίντεο, μπορεί να ήταν ενεργοποιημένη παρόμοιος στα ακόλουθα
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
  2. Τώρα απλά Προσθήκη ο καρέ στη συζήτηση που χρησιμοποιείται ως εξής
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  3. Ελέγξτε αν το πρόβλημα παραμένει.

Λύση 2: Χρήση σημαιών συγχρονισμού

Η προσθήκη των σημαιών συγχρονισμού μπορεί να σας βοηθήσει να συγχρονίσετε την έξοδο και το βίντεο εισαγωγής σύμφωνα με τα αρχικά καρέ του βίντεο. Επομένως, εάν οι εντολές συγχρονισμού δεν έχουν προστεθεί, είναι πιθανό τα πλαίσια να μην συγχρονίζονται σωστά. Σε αυτό το βήμα, θα προσθέσουμε τις εντολές συγχρονισμού

  1. Σε αυτό το στάδιο, μάλλον πρέπει να είστε χρησιμοποιώντας την ακόλουθη σύγκληση
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  2. Ωστόσο, αντί αυτού, χρήση την ακόλουθη σύγκληση
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv-async 1 -vsync 1
  3. Σημειώστε ότι μόλις προσθέσαμε το "-συγχρονισμός 1 -vsync1"Στη συζήτηση και αυτό πρέπει να προστεθεί στο τέλος της συνομιλίας που χρησιμοποιείτε.

    Σημείωση:Η αρχική σας συζήτηση μπορεί να διαφέρει από αυτήν που χρησιμοποιείται ως παράδειγμα. Οι αλλαγές που προστέθηκαν στη σύγκληση, ωστόσο, δεν πρέπει να διαφέρουν.