Birden çok .bmp dosyasını ffmpeg ile bir .mp4 dosyasında birleştirme

Aug 17 2020

Tüm bu .bmp dosyalarını tek bir movie.mp4'te birleştirmek istiyorum . Ffmpeg kullanıyorum .

Bu komut yalnızca 0,04 saniyelik bir film oluşturur:

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

Tüm dosyaları almalı değil mi? Neyi yanlış yaptığımı bilmiyorum ve bir çözüm bulamıyorum.

Buradan denediğim bu komut , yukarıdaki komut bulabildiği halde 'f% 05d.bmp' yolunu bulamadığını söylüyor.

$ 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

Yanıtlar

2 Borek Aug 17 2020 at 02:47

Bence dosyalar ardışık sayılara sahip olmalı, aksi takdirde ayrı ayrı ele alınırlar (bu nedenle 0,04 saniyelik bir film elde edersiniz - sadece bir kare). Birkaç gün önce benzer bir şeye ihtiyacım vardı (ffmpeg için olmasa da DaVinci Resolve'ye dosya aktarmak için) ve basit bir python betiği yazdım:

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)

Berbat, ama çalıştı.

WasifHasan Aug 17 2020 at 00:02

Belki tüm .bmp dosyalarını almak için globbing'i değiştirebilirsiniz:

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