¿Cómo puedo combinar 30,000 imágenes en una película timelapse?


69

He tomado 30,000 imágenes fijas que quiero combinar en una película de timelapse. He intentado QuickTime Pro, TimeLapse 3 y Windows Movie Maker, pero con una cantidad tan grande de imágenes, cada uno de los programas falla (probé SUPER ©, pero tampoco pude hacerlo funcionar ...?). Parece que todos estos programas se bloquean después de unos pocos miles de imágenes.

Todas las imágenes que tengo están en formato .JPG, a una resolución de 1280x800, y estoy buscando un programa que pueda poner estas imágenes en una película timelapse en algún tipo de formato sin pérdida (AVI sin procesar / sin comprimir estaría bien) para Edición adicional. ¿Alguien tiene alguna idea, o alguien ha intentado algo así con un número similar de imágenes?


¿Has probado algo como Adobe Premiere o Final Cut Pro?
Mahmoud Hossam

¿Has intentado usar un códec de video sin pérdida como HuffYUV?
Hydaral

jpeg tiene pérdidas, por lo que ya ha perdido calidad, no puede recuperarla.
ctrl-alt-delor

Respuestas:


54

Avidemux puede crear películas a partir de un montón de imágenes. http://fixounet.free.fr/avidemux/

También podría usar mencoder, pero es un poco más difícil de usar, con todas las opciones de línea de comando 'n all. He estado usando esto:

mencoder mf://*.jpg -mf fps=xxx:type=jpg -ovc x264 -x264encopts bitrate=yyyy:threads=2 -o outputfile.mkv

yo suelo

xxx = 25 and 
yyy = 1200

que produce videos que están bien. Agregue melodías a la película insertando:

-oac copy -audiofile audiofile.mp3

2
Avidemux ROCKS! Inserción rápida de 33,000 imágenes. Guardado rápido en AVI sin comprimir, y se divide automáticamente en trozos de AVI de 4 GB. ¡Pero todos son jugables!
Swift

2
¡+1 para Avidemux, he hecho toneladas de edición de video usando MeGUI y ni siquiera sabía que existía una alternativa tan buena!
Avance

2
mencoder emite avi, independientemente del nombre de archivo de salida. Hay opciones para generar otros formatos, pero el código no funciona bien. La forma recomendada es generar h.264-in-avi, luego remux. Solo usa ffmpeg en su lugar. (ver la respuesta de Shenal Silva)
Peter Cordes

mencoder está menos mantenido / disponible que en 2011. El equivalente en MPV:mpv mf://*.jpg --mf-fps=25 --ovc libx264 --ovcopts=bitrate=1200:threads=2 -o outputfile.mkv
Sam Brightman

Avidemux solo regresa en VLC quejándose "VLC no es compatible con el formato de audio o video" PNG ". Desafortunadamente no hay forma de que arregles esto".
Vallentin

39

Usa FFmpeg .

Esto creará una presentación de diapositivas de video (usando el códec de video libx264) a partir de una serie de imágenes png, denominadas img001.png, img002.png, img003.png, ...

Cada imagen tendrá una duración de 5 segundos, cambie la variable según su elección.

ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -pix_fmt yuv420p out.mp4

Si sus imágenes tienen cuatro dígitos, uso %04d, etc. Si sus imágenes no tienen este patrón, puede usar globos de shell, al menos en Linux y OS X:

ffmpeg -f image2 -pattern_type glob -i 'time-lapse-files/*.JPG' …

También puede cambiar la velocidad de fotogramas de salida especificando otro -rdespués de la entrada.


8
Solo una nota de advertencia: no piense que puede omitir la sintaxis printf de ffmpeg y simplemente use * .jpg o algo así para patrones más complejos. En realidad, sobrescribirá todos y cada uno de sus archivos de imagen con el primero. Lo intenté yo mismo.
Christian el

Estaba luchando con esto también. Resulta que puedes hacer esto pero necesitas establecer la bandera de estilo glob. ffmpeg -pattern_type glob -i 'time-lapse-files / *. JPG' time-lapse.mp4
arno_v

2
Puede usar -frameratepara el formato de entrada image2. Recomendaría no configurar una salida fps diferente de la entrada fps, a menos que realmente desee que ffmpeg caiga o duplique fotogramas. (a menos que se envíe a un contenedor como mkv donde ffmpeg admite una velocidad de fotogramas variable). Sí, acabo de probar y obtienes fotogramas dobles adicionales alimentados a través de x264, así que solo configura el FPS de la entrada, pero ponlo -ro -framerateANTES-i .../stuff
Peter Cordes

2
También recomendaría ffmpeg. He blogueado sobre esto aquí (más detalles sobre la preparación y los argumentos): dsebastien.net/2015/01/25/simple-time-lapse-using-ffmpeg
dSebastien

cat *.jpg | ffmpeg -framerate 60 -f image2pipe -i - ~/output.mp4aquí es una alternativa si no tiene -pattern_type globdisponible
vearutop

12

Si hace algunos cálculos básicos, verá que probablemente se esté quedando sin memoria si está tratando de mantener la película sin comprimir.

Cada cuadro tiene 1,024,000 píxeles. A 32 bits por píxel, eso es 32,768,000 bits (4,096,000 bytes o 3.9 MB ).

Si multiplicamos eso por 30,000 cuadros, necesitará 117187.5 MB ( 114.45 GB ) de memoria para guardar toda la película en la memoria de una sola vez; no es de extrañar que QuickTime Pro esté fallando.

Podría intentar reducir la resolución, pero eso podría fallar.

Tendrá que construir la película en trozos más pequeños y luego unir todo. Esperaría que haya aplicaciones que hagan esto sin cargar toda la película en la memoria. La película final también tendrá que comprimirse, ya que ocuparía 114 GB en el disco duro. Una película solo ocupa un solo DVD después de todo, mientras que su película dura 20 minutos (a 25 cuadros por segundo).


3
AFAIK, no hay ningún programa de edición de video en el mundo que almacene cualquier clip sin comprimir por completo en la memoria antes de analizar / guardar.
Avance

@Breakthrough ~ Pero, ¿cómo lo componen en un clip comprimido?
jcolebrand

@Breakthrough: eso probablemente sea cierto, pero el OP quiere una película sin comprimir.
ChrisF

2
@ddrachenstern y @ChrisF: existe una diferencia entre el almacenamiento inmediato y el almacenamiento a largo plazo. No existe un programa de edición de video que almacene toda la longitud de los datos de video sin comprimir en la memoria. Incluso cuando se desplaza por la vista previa, recreará los datos de lo que ha almacenado en el disco duro de las diversas fuentes de medios (y tal vez un poco más para el almacenamiento en caché). Aparte de eso, cuando finalmente "renderizas" un proyecto, obtienes la salida de video completa (generalmente como una transmisión). La salida de video completa se puede guardar como está (por ejemplo, sin comprimir / RAW), o transmitirse a un codificador.
Avance

1
Lo siento, cuando hice mi primer comentario, solo quería señalar que el problema no es la falta de memoria. También quise decir que, si bien un programa puede almacenar algunos datos de video sin comprimir en la memoria (por ejemplo, para obtener una vista previa), nunca almacena todo el flujo de video (nuevamente, debido a los problemas que sacó a la luz en su respuesta). Esta es la forma en que se realizan estos programas, por lo que esto no debería ser un problema. Perdón por cualquier mala interpretación!
Avance

11

Sí, sé que este hilo tiene más de un año. Sin embargo, he estado usando esto durante más de 2 años, y funciona muy bien con más de 10,000 imágenes:

1080p a 24 fps, sin sonido

ls -1v | grep JPG > files.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=21600000 -o windowsill_flowers_7.avi -mf type=jpeg:fps=24 mf://@files.txt -vf scale=1920:1080

4k @ 90fps, sin sonido

ls -1v | grep JPG > files.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=21600000 -o windowsill_flowers_7.avi -mf type=jpeg:fps=90 mf://@files.txt -vf scale=3840:2160

Sin embargo, tuve que jugar mucho con el códec antes de obtener algo que YouTube reconocería. Puede encontrar una muestra con el segundo bloque aquí: http://www.youtube.com/watch?v=4G_aaPG2QWk


11

Prueba PhotoLapse ; una revisión de esto se da en Lifehacker.com aquí .

ingrese la descripción de la imagen aquí


1
Aquí hay un video que muestra esta herramienta en acción: vimeo.com/1226517
Darokthar

Tuve un error tipográfico. Ya probé Photolapse, pero falla en el proceso de renderizado. Si bajo a 10.000 imágenes, completa el archivo AVI, pero el archivo es inútil y no se puede reproducir.
Swift

@Swift Entiendo que necesita que los archivos estén en su tamaño original. Siempre he procesado por lotes las imágenes muestreadas con Irfanview antes de crear el timelapse avi. ¡Esperamos que encuentres la solución que necesitas!
JYelton

El enlace a Photolapse muestra signos definitivos de rigor mortis.
Timothy Lee Russell

@Timothy Enlace actualizado.
JYelton

8

Yo uso Picasa de Google. También es un muy buen organizador de fotos en mi opinión. Aquí es cómo.

1) Archivo> Agregar carpeta a Picasa ...> agregue la carpeta con sus fotos.

2) Haga clic derecho en la carpeta agregada en el menú izquierdo 'Carpetas' y> Seleccionar todas las imágenes

3) Desde el menú superior> Crear> Video> Desde selección ...

4) Ahora estás en el creador de video> Pestaña Video> Estilo de transición> Lapso de tiempo

5) Puede cargar una pista de audio, cambiar las dimensiones (normalmente uso 1024x768), agregar diapositivas con texto en la pestaña de diapositivas ...

6) Video Maker> pestaña Video> Crear video. Puede iniciar sesión con su cuenta de Google y subirla a YouTube desde aquí también.

De vuelta en la biblioteca, puede hacer clic derecho en el video> ubicar en el disco para ver dónde se guardó el video. Otra ventaja de usar Picasa es que puede seleccionar todas las imágenes e ir al menú superior Imagen> Edición por lotes> Me siento afortunado. Corregirá el contraste y el color de todas las fotos al mismo tiempo.

Antes de crear el video, es posible que desee agregar algo de movimiento a su lapso de tiempo con http://motiontimelapser.co.nr/ Descargo de responsabilidad: soy el autor.


Esto funcionó muy bien para mí con aproximadamente 2500 imágenes tomadas con una GoPro en modo ráfaga. Si ya usa Picasa, consulte esta solución.
lonstar

Picasa se propuso pastar.
Timothy Lee Russell

5

Me enfrenté a un problema similar hace un tiempo cuando intenté hacer un lapso de tiempo para crear un thon en un hackerspace local. Ejecuto OS X, así que no estoy seguro de qué tan viable es usar esto en Windows, pero usé MEncoder.

Este es el comando que usé en la terminal:

mencoder mf://*.jpg -mf w=800:h=600:fps=5:type=jpg -ovc copy -oac copy -o buildmadison.avi

Hay dos problemas con esto:

  1. Es AVI.
  2. Todo lo que hace es juntar las imágenes en un solo archivo sin compresión. Por supuesto, es rápido y realmente funciona.

Luego lo ejecuté a través de otra utilidad para convertirlo a un formato medio decente.

MEncoder es parte del proyecto MPlayer, ubicado aquí: http://www.mplayerhq.hu/


4

¡Veo que este hilo es un poco viejo, pero descubrí que MakeAVI es el mejor programa para mí!

Puede descargarlo aquí: http://sourceforge.net/projects/makeavi/?source=dlp

  • Todo lo que tiene que hacer es descargarlo y ejecutar el ejecutable dentro de la carpeta descargada (sin instalador).
  • Luego, para agregar las imágenes, simplemente presione el botón "Agregar archivos" en la esquina superior derecha y seleccione las imágenes que desea compilar.
  • Una vez que se hayan importado, puede usar "Arriba" y "Abajo", en el lado izquierdo central, para ajustar el orden de las imágenes en caso de que no se mantengan en orden.
  • Luego, para ajustar la velocidad de fotogramas de las imágenes compiladas, puede cambiar el cuadro de texto dentro del cuadro "Velocidad de fotogramas de reproducción", en el lado inferior derecho, a la velocidad de fotogramas que desee.
  • Dado que el programa todavía está en beta (0.1.1), algunas cosas no funcionan. Presione el botón "Comenzar" y especifique el nombre del archivo que desea. Cuando le pregunte qué tipo de compresión desea, seleccione la que desee, a excepción de los "cuadros completos (sin comprimir)" que no me funcionaron.
  • Luego, una vez que haya terminado de compilar el video, ve y mira el video para ver cómo está. Si el video está en blanco (sin duración), intente cambiar las opciones de Compresión. (Eso es lo que sucedió cuando probé "Cuadros completos (sin comprimir)")

No pude hacer funcionar ninguno de los otros métodos enumerados aquí, ¡y este funcionó para mí! ¡Espero que funcione para ti! :)


3

¿Has probado VirtualDub ?

Cuando abra una imagen en virtualdub, le pedirá que cargue toda la secuencia. A partir de ahí: ajuste la velocidad de fotogramas, agregue algunos filtros (recorte, enfoque), elija un codificador y guarde su video.

Le sugiero que experimente al principio con un número menor de imágenes y, si está satisfecho con el resultado, haga todo el lote.

Editar: Aquí hay un tutorial simple sobre esto. Todo lo que tiene que hacer es encontrar un códec sin pérdida adecuado, como este: Códec de video sin pérdida de MSU .


2

Probamos nuestro software Time-Lapse Tool para generar video a partir de 100k imágenes y funciona de maravilla. Todas estas imágenes se pueden agregar desde múltiples carpetas, lo que es útil para fotos de DSLR agrupadas por 10k imágenes en la carpeta.


2

Si está usando Premiere Pro, simplemente coloque las imágenes en una carpeta dedicada, asegúrese de que estén numeradas en secuencia y consecutivamente, luego, en Premiere Pro, haga clic con el botón derecho en la ventana Proyecto y seleccione "Importar", seleccione la primera imagen y marque la casilla de verificación "Secuencia de imagen". Automáticamente extraerá todas las imágenes en una secuencia llamada thefirstimageName.jpg pero con un icono de "pila" de imágenes. Eso es todo. Arrástrelo a una secuencia, luego renderícelo (Exportar -> Medios) como 1080p y luego importe la exportación como un nuevo videoclip. Recomiendo exportarlo y volver a importarlo como un clip porque se puede saber que Premiere Pro y Media Encoder se bloquean con el metraje de alta resolución si juegas con cortes y cambios de velocidad, así que exporta el metraje de alta resolución a 1080p, mientras compromete la calidad, restaura la estabilidad.


1

Solo por diversión, aquí hay otra manera (no, claramente NO estoy tratando de refinar mi propio proceso). Resulta que nada en Windows quiere editar la salida del mencoder que produce mi otra respuesta. Esta es una versión más fácil de editar usando ffmpeg:

1080p@90fps, no sound, IMG_00000.JPG - IMG_99999.JPG
    ffmpeg -r 90 -i IMG_%05d.JPG -vcodec libx264 -vpre medium -crf 22 -threads 0 -vf scale=1920:-1 -r 15 -metadata title="foo"

0

Tenía que hacer algo así antes. Pude hacerlo con éxito en quicktime pro al hacerlo 500 fotogramas a la vez. Los guardaría como una película individual y luego pasaría a la siguiente. Luego, más tarde, combinaría todos los 500 segmentos de cuadro en la cosa final.


¡Una especie de estafa para una pieza de software "profesional"!
Swift

0

También votaría por Virtualdub (he hecho esta operación, no recuerdo si fueran tantos). También es más fácil eliminar cuadros que no desea, etc. Tal vez podría intentar usar un formato de video sin pérdidas para renderizarlo y almacenarlo, como el códec Camstudio . Para un lapso de tiempo ... tal vez también esté bien el códec techsmith (TSCC), pero eso solo funciona si ha comprado (u obtenido una versión anterior de una revista) Camtasia, ya que instala la versión de codificación del códec. Hace videos realmente pequeños. Y probablemente sea apropiado para un lapso de tiempo.


0

Otro programa que puedes usar es Time Lapse MovieMonkey

Hizo el trabajo de crear mi última película de lapso de tiempo realmente muy muy rápido. Y no tuve que leer las instrucciones. Es simple e intuitivo, pero tiene suficientes configuraciones avanzadas. Y es gratis.

El autor dice que ha sido probado con 50,000 imágenes.


El enlace ha fallecido.
Timothy Lee Russell

0

Obtengo resultados realmente buenos al usar Picasa o GoPro-studio .

Estoy ocupado con un video para escribirme una tabla de surf usando estas herramientas. Se ha publicado un trabajo en progreso en mi perfil en YouTube (busque "Surfbordbou", todavía no se me permiten más de 2 enlaces por publicación)

El creador de películas de Picasa es realmente fácil de usar, son 2 clics y tienes el lapso de tiempo de un conjunto de imágenes seleccionadas.


Bienvenido al sitio. Cuando dice que está obteniendo buenos resultados, ¿está haciendo el mismo tipo de tarea y trabajando con una cantidad de imágenes del orden de magnitud que en la pregunta? Ese es un punto clave y debe discutirlo en su respuesta. Si la respuesta es sí, descríbala y obtendrá una respuesta ganadora. Si no es así, es información útil pero no es una gran respuesta a esta pregunta. En ese caso, elimine esta respuesta, haga una nueva pregunta sobre cómo realizar su tarea y luego responda su propia pregunta con su solución. Esa sería otra combinación ganadora.
Fixer1234
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.