FFmpeg je besplatni program otvorenog koda koji se koristi za upravljanje video, audio i drugim multimedijskim streamovima. Program je dizajniran za rukovanje procesima obrade video i audio datoteka temeljenih na naredbenom retku. Međutim, u posljednje vrijeme dolazi mnogo izvještaja o „ Prošlo trajanje preveliko ”Pogreška prilikom kodiranja ili smanjenja skale videozapisa.
FFmpeg logotip
Što uzrokuje pogrešku 'Prošlo trajanje preveliko' u FFmpegu?
Nakon što smo primili brojna izvješća od više korisnika, odlučili smo istražiti problem i osmislili smo niz rješenja kako bismo ga u potpunosti ispravili. Također, ispitali smo razloge zbog kojih se ova pogreška pokreće i popisali ih kako slijedi:
- Nedostaje brzina ulaznog okvira: U većini slučajeva problem je nastao zbog toga što ulazni broj slika u sekundi nije unesen u slike. To rezultira programom koji pretpostavlja da je ulazna brzina okvira 25 fps, što može uzrokovati probleme ako to nije slučaj.
- Postavke sinkronizacije nisu implementirane: Kod većine korisnika problem je riješio primjenom određenih postavki sinkronizacije. Ponekad se okviri možda neće pravilno sinkronizirati zbog čega bi se određeni okviri mogli ispustiti i pokrenuti ova pogreška.
Sad kad ste osnovno razumjeli prirodu problema, krenut ćemo prema rješenjima. Obavezno ih primijenite u određenom redoslijedu u kojem su predstavljeni kako biste izbjegli sukob.
Rješenje 1: Dodavanje ulaznih okvira
Ako ulazni framerate videozapisa nije dodan, to bi moglo rezultirati padom nekih okvira i pokretanje pogreške. Stoga ćemo u ovom koraku dodati ulazne okvire za to:
- Promatrajte saziv koji ste koristili za pretvaranje videozapisa, možda je uključen sličan na sljedeće
ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
- Sada jednostavno dodati okvirna stopa sazivu koji se koristi kako slijedi
ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
- Provjerite nastavlja li problem i dalje.
Rješenje 2: Korištenje sinhroniziranih zastavica
Dodavanje zastavica Sync može pomoći u sinkronizaciji izlaza i ulaznog videozapisa prema početnim frekvencijama videozapisa. Stoga, ako naredbe za sinkronizaciju nisu dodane, moguće je da se okviri ne sinkroniziraju pravilno. U ovom ćemo koraku dodati naredbe za sinkronizaciju
- U ovoj fazi vjerojatno morate biti koristeći sljedeći saziv
ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
- Međutim, umjesto ovoga, koristiti sljedeći saziv
ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
- Imajte na umu da smo upravo dodali ' -asinkronizacija 1 -vsync1 Sazivu, a to treba dodati na kraju saziva koji koristite.
Bilješka: Vaš se početni saziv može razlikovati od onog koji se koristi kao primjer. Promjene dodane sazivu, međutim, ne bi se trebale razlikovati.