Ako opraviť chybu „príliš dlhá doba trvania“ v FFmpeg?

FFmpeg je bezplatný a otvorený zdrojový program, ktorý sa používa na manipuláciu s video, audio a inými multimediálnymi tokmi. Program bol navrhnutý tak, aby spracovával spracovanie video a zvukových súborov na príkazovom riadku. V poslednej dobe sa však pri kódovaní alebo znižovaní mierky videa vyskytlo veľa správ s chybou „ trvanie príliš dlhé “.

Logo FFmpeg

Čo spôsobuje chybu „Minulé trvanie príliš veľké“ v FFmpeg?

Po prijatí mnohých správ od viacerých používateľov sme sa rozhodli problém preskúmať a navrhli súbor riešení na jeho úplné odstránenie. Skúmali sme tiež dôvody, prečo sa táto chyba vyskytla, a uviedli sme ich nasledovne:

  • Chýba vstupná snímková frekvencia : Vo väčšine prípadov je problém spôsobený tým, že do snímok nebol zadaný vstupný snímkový kmitočet. Výsledkom je program za predpokladu, že vstupná snímková rýchlosť je 25 snímok za sekundu, čo môže spôsobiť problémy, ak to tak nie je.
  • Nie je implementované nastavenie synchronizácie: Problém sa vyriešil implementáciou určitých nastavení synchronizácie u väčšiny používateľov. Rámčeky sa niekedy nemusia správne synchronizovať, v dôsledku čoho môžu byť niektoré snímky vynechané a táto chyba sa môže spustiť.

Teraz, keď už máte základné vedomosti o podstate problému, prejdeme k riešeniam. Uistite sa, že sú implementované v špecifickom poradí, v akom sú prezentované, aby sa predišlo konfliktom.

Riešenie 1: Pridanie vstupných rámcov

Ak vstupná snímková rýchlosť videa nebola pridaná, môže to viesť k zrušeniu niektorých snímok a spusteniu chyby. Preto v tomto kroku k tomu pridáme vstupné rámce:

  1. Všimnite si zvolanie, ktoré ste použili na konverziu videa, môže to byť podobné nasledujúcemu
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Teraz jednoducho pridajte snímkovú rýchlosť k použitému zvolaniu nasledovne
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  3. Skontrolujte, či problém pretrváva.

Riešenie 2: Používanie synchronizačných príznakov

Pridanie príznakov synchronizácie môže pomôcť synchronizovať výstup a vstupné video podľa počiatočných snímkových rýchlostí videa. Preto, ak príkazy synchronizácie neboli pridané, je možné, že rámce nie sú správne synchronizované. V tomto kroku pridáme synchronizačné príkazy

  1. V tejto fáze musíte pravdepodobne používať nasledujúce zvolanie
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  2. Namiesto toho však použite nasledujúce zvolanie
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1 
  3. Všimnite si, že sme práve do zvolania pridali „ -async 1 -vsync1 “ a toto musí byť pridané na koniec zvolávanej zvolania.

    Poznámka: Vaše počiatočné zvolanie sa môže líšiť od pôvodného zvolania. Zmeny, ktoré sa do zvolania pridali, by sa však nemali líšiť.

Zaujímavé Články