Kako popraviti napako 'Preteklo trajanje je bilo preveliko' v FFmpeg?



Preizkusite Naš Instrument Za Odpravo Težav

FFmpeg je brezplačen in odprtokoden program, ki se uporablja za obdelavo video, avdio in drugih večpredstavnostnih tokov. Program je bil zasnovan za obdelavo obdelave video in zvočnih datotek na osnovi ukazne vrstice. Vendar pa v zadnjem času prihaja veliko poročil o „ Preteklo trajanje je bilo preveliko ”Napaka pri kodiranju ali zmanjšanju videoposnetka.



Logotip FFmpeg



Kaj povzroča napako 'Preteklo trajanje je bilo preveliko' v FFmpeg?

Po prejemu številnih poročil več uporabnikov smo se odločili raziskati težavo in oblikovali nabor rešitev, s katerimi smo jo v celoti odpravili. Preučili smo tudi razloge, zaradi katerih se ta napaka sproži, in jih navedli na naslednji način:



  • Manjka vhodni okvir: V večini primerov je težava povzročena, ker za slike ni bil vnesen vhodni hitrost sličic. Rezultat tega je, da program predpostavlja, da je vhodna hitrost sličic 25 sličic na sekundo, kar lahko povzroči težave, če ni tako.
  • Nastavitve sinhronizacije niso izvedene: Pri večini uporabnikov je težavo odpravila izvedba nekaterih nastavitev sinhronizacije. Včasih se okviri morda ne bodo pravilno sinhronizirali, zaradi česar bodo nekateri okvirji spuščeni in se bo ta napaka sprožila.

Zdaj, ko dobro razumete naravo vprašanja, bomo šli naprej k rešitvam. Poskrbite, da jih boste uporabili v določenem vrstnem redu, v katerem so predstavljeni, da se izognete konfliktu.

Rešitev 1: Dodajanje vhodnih okvirjev

Če vhodna hitrost sličic videoposnetka ni dodana, lahko pride do padca nekaterih okvirjev in sprožitve napake. Zato bomo v tem koraku dodali vhodne okvire za to:

  1. Upoštevajte sklic, s katerim ste pretvorili video, morda je vključen podobno do naslednjega
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
  2. Zdaj preprosto dodaj hitrost sličic sklicu, ki se uporablja na naslednji način
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  3. Preverite, ali težava še vedno obstaja.

2. rešitev: Uporaba sinhronizacijskih zastavic

Če dodate zastavice Sync, lahko sinhronizirate izhodni in vhodni video glede na začetno hitrost videoposnetka. Če torej ukazi za sinhronizacijo niso bili dodani, se okviri morda ne sinhronizirajo pravilno. V tem koraku bomo dodali ukaze za sinhronizacijo



  1. Na tej stopnji verjetno morate biti uporabo naslednjega sklica
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  2. Vendar namesto tega uporaba naslednjega sklica
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
  3. Upoštevajte, da smo pravkar dodali » -asinhronizacija 1. -vsync1 “, In to je treba dodati na koncu sklica, ki ga uporabljate.
    Opomba: Vaš začetni sklic se lahko razlikuje od tistega, ki smo ga uporabili kot primer. Spremembe, dodane sklicu, pa se ne bi smele razlikovati.
2 minuti branja