¿Cómo reparar el error 'Duración pasada demasiado grande' en FFmpeg?

FFmpeg es un programa de código abierto y de uso gratuito que se utiliza para manejar video, audio y otras transmisiones multimedia. El programa ha sido diseñado para manejar el manejo basado en la línea de comandos del procesamiento de archivos de video y audio. Sin embargo, recientemente, se han recibido muchos informes de un error de " Duración pasada demasiado grande " al codificar o reducir la escala de un video.

Logotipo de FFmpeg

¿Qué causa el error "Duración pasada demasiado grande" en FFmpeg?

Después de recibir numerosos informes de múltiples usuarios, decidimos investigar el problema e ideamos un conjunto de soluciones para rectificarlo por completo. Además, analizamos los motivos por los que se activa este error y los enumeramos de la siguiente manera:

  • Falta la velocidad de fotogramas de entrada : en la mayoría de los casos, el problema se debe a que no se ingresó la velocidad de fotogramas de entrada para las imágenes. Esto hace que el programa suponga que la velocidad de fotogramas de entrada es de 25 fps, lo que puede causar problemas si ese no es el caso.
  • Configuración de sincronización no implementada: con la mayoría de los usuarios, la implementación de ciertas configuraciones de sincronización solucionó el problema. A veces, los fotogramas pueden no sincronizarse correctamente debido a que ciertos fotogramas pueden descartarse y este error puede activarse.

Ahora que tiene una comprensión básica de la naturaleza del problema, avanzaremos hacia las soluciones. Asegúrese de implementarlos en el orden específico en que se presentan para evitar conflictos.

Solución 1: Agregar marcos de entrada

Si no se ha agregado la velocidad de fotogramas de entrada del video, es posible que se eliminen algunos fotogramas y se active el error. Por lo tanto, en este paso, agregaremos los marcos de entrada para eso:

  1. Observe la convocatoria que utilizó para convertir el video, podría ser similar a la siguiente
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Ahora simplemente agregue la velocidad de fotogramas a la convocatoria utilizada de la siguiente manera
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  3. Verifique si el problema persiste.

Solución 2: uso de indicadores de sincronización

Agregar los indicadores de sincronización puede ayudar a sincronizar la salida y el video de entrada de acuerdo con las tasas de cuadros iniciales del video. Por lo tanto, si los comandos de sincronización no se han agregado, es posible que los cuadros no se estén sincronizando correctamente. En este paso, agregaremos los comandos de sincronización

  1. En esta etapa, probablemente debes estar usando la siguiente convocatoria
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  2. Sin embargo, en lugar de esto, use la siguiente convocatoria
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1 
  3. Tenga en cuenta que acabamos de agregar el " -async 1 -vsync1 " a la convocatoria y esto debe agregarse al final de la convocatoria que está utilizando.

    Nota: Su convocatoria inicial puede diferir de la utilizada como ejemplo. Los cambios agregados a la convocatoria, sin embargo, no deberían diferir.

Artículos De Interés