Подтвердить что ты не робот

Как создать видео из изображений с помощью 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:\myimages\img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
4b9b3361

Ответ 1

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

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

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

В качестве альтернативы видеофильтр формата может быть добавлен в цепочку фильтров для замены -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\01\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\01\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 Промежуточное руководство/последовательность изображений

Конкатенация - FFmpeg

Ответ 2

-pattern_type glob

Этот отличный вариант облегчает выбор изображений во многих случаях.

Видео слайд-шоу с одним изображением в секунду

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

Добавьте к нему немного музыки, отключите звук после окончания изображений:

ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
  -c:a copy -shortest -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

Вот две демонстрации на YouTube:

Станьте хиппи и используйте видео-формат Theora, свободный от патентов.:

ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
  -c:a copy -shortest -c:v libtheora -r 30 -pix_fmt yuv420p out.ogg

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

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

и так далее.

Смотрите также: http://unix.stackexchange.com/questions/68770/converting-png-frames-to-video-at-1-fps/339399#339399

Видео с нормальной скоростью с одним изображением на кадр со скоростью 30 кадров в секунду

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

Вот как это выглядит:

GIF, созданный с помощью https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574

Добавьте аудио к нему:

ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
  -i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4

Результат: https://www.youtube.com/watch?v=HG7c7lldhM4

Конвертируйте один музыкальный файл в видео с фиксированным изображением для загрузки на YouTube

Ответ на: https://superuser.com/questions/700419/how-to-convert-mp3-to-youtube-allowed-video-format/1472572#1472572

Получить некоторые синтетические тестовые входные изображения

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

wget -O opengl-rotating-triangle.zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.zip
cd opengl-rotating-triangle
wget -O audio.ogg https://upload.wikimedia.org/wikipedia/commons/7/74/Alnitaque_%26_Moon_Shot_-_EURO_%28Extended_Mix%29.ogg

Изображения, созданные с помощью: Как использовать GLUT/OpenGL для рендеринга в файл?

Приятно наблюдать, насколько видео сжимает последовательность изображений лучше, чем ZIP, поскольку оно может сжимать кадры с помощью специализированных алгоритмов:

  • opengl-rotating-triangle.mp4: 340K
  • opengl-rotating-triangle.zip: 7,3 млн.

О параметрах CLI

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

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

Следующие шаги

Вы также хотите:

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

Проверено на

ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.

Библиография

Ответ 3

Простая версия из Документов

Особенно хорошо работает с изображениями Google Earth Studio:

ffmpeg -framerate 24 -i Project%03d.png Project.mp4

Ответ 4

cat *.png | ffmpeg -f image2pipe -i - output.mp4

из вики