Kako popraviti pogrešku prošloga vremena preveliku u FFmpegu?

FFmpeg je program besplatnog korištenja i otvorenog koda koji se koristi za rukovanje video, audio i ostalim multimedijskim strujama. Program je osmišljen za rukovanje obrade video i audio datoteka utemeljene na naredbenom retku. No, odnedavno se pojavljuje mnoštvo izvještaja o pogrešci " Prošlost trajanja prevelika " tijekom kodiranja ili smanjivanja skaliranja videozapisa.

FFmpeg Logo

Što uzrokuje pogrešku "prošlo trajanje prevelika" u FFmpegu?

Nakon što smo primili brojne izvještaje od više korisnika, odlučili smo istražiti problem i osmislili skup rješenja kako ga u potpunosti otkloniti. Također smo pogledali razloge zbog kojih se aktivira ova pogreška i nabrojali ih kako slijedi:

  • Nedostaje ulazni okvirni okvir : U većini slučajeva problem je nastao zbog toga što slike nisu unesene. To rezultira u programu pod pretpostavkom da je ulazni okvir slike 25 fps, što može uzrokovati probleme ako to nije slučaj.
  • Postavke sinkronizacije nisu implementirane: većina je korisnika implementacijom određenih postavki sinkronizacije riješila problem. Ponekad se okviri ne mogu pravilno sinkronizirati zbog čega se određeni okviri mogu ispustiti i može se aktivirati ova greška.

Sada kada imate osnovno razumijevanje prirode problema, krenut ćemo prema rješenjima. Obavezno ih provesti točno određenim redoslijedom kojim su predstavljeni kako bi se izbjegli sukobi.

1. rješenje: Dodavanje ulaznih okvira

Ako ulazni okvir videozapisa nije dodan, to može rezultirati padom nekih okvira i pokretanjem pogreške. Stoga ćemo u ovom koraku za to dodavati ulazne okvire:

  1. Primijetite saziv koji ste koristili za pretvorbu videozapisa, možda je sličan sljedećem
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Sada jednostavno dodajte okvir u saziv koji se koristi na sljedeći način
     ffmpeg -framerat 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  3. Provjerite ima li problema i dalje.

2. rješenje: korištenje sinkroniziranih zastava

Dodavanje Sync zastava može pomoći u sinkronizaciji izlaznog i ulaznog video zapisa prema početnim okvirima videozapisa. Stoga, ako naredbe za sinkronizaciju nisu dodane, moguće je da se okviri ne sinkroniziraju pravilno. U ovom koraku dodavat ćemo naredbe za sinkronizaciju

  1. U ovoj fazi, vjerojatno se koristite sljedećim sazivom
     ffmpeg -framerat 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  2. Međutim, umjesto ovoga, upotrijebite sljedeći saziv
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1 
  3. Imajte na umu da smo upravo dodali " -async 1 -vsync1 " sazivu i to treba dodati na kraju saziva koji koristite.

    Napomena: Vaš se početni saziv može razlikovati od onoga korištenog kao primjer. Promjene dodane sazivu ne bi se trebale razlikovati.

Zanimljivi Članci