Как создать видео из изображений с помощью 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 промежуточное руководство / последовательность изображений
-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 изображение в секунду.
посмотреть также:
- http://trac.ffmpeg.org/wiki/Slideshow официальная Вики
- https://superuser.com/questions/624567/ffmpeg-create-a-video-from-images подобный вопрос на SU
Далее, вы также захотите:
-
вырезать аудио, чтобы соответствовать длине видео:резка видео на основе времени начала и окончания с помощью ffmpeg
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.