Combinar vários arquivos .bmp em um arquivo .mp4 com ffmpeg

Aug 17 2020

Quero combinar todos esses arquivos .bmp em um filme.mp4.Estou usando o ffmpeg .

Este comando produz um filme de apenas 0,04 segundos:

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

Ele deve pegar todos os arquivos, não? Não sei o que estou fazendo de errado e não consigo encontrar uma solução.

Este comando que tentei daqui diz que não consegue encontrar o arquivo com o caminho 'f% 05d.bmp', embora o comando acima possa?

$ 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

Respostas

2 Borek Aug 17 2020 at 02:47

Acho que os arquivos devem ter números consecutivos, caso contrário, eles são tratados separadamente (portanto, você obtém um filme de 0,04 segundo - apenas um quadro). Poucos dias atrás, eu precisava de algo semelhante (embora não para ffmpeg, mas para importar arquivos para o DaVinci Resolve) e escrevi um script python simples:

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)

Ruim, mas funcionou.

WasifHasan Aug 17 2020 at 00:02

Talvez você possa alterar o globbing para obter todos os arquivos .bmp:

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