Hvordan fikser jeg en 'Past Duration Too Large' feil i FFmpeg?

FFmpeg er et gratis program med åpen kildekode som brukes til å håndtere video-, lyd- og andre multimediestrømmer. Programmet er designet for å håndtere kommandolinjebasert håndtering av behandling av video- og lydfiler. Men ganske nylig har det kommet mange rapporter om en "Tidligere varighet for stor”Feil under koding eller nedskalering av en video.

Hva forårsaker feilen "Tidligere varighet for stor" i FFmpeg?

Etter å ha mottatt mange rapporter fra flere brukere, bestemte vi oss for å undersøke problemet og utviklet et sett med løsninger for å rette det helt. Vi så også på årsakene til at denne feilen ble utløst, og oppførte dem som følger:

  • Inngang Framerate mangler:I de fleste tilfeller er problemet forårsaket av at inngangsrammen ikke er angitt for bildene. Dette resulterer i at programmet antar at inngangsformatet er 25 bilder per sekund, noe som kan forårsake problemer hvis det ikke er tilfelle.
  • Synkroniseringsinnstillinger ikke implementert: For de fleste brukere løste problemet ved å implementere visse synkroniseringsinnstillinger. Noen ganger kan det hende at rammene ikke blir synkronisert ordentlig, på grunn av hvilke visse rammer kan bli droppet, og denne feilen kan utløses.

Nå som du har en grunnleggende forståelse av problemets natur, vil vi gå videre mot løsningene. Sørg for å implementere disse i den spesifikke rekkefølgen de presenteres for å unngå konflikt.

Løsning 1: Legge til inngangsrammer

Hvis inngangsrammen til videoen ikke er lagt til, kan det føre til at noen bilder slippes og feilen utløses. Derfor vil vi i dette trinnet legge til inndatarammer for det:

  1. Observer innkallingen du brukte til å konvertere videoen, den kan være på lignende til følgende
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 ut.mkv
  2. Nå ganske enkelt legge til de framerate til innkallingen brukt som følger
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 ut.mkv
  3. Sjekk om problemet vedvarer.

Løsning 2: Bruke synkroniseringsflagg

Å legge til Sync-flaggene kan hjelpe til med å synkronisere utdataene og inngangsvideoen i henhold til videoens innledende bilderammer. Derfor, hvis synkroniseringskommandoer ikke er lagt til, er det mulig at rammene ikke blir synkronisert riktig. I dette trinnet vil vi legge til synkroniseringskommandoer

  1. På dette stadiet må du sannsynligvis være det ved hjelp av følgende innkalling
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 ut.mkv
  2. I stedet for dette, bruk følgende innkalling
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 ut.mkv -async 1 -vsync 1
  3. Merk at vi nettopp har lagt til “-synk 1 -vsync1”Til innkallingen, og dette må legges til på slutten av innkallingen du bruker.

    Merk:Den første innkallingen din kan variere fra den som brukes som et eksempel. Endringene som er lagt til innkallingen, skal imidlertid ikke være forskjellige.


$config[zx-auto] not found$config[zx-overlay] not found