Jak opravit chybu „Minulá doba trvání příliš velká“ v FFmpeg?

FFmpeg je volně použitelný a open source program, který se používá pro manipulaci s video, audio a dalšími multimediálními proudy. Program byl navržen tak, aby zvládl zpracování příkazových řádků při zpracování video a zvukových souborů. V poslední době však při kódování nebo snižování měřítka videa přicházelo mnoho zpráv s chybou „ Příliš velká doba trvání “.

Logo FFmpeg

Co způsobuje chybu „Příliš velká doba trvání“ v FFmpeg?

Po obdržení četných zpráv od více uživatelů jsme se rozhodli problém prošetřit a navrhli řadu řešení, která jej zcela napraví. Také jsme se podívali na důvody, kvůli nimž je tato chyba vyvolána, a uvedli jsme je následovně:

  • Chybí vstupní snímková frekvence : Ve většině případů je problém způsoben tím, že vstupní snímky nebyly zadávány do obrázků. Výsledkem je program za předpokladu, že vstupní snímková rychlost je 25 fps, což může způsobit problémy, pokud tomu tak není.
  • Nastavení synchronizace není implementováno: U většiny uživatelů byl problém vyřešen implementací určitých nastavení synchronizace. Někdy se nemusí řádně synchronizovat rámce, kvůli kterým mohou být některé snímky zrušeny a tato chyba může být vyvolána.

Nyní, když máte základní znalosti o povaze problému, přistoupíme k řešením. Nezapomeňte je implementovat ve specifickém pořadí, v jakém jsou prezentovány, aby nedošlo ke konfliktu.

Řešení 1: Přidání vstupních rámců

Pokud vstupní snímková rychlost videa nebyla přidána, může to vést k tomu, že některé snímky budou upuštěny a dojde k chybě. Proto v tomto kroku k tomu přidáme vstupní rámce:

  1. Sledujte svolání, které jste použili k převodu videa, může to být podobné následujícímu
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Nyní jednoduše přidejte snímkovou frekvenci ke svolání použitému následovně
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  3. Zkontrolujte, zda problém přetrvává.

Řešení 2: Použití příznaků synchronizace

Přidání příznaků synchronizace může pomoci synchronizovat výstup a vstupní video podle počátečních snímkových rychlostí videa. Pokud tedy nebyly přidány příkazy synchronizace, je možné, že rámce nejsou správně synchronizovány. V tomto kroku přidáme synchronizační příkazy

  1. V této fázi musíte pravděpodobně používat následující svolání
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  2. Místo toho však použijte následující svolání
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1 
  3. Všimněte si, že jsme právě přidali „ -async 1 -vsync1 “ ke svolání a toto musí být přidáno na konec svolání, které používáte.

    Poznámka: Vaše počáteční svolání se může lišit od té, která byla použita jako příklad. Změny přidané ke svolání by se však neměly lišit.

Zajímavé Články