MLT (Media Lovin' Toolkit) Фото слайд-видео
Я использую MLT из командной строки на серии изображений. Когда я бегу:
melt 0.jpg 1.jpg 2.jpg 3.jpg
Он генерирует видео, где каждая фотография занимает один кадр (видео длиной 4 кадра). Я хочу, чтобы каждая фотография занимала 100 кадров. Я пробовал каждую комбинацию свойств, которые я могу придумать, например:
melt 0.jpg out=100 1.jpg in=100 out=200 2.jpg in=200 out=300
и т.п.
Но результаты не такие, как задумано. Я также пытался организовать в треки и плавления из файла XML. В лучшем случае мне удалось показать фотографию на первом заданном кадре, а затем на 99 пустых кадрах.
Какова лучшая практика для увеличения видимой длины фотографий? Для простого примера я хотел бы иметь один трек с 10 фотографиями, где каждая фотография организована в последующие кадры по 100 кадров. Со временем я буду комбинировать видео и фотографии.
При работе с видео у меня не было проблем, и я понимаю, что in
а также out
свойства предназначены для видео, но я не смог найти ни одного примера того, как увеличить видимую длину производителей изображений.
Спасибо за любые идеи или советы! Я очень рад изучать этот удивительный инструмент.
2 ответа
Волшебство, которое вы ищете, это "ttl". Установите для параметра ttl количество кадров, которое вы хотите, чтобы изображение сохранялось.
melt .all.jpg ttl=100
Несколько отличных примеров здесь:
https://github.com/mltframework/mlt/blob/master/demo/mlt_slideshow
https://github.com/mltframework/mlt/blob/master/demo/mlt_slideshow2
https://github.com/mltframework/mlt/blob/master/demo/mlt_slideshow_black
Также интересный пост в блоге здесь:
http://mltframework.blogspot.com/2010/08/making-nice-slideshows.html
ОБНОВИТЬ:
Синтаксис *.jpg у меня не работает. Я уверен, что вы должны использовать ".all.jpg". Кажется, у вас могут быть некоторые проблемы с вашей установкой. Вот несколько вещей, чтобы попробовать...
MLT имеет несколько модулей, которые могут обрабатывать изображения. Если вы не укажете модуль, MLT выберет его для вас. Попробуйте явно указать оба модуля и посмотрите, работает ли один лучше другого:
melt pixbuf:.all.jpg ttl=100
а также:
melt qimage:.all.jpg ttl=100
Также, возможно, попробуйте добавить цитаты?
melt pixbuf:".all.jpg" ttl=100
Все вышеперечисленное работает для меня.
если все вышеперечисленное завершится неудачно, попробуйте перечислить всех производителей и проверьте pixbuf и qimage:
melt -query producers
Я использую Ubuntu, поэтому я не собираюсь сильно помогать, если это специфическая проблема OSX. Но я могу сказать вам, что MLT абсолютно необходимо скомпилировать с использованием qt или gtk, чтобы получить поведение изображения, которое вы ищете.
Это работает для вас?
melt \
0.jpg length=100 \
1.jpg length=100 \
2.jpg length=100
Этот метод может быть лучше, если вы ищете немного больше контроля (если вы хотите, чтобы одно изображение длилось 200 кадров, а другое - 50 кадров).
Однако, если это не имеет значения, метод Брайана гораздо удобнее, если все ваши изображения заканчиваются на.jpg.
Когда вы используете in=200 out=300
это означает, что ваше изображение начинается в кадре 200, а заканчивается в кадре 300.
Поскольку это изображение, нет необходимости запускать его в кадре 200. Если бы это было видео, то вы пропустили бы первые 199 кадров, и оно закончится в кадре 300. Надеюсь, это было ясно!