Объединение нескольких файлов .bmp в файл .mp4 с помощью ffmpeg

Aug 17 2020

Я хочу объединить все эти файлы .bmp в один фильм .mp4. Я использую ffmpeg .

Эта команда создает фильм продолжительностью всего 0,04 секунды:

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

Он должен забрать все файлы, нет? Я не знаю, что делаю не так, и не могу найти решения.

Эта команда, которую я пробовал отсюда, говорит, что не может найти файл с путем 'f% 05d.bmp', хотя указанная выше команда может?

$ 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

Ответы

2 Borek Aug 17 2020 at 02:47

Я думаю, что файлы должны иметь последовательные номера, в противном случае они обрабатываются отдельно (следовательно, вы получаете фильм 0,04 секунды - всего один кадр). Несколько дней назад мне понадобилось что-то подобное (но не для ffmpeg, а для импорта файлов в DaVinci Resolve), и я написал простой скрипт на 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)

Паршивая, но работала.

WasifHasan Aug 17 2020 at 00:02

Возможно, вы могли бы изменить подстановку, чтобы получить все файлы .bmp:

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