Как создать видео из изображений с помощью 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 61

2 ответа:

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

если ваше видео не показывает кадры правильно если вы столкнулись с проблемами, например, первое изображение пропущено или отображается только для одного кадра, используйте fps video filter вместо - 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"

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

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

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

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 FPS, созданного из изображений с помощью ffmpeg поэтому это будет повторять каждый кадр 30 раз, чтобы сохранить желаемый эффект 1 изображения в секунду.

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

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

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