Tengo un montón de imágenes que siguen este patrón.
0001.png
0004.png
0007.png
0010.png
0013.png
0016.png
0019.png
...
Están en el orden correcto, pero FFMPEG ignora cualquier cosa después del primer archivo, porque no puede encontrar un 0002.png
. ¿Cómo puedo hacer que se una a estos archivos?
Lo intenté
ffmpeg -i %04d.png out.avi
Respuestas:
con ffmpeg 0.11.1 es tan fácil como:
Desde la
man
página, en un ejemplo bajo "Conversión de formato de archivo de video y audio":Actualización por comentarios: en versiones recientes, ahora debe usar la
-i '*.png'
sintaxis.fuente
glob_sequence
tipo de patrón está en desuso, pero elglob
tipo de patrón no. La respuesta de Mulvya y Peter Cordes funciona.Pattern type 'glob_sequence' is deprecated: use pattern_type 'glob' instead
Pattern type 'glob_sequence' is deprecated
...): el comando dado por rymo arriba (específicamente-i %*.png
) causará la advertencia. Para eliminarlo, use la sintaxis ligeramente diferente en la respuesta de Peter Cordes (-i '*.png'
).Además de la solución en mi comentario, debería poder usar esta sintaxis de la documentación de ffmpeg :
Las comillas son importantes, necesita ffmpeg para ver
*
, no hacer que el shell lo expanda.fuente
*.png
comillas simples (así'*.png'
) para evitar que se expanda con shells de estilo Unix (así, OSX y Linux, etc.).Desde http://www.ffmpeg.org/faq.html : si tiene un gran número de imágenes para cambiar el nombre, puede usar el siguiente comando para aliviar la carga. El comando, usando la sintaxis de shell bourne, vincula simbólicamente todos los archivos en el directorio actual que coinciden con * jpg al directorio '/ tmp' en la secuencia de 'img001.jpg', 'img002.jpg' y así sucesivamente.
x=1; for i in *jpg; do counter=$(printf %03d $x); ln -s "$i" /tmp/img"$counter".jpg; x=$(($x+1)); done
fuente
seqA-[0001-n].png
,seqB-[0001-n].png
etc. Mucho más fácil que perder el tiempo con el globing de image2 y el filtro concat.for i in *jpg
confor i in /full/path/*jpg
, porque todos los enlaces simbólicos se rompieronDe hecho, sugeriría lo mismo que sugirió Mulvya. Siempre que he necesitado hacer cosas como esta cuando se trata de representaciones de animación en 3D, he cambiado el nombre de los archivos para que sean secuenciales. Es más fácil trabajar de esa manera en muchos programas diferentes a menos que necesite conservar los nombres de los archivos por alguna razón. Total Commander también es una gran herramienta para renombrar múltiples.
fuente
Para la parte de la secuencia que falta, usé 2 liner
Espero que esto ayude a alguien en el futuro
fuente