Объедините несколько файлов JPEG в одно видео
Я захватил изображения из Интернета, пришедшие с интервалом в 1 секунду. Я хотел бы найти способ создать видео из этих изображений. Поскольку камера неподвижна, и могут быть длительные периоды времени, когда изображение не изменится, я хотел бы иметь возможность отказаться от того, что является по существу дублирующими изображениями, чтобы иметь возможность сократить мое получающееся видео.
2 ответа
Это займет все файлы.jpeg в каталоге и создаст видео AVI.
mencoder "mf://*.jpeg" -mf fps=20 -o out.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=640
Обнаружение "дублирующих" изображений добавляет некоторые сложности. findimagedupes
Программа может быть вариантом.
Для анализа сходства между вашими неподвижными изображениями вы можете использовать compare
команда от imagemagick
пакет. Вам, вероятно, понадобится -metric
параметр. Лично я с этим мало играл, но вы можете прочитать об этом здесь:
-metric type
Output to STDERR a measure of the differences between images according
to the type given metric.
Чтобы сделать видео, вы также можете сделать это с avconv
от libav
пакет. Единственный возможный недостаток - это то, что все файлы должны иметь последовательные имена без пробелов, и они должны начинаться с 1. Вам понадобится скрипт для подготовки каталога, прежде чем вы сможете запустить команду.
последовательная ссылка (сценарий! не! написанный мной)
#!/usr/bin/python
""" Create symlinks from a set of paths returned by glob for FFmpeg to read. Thanks to: http://programmer-art.org/articles/tutorials/ffmpeg-time-lapse
"""
import os
import glob
import sys
files = sorted(glob.glob("/home/txoof/temp/779OLYMP/*.JPG"))
outdir = "/home/txoof/temp/output/"
if not os.path.exists(outdir):
os.makedirs(outdir)
for i, f in enumerate(files):
os.symlink(f, os.path.join(outdir, "%06d.jpg" % (i + 1)))
Вам нужно будет вручную отредактировать каталоги в этом скрипте, просто установите каталог, в котором находятся ваши файлы, и каталог, в котором будут находиться ссылки (это может быть временный каталог, который затем будет удален).
После этого у вас будет полный каталог файлов, начинающийся с 000001.jpg, и вы сможете выполнить следующую команду:
avconv -i /home/txoof/temp/output/%06d.jpg -c:v copy -an video.avi