traba - Problemas de reproducción en VLC con video de baja fps desde imágenes usando ffmpeg
vlc media player (2)
Estoy creando un video corto de una secuencia de 100 imágenes usando ffmpeg. Hay varios artículos que me ayudaron a armar un comando, pero el que estoy usando está directamente tomado de ffmpeg script de imágenes a video. .
El siguiente comando produce un archivo de video que funciona bien en todos los reproductores de video que tengo (OS X).
cat input/*.jpg | ffmpeg -f image2pipe -r 10 -vcodec mjpeg -i - out.mp4
Pero si lo cambio a,
cat input/*.jpg | ffmpeg -f image2pipe -r 1 -vcodec mjpeg -i - out.mp4
Funciona bien en todos los reproductores de medios excepto VLC. VLC muestra las imágenes iniciales de 1 a 3, luego simplemente se congela en el marco. He probado algunas tasas de cuadros diferentes, y parece que el límite que rompe la reproducción de video en VLC se encuentra entre 1.125 y 1.175.
Cualquier consejo sobre lo que estoy tratando aquí sería muy apreciado.
Es un error muy conocido en VLC: https://trac.videolan.org/vlc/ticket/3625
Ha sido reportado por muchos usuarios con varios umbrales, pero por lo que encontré y experimenté a mí mismo, el umbral está en algún lugar alrededor de un par de FPS .
Actualmente, estoy tristemente mirando el primer cuadro congelado de un video de 2 FPS que no se reproducirá en la versión actual de VLC (2.2.4). Lo recuerdo trabajando en alguna versión 1.1.x (aunque el error fue informado mucho antes) pero después de actualizar a 2.x dejó de funcionar para mí.
Mi colega y yo, en realidad, hemos comparado el comportamiento con los mismos archivos de video (2 FPS) hace algún tiempo y mientras podía jugar con todos ellos sin problemas con 1.1.x (creo que era 1.1.1 pero no soy 100% seguro más), él no podría jugar ninguno de ellos con 2.x. Después de rebajar la calificación de VLC a 1.1.x, también podría jugarlos.
Así que tal vez la versión más baja es el camino a seguir, si está desesperado por usar VLC y no se perderá nada de 2.x. De lo contrario, diría que te ahorres las dolorosas horas de jugar con la configuración de VLC y simplemente usar un jugador diferente.
Use ambos -framerate
y -r
Por ejemplo, para tener un video final que se parece a 1FPS:
ffmpeg -framerate 1 -pattern_type glob -i ''*.png'' /
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Esto se menciona en la wiki en: http://trac.ffmpeg.org/wiki/Slideshow#Framerates
Establece el framerate de salida a 30
, que VLC puede manejar, y copia cada imagen 30 veces, de modo que el video de salida parece estar a 1 FPS.
VLC puede reproducir el video normalmente.
Probado en Ubuntu 16.10, VLC 2.2.4, ffmpeg
3.0.5, en un directorio con 10 PNG.