Как создать видео из изображений с помощью FFmpeg?

ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

эта строка работала нормально, но я хочу создать видеофайл из изображений в другой папке. Имена изображений в моей папке:

img001.jpg
img002.jpg
img003.jpg
...

как я могу вводить файлы изображений из другой папки? Пример: C:mypics

Я пробовал эту команду, но ffmpeg сгенерировано видео с первым изображением (img001.jpg) только.

ffmpeg -r 1/5 -start_number 0 -i C:myimagesimg%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

2 ответов


посмотреть Создать слайд-шоу видео из изображений-FFmpeg

если ваше видео не показывает кадры правильно если вы столкнулись с проблемами, например, первое изображение пропускается или отображается только для одного кадра, используйте fps видео фильтр вместо - r для выходной частоты кадров

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4

альтернативно формат видео фильтр может быть добавлен в filterchain к заменить -pix_fmt yuv420p как "fps=25, format=yuv420p". Преимущество этого метода заключается в том, что вы можете контролировать, какой фильтр идет первым

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4

я тестировал ниже параметров, это сработало для меня

"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4

ниже параметры также работали, но он всегда пропускает первое изображение

"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4

создание видео из изображений, размещенных в разных папках

первый добавить пути к imagepaths.txt, как показано ниже.


# this is a comment details https://trac.ffmpeg.org/wiki/Concatenate

file 'E:\images\png\images__%3d.jpg'
file 'E:\images\jpg\images__%3d.jpg'

использование образца как следовать;


"h:\ffmpeg\ffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:\images\imagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:\out.mp4"

-safe 0 предупреждает небезопасное имя файла

ссылки по теме

видео видео из изображений, размещенных в разных папках

ffmpeg промежуточное руководство / последовательность изображений

обединить – FFmpeg


-pattern_type glob

это отличный вариант упрощает выбор изображений во многих случаях:

ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 \
  -r 30 -pix_fmt yuv420p out.mp4

эта команда создает слайд-шоу видео, которое показывает каждое изображение в течение одной секунды. вот демо.

ваши изображения должны быть отсортированы в алфавитном порядке, как правило, как:

0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg

и так далее.

обратите внимание, однако, что, несмотря на имя,-glob это не так вообще, как shell Glob скороговорки, например: -i '*' терпит неудачу:https://trac.ffmpeg.org/ticket/3620 (видимо, потому, что тип файла выводится из расширения).

-r 30 делает видео 30 кадров в секунду, чтобы преодолеть ошибки в проигрывателях, таких как VLC для низких частот кадров:VLC зависает для низкого 1 кадров в секунду видео, созданного из изображений с ffmpeg поэтому это Повторит каждый кадр 30 раз, чтобы сохранить желаемое 1 изображение в секунду.

посмотреть также:

Далее, вы также захотите:

проверен на ffmpeg 2.8.6, в Ubuntu 16.04.