Kuinka korjata "Viimeinen kesto liian suuri" virhe FFmpeg-ohjelmassa?

FFmpeg on ilmainen ja avoimen lähdekoodin ohjelma, jota käytetään video-, ääni- ja muiden multimediavirtojen käsittelemiseen. Ohjelma on suunniteltu käsittelemään komentorivipohjaista video- ja äänitiedostojen käsittelyn käsittelyä. Aivan viime aikoina on kuitenkin saapunut paljon raportteja " Viimeinen kesto liian suuri " -virheestä videon koodaamisen tai pienentämisen aikana.

FFmpeg-logo

Mikä aiheuttaa "viimeisen keston liian suuri" -virheen FFmpegissä?

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

  • Syöttökehyksen puute puuttuu: Useimmissa tapauksissa ongelma johtuu siitä, että syötetyn kehyksen nopeutta ei ole annettu kuville. Tämä johtaa siihen, että ohjelma olettaa, että syöttökehys on 25 kuvaa sekunnissa, mikä voi aiheuttaa ongelmia, ellei näin ole.
  • Synkronointiasetuksia ei ole toteutettu: Useimpien käyttäjien kanssa tiettyjen synkronointiasetuksien toteuttaminen korjasi ongelman. Joskus kehyksiä ei ehkä synkronoida oikein, minkä vuoksi tietyt kehykset voidaan pudottaa ja tämä virhe saattaa laukaista.

Nyt kun sinulla on perustiedot ymmärryksestä asian luonteesta, siirrymme kohti ratkaisuja. Varmista, että otat nämä käyttöön ne esitetyssä järjestyksessä konfliktien välttämiseksi.

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

Jos videon syöttökehystä ei ole lisätty, se saattaa johtaa siihen, että jotkut kehykset putoavat ja virhe laukaistaan. Siksi tässä vaiheessa lisäämme siihen syöttökehykset:

  1. Noudata kutsua, jonka käytit videon muuntamiseen, se saattaa olla samanlainen kuin seuraava
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Lisää nyt vain kehysnopeus käytettyyn kutsuun seuraavasti
     ffmpeg -kehystä 24 -i% 05d.png -c: v libx264 -cff 5 out.mkv 
  3. Tarkista, jatkuu ongelma.

Ratkaisu 2: Synkronointilippujen käyttäminen

Synkronointi-lippujen lisääminen voi auttaa synkronoimaan lähtö- ja tulosignaalin videon alkuperäisen kuvanopeuden 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 käytettävä seuraavaa kutsua
     ffmpeg -kehystä 24 -i% 05d.png -c: v libx264 -cff 5 out.mkv 
  2. Käytä sen sijaan seuraavaa kutsua
     ffmpeg -kehystä 24 -i% 05d.png -c: v libx264 -cff 5 out.mkv -async 1 -vsync 1 
  3. Huomaa, että olemme juuri lisänneet kutsun-async 1 -vsync1 ” ja tämä on lisättävä käyttämäsi kutsun loppuun.

    Huomaa: Alkuvalmistelut saattavat poiketa esimerkistä. Kutsuun lisättyjen muutosten ei pitäisi kuitenkaan olla erilaisia.

Mielenkiintoisia Artikkeleita