Hvordan fikser jeg en 'Past Duration Too Large' feil i FFmpeg?
FFmpeg er et gratis å bruke og åpen kildekode-program som brukes til å håndtere video-, lyd- og andre multimedia-strø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:
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 rammer blir droppet og feilen utløses. Derfor vil vi i dette trinnet legge til inndatarammer for det:
- 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
- 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
- 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
- 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
- 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
- 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, bør imidlertid ikke være forskjellige.