Combinazione di più file .bmp in un file .mp4 con ffmpeg

Aug 17 2020

Voglio unire tutti questi file .bmp in un film.mp4. Sto usando ffmpeg .

Questo comando produce un filmato di soli 0,04 secondi:

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

Dovrebbe raccogliere tutti i file no? Non so cosa sto sbagliando e non riesco a trovare una soluzione.

Questo comando che ho provato da qui dice che non riesce a trovare il file con il percorso "f% 05d.bmp" anche se il comando precedente può?

$ 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

Risposte

2 Borek Aug 17 2020 at 02:47

Penso che i file dovrebbero avere numeri consecutivi, altrimenti vengono trattati separatamente (quindi ottieni un film di 0,04 secondi - solo un fotogramma). Pochi giorni fa avevo bisogno di qualcosa di simile (anche se non per ffmpeg ma per importare file in DaVinci Resolve) e ho scritto un semplice script python:

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)

Pessimo, ma ha funzionato.

WasifHasan Aug 17 2020 at 00:02

Forse potresti cambiare il globbing per ottenere tutti i file .bmp:

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