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

19

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

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

Ответы:

11

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

ffmpeg -i img*.jpg output.mpeg

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

Unapiedra
источник
Использование этого приводит к ошибке для меня, так как он рассматривает последние .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.
anarcat
С другими версиями ffmpeg следующая версия работает без попыток переопределения изображений:ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
Патрик Р.
9

Сначала мы переименовываем все файлы * .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 = уменьшение, pad = 3840: 2160: (ow-iw) / 2: (oh-ih) / 2" output-final.avi - Видео будет больше, но без потери качества, так как это уменьшает масштаб
Роб
в вашей ffmpegкоманде -sameqопция теперь заменена на-qscale 0
transang
3

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

Рид Г. Лоу
источник
0

Вы можете использовать mencoder. Варианты вполне эксплицитны:

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

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

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

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

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

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

Ману Н
источник
0

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

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

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