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

FFmpeg je bezplatný a otevřený zdrojový program, který se používá ke zpracování videa, zvuku a dalších multimediálních proudů. Program byl navržen pro zpracování zpracování video a audio souborů pomocí příkazového řádku. Poměrně nedávno však přichází spousta zpráv o „Minulá doba je příliš velká„Chyba při kódování nebo změně měřítka videa.

Co způsobuje chybu „Minulá doba trvání příliš velká“ ve FFmpeg?

Poté, co jsme obdrželi četné zprávy od více uživatelů, rozhodli jsme se problém prozkoumat a vymysleli jsme sadu řešení, která jej zcela napraví. Podívali jsme se také na důvody, kvůli kterým je tato chyba spuštěna, a uvedli jsme je takto:

  • Chybí vstupní frekvence:Ve většině případů je problém způsoben nezadáním vstupní snímkové rychlosti pro obrázky. To má za následek, že program předpokládá, že vstupní snímková frekvence 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ů problém vyřešilo implementace určitých nastavení synchronizace. Někdy se snímky nemusí správně synchronizovat, kvůli čemuž mohou být určité snímky zrušeny a může dojít k aktivaci této chyby.

Nyní, když máte základní znalosti o povaze problému, přejdeme k řešení. Nezapomeňte je implementovat v konkrétním pořadí, v jakém jsou uvedeny, aby nedocházelo ke konfliktům.

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

Pokud nebyl přidán snímkový kmitočet videa, mohlo by to vést k tomu, že některé snímky klesly a došlo k chybě. Proto v tomto kroku přidáme vstupní rámce pro toto:

  1. Sledujte shromáždění, které jste použili k převodu videa, může být zapnuto podobný k následujícímu
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
  2. Nyní jednoduše přidat the snímková frekvence 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ýstupní a vstupní video podle počátečních snímkových rychlostí videa. Pokud tedy nebyly přidány synchronizační příkazy, je možné, že se snímky nesynchronizují správně. V tomto kroku přidáme synchronizační příkazy

  1. V této fázi pravděpodobně musíte být použitím 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žití 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 je třeba přidat na konci svolání, které používáte.

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


$config[zx-auto] not found$config[zx-overlay] not found