Как создать замедленное видео из коллекции фотографий в Linux?

Я хочу создать замедленную съемку из коллекции изображений под Ubuntu. Я хотел бы сделать HD-видео, и в идеале добавить саундтрек.

Я этого не видел. Я могу удалить этот вопрос и опубликовать свой ответ там. Это нормально?
Я даже не уверен, что это лучший сайт обмена стеками для этого. Я просто хочу поделиться тем, что я сделал.
Аналогичный вопрос есть на askubuntu.com . Ответы в основном представлены здесь на момент написания, но, конечно, это может измениться в будущем.

Ответы (6)

ffmpeg сделает это. Если у вас есть изображения, img001.jpg, img002.jpg, img003.jpg, ...то в командной строке выполните:

ffmpeg -i img*.jpg output.mpeg

Есть больше вариантов, приведенных на ffmpeg --helpсправочных страницах или в Интернете. Они позволяют контролировать частоту кадров и выходной формат.

Использование этого приводит к ошибке для меня, так как он считает последние .jpgфайлы такими, как выходной файл. Я понимаю File 'DSCF6134.JPG' already exists. Overwrite ? [y/N]- не очень. Мое решение состояло в том, чтобы сгенерировать список файлов, \ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txtа затем загрузить его с помощью ffmpeg -f concat -i files.txt output.mpeg.
С другими версиями ffmpeg следующая версия работает без попытки переопределить изображения:ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg

Сначала мы переименовываем все файлы *.JPG в зависимости от даты их создания. Иногда камеры меняют имя файла или просто упорядочить их как-то не то, что нам нужно. Однако переименование их по дате создания всегда работает:

jhead -n%Y%m%d-%H%M%S *.JPG

После этого помещаем этот список в файл:

ls -1tr | grep -v files.txt > files.txt

А затем используйте mencoderдля создания AVIвидео с частотой 20 кадров в секунду. Обратите внимание, что это создаст огромный видеофайл, обычно примерно такого же размера, как и все суммированные изображения.

mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 'mf://@files.txt'

Обычно я делаю снимки для таймлапса с самым низким разрешением моей камеры (5 Мп), которое имеет соотношение сторон 4:3. Чтобы создать правильное видео 1080p, изображение сначала масштабируется до 1920 пикселей по ширине, а затем я обрезаю его до 1080 по высоте. Таким образом, я не меняю содержимое фотографий, а просто обрезаю:

ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi

Причина, по которой я использую mencoder для объединения фотографий, заключается в том, что у меня есть файл segmentation faultс ffmpeg.

Для segfault было бы полезно знать вашу версию ffmpeg.
Если, как и я, вы снимали в формате 3:2 (мои кадры с D750 имеют разрешение 6016x4016), а вам нужен формат 16:9 (для видео 4k) 3840x2160, вы можете использовать FFMPEG для Pillerbox видео и дополнить черными трамвайными линиями по бокам с помощью этой команды — ffmpeg -i output.avi -qscale 0 -vf "scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:(ow-iw)/2:(oh-ih)/2" output-final.avi - Видео будет больше, но без потери качества, так как это масштабирование
в вашей ffmpegкоманде -sameqопция теперь заменена на-qscale 0

Blender — хорошее решение, если вы имеете дело с таймлапсом движения (гиперлапсом) или неустойчивыми кадрами. Он имеет возможности отслеживания движения, поэтому вы можете выбрать фиксированную точку для отслеживания на протяжении всего таймлапса. Вы также можете исправить проблемы с вращением.

Вас также может заинтересовать проект timelapse-darktable . Это упрощает постобработку изображений с помощью darktable и создание замедленной съемки серии. Инструкции по его использованию можно найти здесь: https://code.google.com/p/timelapse-darktable/wiki/generateTimelapse .

Вы можете использовать менкодер. Параметры довольно явные:

  • перечислите все ваши файлы изображений.

Если все они находятся в текущем каталоге с упорядоченными именами и вам нужен список в файле /tmp/files.txt:

ls -1 *jpg > /tmp/files.txt

  • Используйте mencoder с соответствующей опцией.

Если вы хотите, чтобы выходной файл был /tmp/test.avi со скоростью 30 кадров в секунду:

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt

Kdenlive также может создавать таймлапсы с помощью Add Slideshow Clipменю, как описано в этом руководстве .

Согласно тому же сайту , Openshot имеет аналогичную функциональность, но не рекомендует ее, потому что она «слишком глючная». Тем не менее, если это ваш любимый видеоредактор, вы будете рады узнать, что вы можете просто перетащить последовательность файлов с правильными именами (от 001.jpg до NNN.jpg) в окно Openshot, чтобы также импортировать их в виде таймлапса.

Это руководство от 2014 года. OpenShot многое доказал за последние несколько лет, теперь он намного надежнее.