Kuinka korjata ”Past Duration Too Large” -virhe FFmpegissä?

FFmpeg on ilmainen ja avoimen lähdekoodin ohjelma, jota käytetään video-, ääni- ja muiden multimediavirtojen käsittelyyn. Ohjelma on suunniteltu käsittelemään video- ja äänitiedostojen käsittelyä komentorivipohjaisesti. Viime aikoina on kuitenkin tullut paljon raporttejaAikaisempi kesto on liian suuri”Virhe koodattaessa tai pienennettäessä videota.

Mikä aiheuttaa "Menneisyyden liian suuri" -virheen FFmpegissä?

Saatuamme useita raportteja useilta käyttäjiltä päätimme tutkia ongelmaa ja kehitimme joukon ratkaisuja sen korjaamiseksi kokonaan. Tutkimme myös syitä, joiden vuoksi tämä virhe käynnistyy, ja luetelimme ne seuraavasti:

  • Sisääntulokehys puuttuu:Useimmissa tapauksissa ongelma johtuu siitä, että kuvien syöttökehystä ei ole syötetty. Tämän tuloksena ohjelma olettaa, että tulokehysnopeus on 25 kuvaa sekunnissa, mikä voi aiheuttaa ongelmia, jos näin ei ole.
  • Synkronointiasetuksia ei ole otettu käyttöön: Useimpien käyttäjien kanssa tiettyjen synkronointiasetusten käyttöönotto korjasi ongelman. Joskus kehyksiä ei ehkä synkronoida oikein, minkä vuoksi tietyt kehykset voidaan pudottaa ja tämä virhe saattaa laukaista.

Nyt kun sinulla on perusteellinen käsitys ongelman luonteesta, siirrymme kohti ratkaisuja. Varmista, että nämä toteutetaan siinä järjestyksessä, jossa ne esitetään, jotta vältetään ristiriidat.

Ratkaisu 1: Syöttökehysten lisääminen

Jos videon tulokehystä ei ole lisätty, se saattaa johtaa joidenkin kehysten pudottamiseen ja virheeseen. Siksi tässä vaiheessa lisäämme siihen kehykset:

  1. Huomioi kokous, jota käytit videon muuntamiseen, se voi olla päällä samanlainen seuraavaan
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 ulos.mkv
  2. Nyt yksinkertaisesti lisätä ruudunpäivitysnopeus seuraavan kokouskutsuun
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  3. Tarkista, jatkuuko ongelma.

Ratkaisu 2: Synkronointilippujen käyttö

Synkronointilippujen lisääminen voi auttaa synkronoimaan lähdön ja tulovideon videon alkuperäisten ruutujen mukaan. Siksi, jos synkronointikomentoja ei ole lisätty, on mahdollista, että kehyksiä ei synkronoida oikein. Tässä vaiheessa lisäämme synkronointikomennot

  1. Tässä vaiheessa sinun on todennäköisesti oltava käyttämällä seuraava kokous
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  2. Tämän sijaan käyttää seuraava kokous
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
  3. Huomaa, että olemme juuri lisänneet-asynkronoitu 1 -vsync1”Kutsutaan ja tämä on lisättävä käyttämäsi kutsun loppuun.

    merkintä:Alkuperäinen kokous voi poiketa esimerkissä käytetystä. Kokouskutsuun lisättyjen muutosten ei pitäisi kuitenkaan poiketa toisistaan.


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