Hoe de ‘Past Duration Too Large’-fout in FFmpeg te repareren?

FFmpeg is een gratis te gebruiken en open source programma dat wordt gebruikt voor het verwerken van video-, audio- en andere multimediastreams. Het programma is ontworpen om de verwerking van video- en audiobestanden op basis van de opdrachtregel af te handelen. Vrij recentelijk zijn er echter veel rapporten binnengekomen van een "Afgelopen duur te groot”Fout bij het coderen of downscalen van een video.

Wat veroorzaakt de fout "Te grote duur in verleden" in FFmpeg?

Nadat we talloze rapporten van meerdere gebruikers hadden ontvangen, besloten we het probleem te onderzoeken en een reeks oplossingen te bedenken om het volledig te verhelpen. We hebben ook gekeken naar de redenen waardoor deze fout wordt geactiveerd en deze als volgt opgesomd:

Nu u een basiskennis heeft van de aard van het probleem, gaan we verder met de oplossingen. Zorg ervoor dat u deze implementeert in de specifieke volgorde waarin ze worden gepresenteerd om conflicten te voorkomen.

Oplossing 1: invoerframes toevoegen

Als de invoerframesnelheid van de video niet is toegevoegd, kan dit ertoe leiden dat sommige frames wegvallen en de fout wordt geactiveerd. Daarom zullen we in deze stap de invoerframes daarvoor toevoegen:

  1. Let op de oproeping die je hebt gebruikt om de video te converteren, deze staat misschien aan vergelijkbaar Naar het volgende
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 uit.mkv
  2. Nu gewoon toevoegen de frame rate op de oproeping die als volgt wordt gebruikt
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 uit.mkv
  3. Controleer of het probleem aanhoudt.

Oplossing 2: synchronisatievlaggen gebruiken

Door de synchronisatievlaggen toe te voegen, kunt u de uitvoer en de invoervideo synchroniseren volgens de aanvankelijke framerates van de video. Als de synchronisatieopdrachten niet zijn toegevoegd, is het daarom mogelijk dat de frames niet correct worden gesynchroniseerd. In deze stap zullen we de synchronisatiecommando's toevoegen

  1. In dit stadium moet u dat waarschijnlijk zijn gebruik makend van de volgende oproeping
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 uit.mkv
  2. In plaats daarvan gebruik de volgende oproeping
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 uit.mkv -async 1 -vsync 1
  3. Houd er rekening mee dat we zojuist de '-async 1 -vsync1”Bij de oproeping en deze moet worden toegevoegd aan het einde van de oproeping die u gebruikt.
    Opmerking:Uw eerste oproeping kan afwijken van de oproep die als voorbeeld is gebruikt. De wijzigingen die aan de oproeping zijn toegevoegd, mogen echter niet verschillen.
Facebook Twitter Google Plus Pinterest