Hvordan løser man 'Fortidens varighed for stor' fejl i FFmpeg?

FFmpeg er et gratis program og open source-program, der bruges til håndtering af video-, lyd- og andre multimediestreams. Programmet er designet til at håndtere kommandolinjebaseret håndtering af behandling af video- og lydfiler. For nylig er der imidlertid kommet mange rapporter om en "Tidligere varighed for stor”Fejl under kodning eller nedskalering af en video.

Hvad forårsager fejlen "Tidligere varighed for stor" i FFmpeg?

Efter at have modtaget adskillige rapporter fra flere brugere, besluttede vi at undersøge problemet og udtænkte et sæt løsninger for at rette det fuldstændigt. Vi undersøgte også årsagerne til, at denne fejl blev udløst, og opførte dem som følger:

Nu hvor du har en grundlæggende forståelse af problemets art, går vi videre mod løsningerne. Sørg for at implementere disse i den specifikke rækkefølge, som de præsenteres for at undgå konflikt.

Løsning 1: Tilføjelse af inputrammer

Hvis videoens inputramme ikke er tilføjet, kan det resultere i, at nogle rammer falder, og fejlen udløses. Derfor vil vi i dette trin tilføje inputrammerne til det:

  1. Overhold den indkaldelse, du brugte til at konvertere videoen, den kan muligvis være tændt lignende til det følgende
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 ud.mkv
  2. Nu simpelthen tilføje det ramme til indkaldelsen anvendt som følger
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 ud.mkv
  3. Kontroller, om problemet fortsætter.

Løsning 2: Brug af synkroniseringsflag

Tilføjelse af synkroniseringsflagene kan hjælpe med at synkronisere output og inputvideo i henhold til videoens indledende billedformater. Derfor, hvis synkroniseringskommandoer ikke er tilføjet, er det muligt, at rammerne ikke synkroniseres korrekt. I dette trin tilføjer vi synkroniseringskommandoer

  1. På dette stadium skal du sandsynligvis være ved brug af følgende indkaldelse
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 ud.mkv
  2. I stedet for dette brug følgende indkaldelse
    ffmpeg -framerat 24 -i% 05d.png -c: v libx264 -crf 5 ud.mkv -async 1 -vsync 1
  3. Bemærk, at vi lige har tilføjet “-synkronisering 1 -vsync1”Til indkaldelsen, og dette skal tilføjes i slutningen af ​​den indkaldelse, du bruger.
    Bemærk:Din oprindelige indkaldelse kan afvige fra den, der blev brugt som et eksempel. De ændringer, der er tilføjet til indkaldelsen, bør dog ikke være forskellige.
Facebook Twitter Google Plus Pinterest