Usando ffmpeg para hacer una película a partir de archivos png


11

Tengo 277 archivos png de 800x600 con nombres de archivo con el formato island_sizes-CSH (II) - ###. Png donde ### es un número que comienza con 084 y termina en 360.

estoy haciendo

ffmpeg -i island_sizes-CSH\(II\)-*.png output.mpg -y

pero no funciona

ffmpeg -f image2 -i island_sizes-CSH \ (II \) - *. png video.mpg -y
ffmpeg versión 1.2.1 Copyright (c) 2000-2013 los desarrolladores de FFmpeg
  construido el 10 de mayo de 2013 15:14:14 con gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
  configuración: --prefix = / usr --libdir = / usr / lib64 --shlibdir = / usr / lib64 --mandir = / usr / share / man --enable-shared --enable-runtime-cpudetect --enable- gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv --enable- libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags = '- O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -fexceptions - fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = genérico -fPIC '--disable-stripping
  libavutil 52. 18.100 / 52. 18.100
  libavcodec 54. 92.100 / 54. 92.100
  libavformat 54. 63.104 / 54. 63.104
  libavdevice 54. 3.103 / 54. 3.103
  libavfilter 3. 42.103 / 3. 42.103
  libswscale 2. 2.100 / 2. 2.100
  libswresample 0. 17.102 / 0. 17.102
  libpostproc 52. 2.100 / 52. 2.100
Entrada # 0, imagen2, de 'island_sizes-CSH (II) -084.png':
  Duración: 00: 00: 00.04, inicio: 0.000000, tasa de bits: N / A
    Stream # 0: 0: Video: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init falló
Salida # 0, imagen2, a 'island_sizes-CSH (II) -085.png':
    Stream # 0: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Salida # 1, imagen2, a 'island_sizes-CSH (II) -086.png':
    Stream # 1: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
...
Salida # 274, imagen2, a 'island_sizes-CSH (II) -359.png':
    Stream # 274: 0: Video: none, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Salida # 275, imagen2, a 'island_sizes-CSH (II) -360.png':
    Stream # 275: 0: Video: none, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Salida # 276, mpeg, a 'video.mpg':
    Stream # 276: 0: Video: none, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Mapeo de flujo:
  Secuencia # 0: 0 -> # 0: 0 (png -> png)
  Secuencia # 0: 0 -> # 1: 0 (png -> png)
...
  Stream # 0: 0 -> # 274: 0 (png -> png)
  Transmisión # 0: 0 -> # 275: 0 (png -> png)
  Stream # 0: 0 -> # 276: 0 (png -> mpeg1video)
Error al abrir el codificador para el flujo de salida # 218: 0 - tal vez parámetros incorrectos como bit_rate, rate, width o height

De man mencoder:, mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4similar para ffmpeg
Eddy_Em 17/0713

1
@Eddy_Em No es similar para ffmpeg- mencodertiene una sintaxis completamente diferente, desafortunadamente.
slhck

1
Mencoder trabajó para mí! Gracias. Sinceramente, no me importa qué programa utilizo, solo que obtengo la película.
rombodecaedro

Respuestas:


23

Esta es la sintaxis incorrecta para pasar múltiples imágenes como entrada ffmpeg. Eche un vistazo a la guía FFmpeg Wiki sobre cómo crear una presentación de diapositivas de video y las image2opciones de demuxer .

Debe indicarle que use tres dígitos para los números de secuencia y comience en 84, es decir

ffmpeg -start_number 84 -i island_sizes-CSH\(II\)-%03d.png output.mpg

Algunos consejos adicionales:

  • MPEG-1 como códec de video es menos que óptimo y le da mala calidad en archivos de gran tamaño. A menos que desee compatibilidad para dispositivos o computadoras antiguas (o Windows XP sin ningún códec), rasque eso y use un codificador MPEG-4 Parte 10 (H.264), como libx264:

    ffmpeg -i … -c:v libx264 out.mp4
    

    Para obtener un tutorial sobre las opciones de x264 (cómo cambiar la calidad, etc.), consulte la guía de codificación de x264 .

  • Los archivos PNG usan un formato de píxeles RGB, que no es compatible con los códecs de video normales. Con MPEG-1 no importa, pero con los códecs MPEG-4 lo haría, ya ffmpegque convertiría automáticamente el formato de píxel a YUV no submuestreado. En ese caso, necesita traducir esto a formatos con submuestreo de croma como YUV 4: 2: 0, de lo contrario, su video podría no reproducirse en la mayoría de las aplicaciones:

    ffmpeg -i … -c:v libx264 -pix_fmt yuv420p out.mp4
    

Usted. Me gustas.
rombodecaedro
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.