FFmpeg: de seguencia de imágenes a vídeo

Esta es una nota personal que tenía en un documento de Google Docs y que prefiero pasar aquí para encontrarla mejor y así de paso que le pueda servir a más de uno.

WinFF se supone que es una interfaz gráfica para FFmpeg, pero no hace lo más importante para mi: convertir una secuencia de imágenes en un vídeo (también puede ser que sí sea posible y yo no haya sido capaz de descifrar el enigma)

Desde mi mentalidad 100% gráfica yo no comprendo por qué no se programa un software directamente con interfaz. Habrá motivos técnicos, no lo sé, pero se convierte en un escollo para el usuario medio.

Vamos entonces con el proceso que es muy sencillo si se conoce la línea de comando necesaria y para la que necesitamos tener instalada en nuestro sistema el software FFmpeg.

El comando

Desde el terminal…

ffmpeg -f image2 -i pref%04d.png -r 29,97 -s ANCHOxALTO resultado.avi

Donde:

  • ffmpeg. Llama al software.
  • -f. Force.
  • image2. Comando para convertir imágenes a video (algo así como image to).
  • -i. Input.
  • pref%04d. Hace referencia al prefijo común a todas las imágenes (pref), y al número de diígitos que definen la seguencia (%o4d). en el ejemplo se trata de 4 dígitos, como por ejemplo, imagen0001.
  • .png. Es el formato de las imágenes. En el ejemplo se usa PNG pero puede ser cualquier otro.
  • -r. Frames per seconds (framerate).
  • 29,27. Numero de frames por segundo. Si se usa con decimales tiene que usarse “coma” y no “punto”. Si prescindimos dela opción -r la exportación se hace a 25fps.
  • -s. Size.
  • ANCHOxALTO. Son los píxeles que determinan el ancho por el alto del vídeo final. 1920×1080 es sólo un ejemplo para un HD de 30 pulgadas (FFmpeg hubiera reconocido la expresión hd1080 en lugar de 1920×1080). Esta opción puede obviarse si el tamaño del vídeo va a ser el mismo que el de las imágenes de la importación porque FFmpeg lo reconoce y lo copia.
  • resultado. Nombre del archivo final. Por supuesto, lo elegimos nosotros
  • .avi. Formato del archivo final. Se admiten otros muchos como OGG…

Las rutas de entrada y de salida

Al decir que los archivos input (-i) son prefijo%04d estamos dando por hecho qu eestas imágenes se encuenran directamente en la carpeta usuario (hablo de GNU/Linux Ubuntu); pero esto es muy improbable. Lo normal será tener todas las imágenes en una carpeta llamada, por ejemplo, video y que esta se encuentre en usuario. En ese caso el comado sería

ffmpeg -f image2 -i video/pref%04d.png -r 29,97 -s ANCHOxALTO resultado.avi

Para la salida ocurre lo mismo, por lo que si queremos que el video final se guarde junto a las imágenes que lo generan la línea sería

ffmpeg -f image2 -i pref%04d.png -r 29,97 -s ANCHOxALTO video/resultado.avi


  1. Hola Joaquin. Al parecer lo de pasar una secuencia de imagenes a video se puede hacer con Blender:
    http://www.g-blender.org/modules/newbb/viewtopic.php?viewmode=compact&order=ASC&topic_id=1859&forum=1

    Si lo pruebas ya diras😉

  2. @itxziar: muchas gracias. Lo pruebo seguro. Ando metido en un proyecto de video con Blender y quería obtener todos los frames. Esta era la solución más acertada que encontré y las pruebas salieron bien; así que no busqué más.

    • mariio
    • 26/08/11

    joaclint que tal el verano espero que bien ,que ya no queda nada!! nos vemos en pocos dias y estas vez si que si es la definitiva… la definitiiva!! saludosss

    • joshyro
    • 27/08/11

    Hola @Joaclint, considero que el caso de que no haya una GUI para el ffmpeg es porque aún nadie se ha interesado en hacerlo, el código está disponible sólo sería cuestión de un poco mas de aporte por parte de la comunidad!, aún así es muy buena herramienta, la he utilizado un par de veces con las imágenes y se obtienen buenos resultados, sólo es cuestión de pasar los parámetros correctos. Saludos.

    • Mario
    • 28/08/11

    Hola, @joaclint. muchas gracias por este nuevo post. Me viene estupendamente para un script que me “fabriqué” para hacer timelapses en pocos pasos, y que hacía esa función con mencoder.

    Lo cierto es que gracias a estos programas que funcionan en modo texto puedes combinar varios para hacer un programa que resuelva exactamente lo que tú quieres… y añadirle tú mismo, si quieres, la interfaz gráfica.

    En mi caso, mi script utiliza imagemagick y mencoder, pero voy a probar con ffmpeg, con tus instrucciones, por si me resuelve mejor😉

    Muchas gracias y un abrazo🙂

    • Federico
    • 1/01/12

    Aparece un error que menciona que ffmpeg.exe dejo de funcionar., Sabra a que se debe?

    • Francogch
    • 4/03/14

    Hay una forma de hacer el paso contrario, pasar del video a la secuencia de imagenes,

  3. Hola, enhorabuena por el blog! está muy bien🙂

    Te queria preguntar algo sobre ffmpeg a ver si me puedes ayudar o algo.

    Tengo algunos ficheros bat para el ffmpeg que hago llamar con el enviar a (click boton derecho en windows)

    para sacar el primer fotograma de varios videos seleccionados por ejemplo, y alguno más.

    y estoy intentando hacer uno que pueda seleccionar una carpeta con secuencia de imagenes y lo pase a video
    y si puedo hacer que le ponga tambien un audio si existe alguno en esa carpeta pues estaria muy bien

    Un Saludo!

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: