-pattern_type glob
ejemplos concretos con audio
Esta opción fue mencionada en: https://superuser.com/a/782520/128124 pero aquí hay algunos ejemplos concretos de su uso, incluso de añadir audio al vídeo de salida.
Vídeo de presentación de diapositivas con una imagen por segundo
ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Añadirle música, cortar el audio cuando terminen las imágenes:
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Aquí hay dos demos en YouTube:
Sea un hippie y utilice el formato de vídeo sin patente Theora :
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libtheora -r 30 -pix_fmt yuv420p out.ogg
Sus imágenes deberían, por supuesto, estar ordenadas alfabéticamente, normalmente como:
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
y así sucesivamente.
Ver también: http://unix.stackexchange.com/questions/68770/converting-png-frames-to-video-at-1-fps/339399#339399
Vídeo a velocidad normal con una imagen por fotograma a 30 FPS
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
Esto es lo que parece:
GIF generado con: https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Añadirle algo de audio:
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4
Resultado: https://www.youtube.com/watch?v=HG7c7lldhM4
Convertir un archivo de música en un vídeo con imagen fija para subirlo a YouTube
Respondido en: ¿Cómo convertir un MP3 a un formato de vídeo permitido por Youtube?
Obtener algunas imágenes sintéticas de entrada
Estas son las imágenes de prueba que he utilizado en esta respuesta:
wget -O opengl-rotating-triangle.zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.zip
cd opengl-rotating-triangle
wget -O audio.ogg https://upload.wikimedia.org/wikipedia/commons/7/74/Alnitaque_%26_Moon_Shot_-_EURO_%28Extended_Mix%29.ogg
Imágenes generadas con: https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
Es genial observar como el vídeo comprime la secuencia de imágenes mucho mejor que ZIP ya que es capaz de comprimir a través de los fotogramas con algoritmos especializados:
opengl-rotating-triangle.mp4
: 340K
opengl-rotating-triangle.zip
: 7.3M
Sobre las opciones del CLI
Tenga en cuenta, sin embargo, que a pesar del nombre, -glob
esto no es tan general como los patrones del shell Glob, por ejemplo: -i '*'
falla: https://trac.ffmpeg.org/ticket/3620 (aparentemente porque el tipo de archivo se deduce de la extensión).
-r 30
hace que el vídeo -framerate 1
sea de 30 FPS para superar los fallos de reproductores como VLC para bajas velocidades de fotogramas: https://stackoverflow.com/questions/19267443/playback-issues-in-vlc-with-low-fps-video-from-images-using-ffmpeg/41797724#41797724 Por tanto, repite cada fotograma 30 veces para mantener el efecto deseado de 1 imagen por segundo.
Siguientes pasos
También querrás:
TODO: aprender a cortar y concatenar múltiples archivos de audio en el vídeo desde la línea de comandos:
Testado en
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliografía