Как создать видео из изображений с помощью 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 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 изображения в секунду.посмотреть также:
- http://trac.ffmpeg.org/wiki/Slideshow официальная Вики
- https://superuser.com/questions/624567/ffmpeg-create-a-video-from-images аналогичный вопрос по Су
Далее, вы также хотите, чтобы:
вырезать некоторые аудио, чтобы соответствовать длине видео: резать видео на основе времени начала и окончания использования кода
ffmpeg -i in.mp3 -ss 03:10 -to 03:30 -c copy out.mp3
добавить вырезать аудио: https://superuser.com/questions/277642/how-to-merge-audio-and-video-file-in-ffmpeg
ffmpeg -i video.mp4 -i audio.mp3 -c copy output.mkv
проверен на ffmpeg 2.8.6, в Ubuntu 16.04.