for i in *.JPG; do convert "$i" -gravity center -resize 1920x -crop "1920x1080+0+0" +repage "resized/$i"; done
El comando anterior hace los ajustes necesarios a todas las imágenes del directorio. Primero les cambia el tamaño a 1920px horizontales de forma proporcional, y después las recorta de forma centrada. Ahora que tenemos todas las imágenes en el tamaño correcto, es solo cuestión de unirlas para generar el video:
mencoder "mf://*.JPG" -mf fps=30 -o timelapse.avi -ovc x264
Actualización
El comando original para convertir el tamaño de las imágenes funciona, pero es muy tardado cuando estamos lidiando con cientos de fotos. Para mejorar la velocidad, podemos usar xargs para ejecutar la misma instrucción en paralelo:
find -name '*.JPG'| xargs --max-procs=10 -n1 -l -I file convert "file" -gravity center -resize 1920x -crop "1920x1080+0+0" +repage "resized/file"
Estoy limitando el número de procesos a 10, pero puedes incrementar ese número a lo que mejor te funcione. Si tienes instalado GNU Parallel, todavía mejor:
find . -name "*.JPG" | parallel -j+0 --bar convert {} -gravity center -resize 1920x -crop "1920x1080+0+0" +repage resized/{/}
No hay comentarios.:
Publicar un comentario