Quiero crear un timelapse a partir de una colección de imágenes, en Ubuntu. Me gustaría hacer videos en HD y lo ideal sería agregar una banda sonora.
Comentarios
- No tengo ' t visto eso. Puedo eliminar esta pregunta y publicar mi respuesta allí. ¿Está bien?
- Ni siquiera estoy seguro de si este es el mejor sitio de intercambio de pila para esto. Solo quiero compartir lo que hizo.
- Hay una pregunta similar en askubuntu.com . Las respuestas se tratan principalmente aquí al momento de escribir este artículo, pero cambiar en el futuro, por supuesto.
Responder
Ffmpeg lo hará. Si tiene imágenes img001.jpg, img002.jpg, img003.jpg, ...
luego en la línea de comando haga:
ffmpeg -i img*.jpg output.mpeg
Hay más opciones dadas en ffmpeg --help
o páginas de manual, o la web. Estas permiten controlar la velocidad de fotogramas y el formato de salida.
Comentarios
- Usar esto produce un error para mí, ya que considera el último
.jpg
archivos como archivo de salida. ReciboFile 'DSCF6134.JPG' already exists. Overwrite ? [y/N]
, no tan bien. Mi solución fue generar una lista de archivos con\ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txt
y luego cargarla conffmpeg -f concat -i files.txt output.mpeg
. - Con otras versiones de ffmpeg la siguiente versión funciona sin intentar anular las imágenes:
ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
Respuesta
Primero cambiamos el nombre de todos los archivos * .JPG en función de su fecha de creación. A veces, las cámaras cambian el nombre del archivo o simplemente ordenarlas no es lo que queremos. Sin embargo, cambiarles el nombre por la fecha de creación siempre funciona:
jhead -n%Y%m%d-%H%M%S *.JPG
Después de eso, colocamos esta lista en un archivo:
ls -1tr | grep -v files.txt > files.txt
Y luego use mencoder
para crear un video AVI
usando 20 fps. Tenga en cuenta que esto generará un archivo de video enorme, generalmente aproximadamente del mismo tamaño de todas las imágenes sumadas.
mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 "mf://@files.txt"
Normalmente tomo fotos para timelapse con la resolución más baja de mi cámara (5 MP), que tiene una relación aspec de 4: 3. Para generar un video de 1080p adecuado, la imagen se redistribuye primero a 1920 píxeles de ancho y luego la recorto a 1080 de altura. De esta manera no estoy cambiando el contenido de las fotos, solo recortando:
ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi
La razón por la que uso mencoder para juntar las fotos es porque obtuve un segmentation fault
con ffmpeg.
Comentarios
- Para el segfault sería útil conocer su versión de ffmpeg.
- Si, como yo, grabó en 3: 2 (mis imágenes fijas D750 son 6016×4016) y lo necesita en 16: 9 (para video 4k) 3840×2160, puede usar FFMPEG para Pillerbox el video y rellenar líneas negras de tranvía los lados con este comando – ffmpeg -i output.avi -qscale 0 -vf " scale = 3840: 2160: force_original_aspect_ratio = decrementar, pad = 3840: 2160: (ow-iw) / 2: (oh-ih) / 2 " output-final.avi: el video será más grande pero sin pérdida de calidad, ya que se reduce
- en su
ffmpeg
comando, la opción-sameq
ahora se reemplaza con-qscale 0
Respuesta
Blender es una buena solución si estás tratando con timelapse de movimiento (hyperlapse) o metraje inestable. Tiene capacidades de seguimiento de movimiento para que pueda elegir un punto fijo para rastrear durante el lapso de tiempo. También puede solucionar problemas de rotación.
Respuesta
También puede estar interesado en el proyecto timelapse-darktable . Facilita el posprocesamiento de imágenes con darktable y hacer un timelapse de la serie. Las instrucciones sobre cómo usarlo se encuentran aquí: https://code.google.com/p/timelapse-darktable/wiki/generateTimelapse
Respuesta
Puede usar mencoder. Las opciones son bastante explícitas:
- enumere todos sus archivos de imágenes.
Si todos están en el directorio actual con nombres ordenados y desea la lista en el archivo /tmp/files.txt:
ls -1 *jpg > /tmp/files.txt
- Use mencoder con la opción apropiada.
Si desea que el archivo de salida sea /tmp/test.avi con 30 fps :
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt
Responder
Kdenlive también puede generar timelapses usando el menú Add Slideshow Clip
, como se explica en este tutorial .
Según el mismo sitio , Openshot tiene una funcionalidad similar pero no la recomienda porque tiene «demasiados errores». Aún así, si es su editor de video preferido, le alegrará saber que puede simplemente arrastrar y soltar una secuencia de (001.jpg a NNN.jpg) en una ventana de Openshot para importarlos también como un timelapse.
Comentarios
- Esa guía es de 2014. OpenShot ha demostrado ser mucho en los últimos años, ahora es mucho más confiable.