Hvordan løser man en 'Fejl i forrige varighed' 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:

  • Input Framerate mangler:I de fleste tilfælde er problemet forårsaget af, at inputframerate ikke er indtastet for billederne. Dette resulterer i, at programmet antager, at inputframerate er 25 fps, hvilket kan forårsage problemer, hvis det ikke er tilfældet.
  • Synkroniseringsindstillinger ikke implementeret: For de fleste brugere løste problemet ved implementering af visse synkroniseringsindstillinger. Nogle gange synkroniseres rammerne muligvis ikke korrekt, hvorfor visse rammer muligvis droppes, og denne fejl udløses muligvis.

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 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 billedfraser. 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 første 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.