Combinando varios archivos .bmp en un archivo .mp4 con ffmpeg

Aug 17 2020

Quiero combinar todos estos archivos .bmp en un movie.mp4. Estoy usando ffmpeg .

Este comando produce una película de solo 0.04 segundos:

$ ffmpeg -i f%05d.bmp -c:v libx264 -r 30 -pix_fmt yuv420p movie.mp4

Debería recoger todos los archivos, ¿no? No sé qué estoy haciendo mal y no puedo encontrar una solución.

Este comando que probé desde aquí dice que no puede encontrar el archivo con la ruta 'f% 05d.bmp' aunque el comando anterior sí.

$ ffmpeg -r 60 -f image2 -s 1920x1080 -start_number 1 -i f%05d.bmp -vframes 1759 -vcodec libx264 -crf 25  -pix_fmt yuv420p test.mp4

Respuestas

2 Borek Aug 17 2020 at 02:47

Creo que los archivos deben tener números consecutivos; de lo contrario, se tratan por separado (por lo tanto, obtienes una película de 0.04 segundos, solo un cuadro). Hace unos días necesitaba algo similar (aunque no para ffmpeg sino para importar archivos en DaVinci Resolve) y escribí un script de Python simple:

import os

filename="whatever{0:05d}.png"
destno = 1

for i in range(0, 10000):
   src = filename.format(i)
   if os.path.isfile(src):
      dst=filename.format(destno)
      destno+=1
      os.rename(src, dst)
      print "renamed {0:s} to {1:s}".format(src, dst)

Pésimo, pero funcionó.

WasifHasan Aug 17 2020 at 00:02

Tal vez podría cambiar el globbing para obtener todos los archivos .bmp:

ffmpeg -r 60 -f image2 -s 1920x1080 -start_number 1 -i %*.bmp -vframes 1759 -vcodec libx264 -crf 25  -pix_fmt yuv420p test.mp4