Como corrigir o erro 'Past Duration Too Large' no FFmpeg?



Experimente Nosso Instrumento Para Eliminar Problemas

FFmpeg é um programa de código aberto e gratuito que é usado para lidar com vídeo, áudio e outros fluxos de multimídia. O programa foi projetado para lidar com o manuseio baseado na linha de comando do processamento de arquivos de vídeo e áudio. No entanto, recentemente, muitos relatórios têm vindo de um “ Duração anterior muito grande ”Erro ao codificar ou reduzir um vídeo.



Logotipo FFmpeg



O que causa o erro “Past Duration Too Large” no FFmpeg?

Depois de receber diversos relatórios de vários usuários, decidimos investigar o problema e criar um conjunto de soluções para corrigi-lo completamente. Além disso, examinamos os motivos pelos quais esse erro foi acionado e os listamos da seguinte forma:



  • Taxa de quadros de entrada ausente: Na maioria dos casos, o problema é causado porque a taxa de quadros de entrada não foi inserida para as imagens. Isso faz com que o programa presuma que a taxa de quadros de entrada é de 25 fps, o que pode causar problemas se esse não for o caso.
  • Configurações de sincronização não implementadas: Com a maioria dos usuários, a implementação de certas configurações de sincronização corrigiu o problema. Às vezes, os quadros podem não ser sincronizados corretamente devido a que certos quadros podem ser descartados e este erro pode ser acionado.

Agora que você tem uma compreensão básica da natureza do problema, seguiremos em direção às soluções. Certifique-se de implementá-los na ordem específica em que são apresentados para evitar conflito.

Solução 1: Adicionando Quadros de Entrada

Se a taxa de quadros de entrada do vídeo não foi adicionada, pode resultar na perda de alguns quadros e o erro é acionado. Portanto, nesta etapa, iremos adicionar os quadros de entrada para isso:

  1. Observe a convocação que você usou para converter o vídeo, pode ser semelhante para o seguinte
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
  2. Agora simplesmente adicionar a taxa de quadros para a convocação usada da seguinte forma
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  3. Verifique se o problema persiste.

Solução 2: usando sinalizadores de sincronização

Adicionar os sinalizadores de sincronização pode ajudar a sincronizar a saída e o vídeo de entrada de acordo com as taxas de quadros iniciais do vídeo. Portanto, se os comandos de sincronização não foram adicionados, é possível que os frames não estejam sendo sincronizados corretamente. Nesta etapa, iremos adicionar os comandos de sincronização



  1. Nesta fase, você provavelmente deve ser usando a seguinte convocação
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  2. No entanto, em vez disso, usar a seguinte convocação
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
  3. Observe que acabamos de adicionar o “ -async 1 -vsync1 ”À convocação e isso precisa ser adicionado ao final da convocação que você está usando.
    Nota: Sua convocação inicial pode ser diferente daquela usada como exemplo. As alterações adicionadas à convocação, no entanto, não devem ser diferentes.
2 minutos lidos