Рассмотрим следующий скрипт bash
(в Ubuntu 18.04, melt 6.6.0), который использует melt
для создания слайд-шоу и локального воспроизведения его в окне (потребитель SDL), в основном скопированный из https://mltframework.org/blog/making_nice_slideshows/ (edit: я знаю, что возможно указывать файлы индивидуально, как в https://superuser.com/questions/833232/create-video-with-5-images-with-fadein-out-effect-in-ffmpeg/834035#834035 - но этот подход, кажется, масштабирует изображения во время перехода и требует много времени для «рендеринга» перед воспроизведением в окне SDL, в то время как у этого есть почти мгновенное воспроизведение):
echo "
description=DV PAL
frame_rate_num=25
frame_rate_den=1
width=720
height=576
progressive=0
sample_aspect_num=59
sample_aspect_den=54
display_aspect_num=4
display_aspect_den=3
colorspace=601
" > my-melt.profile
mkdir tmppics
convert -background lightblue -fill blue -size 3840x2160 -pointsize 200 -gravity center label:"Test A" tmppics/pic_01.jpg
convert -background lightblue -fill blue -size 3840x2160 -pointsize 200 -gravity center label:"Test B" tmppics/pic_02.jpg
melt -verbose -profile ./my-melt.profile \
./tmppics/.all.jpg ttl=6 \
-attach crop center=1 \
-filter luma cycle=6 duration=4 \
-consumer sdl
- Когда я запускаю вышеупомянутую команду, видео показывает цикл двух изображений, но счетчик кадров продолжает работать, увеличиваясь бесконечно. Как сделать так, чтобы он останавливался после точного количества кадров, в течение которых цикл длинный?
- Насколько я вижу, размер выходного видео контролируется профилем; то есть, даже если я не укажу
-profile
, предполагается значение по умолчанию; это правильно?
- Исходные изображения выглядят так:
... и видео выглядит так:
... что означает неправильное соотношение сторон; Кроме того, я вижу неровные края, что означает, что масштабированное изображение в видео не сглажено.
Как настроить изображение по размеру видео с правильным соотношением сторон, сглаживанием / сглаживанием? (Я думаю, это связано с -attach crop center=1
, но я не смог найти документацию по этому вопросу).
При просмотре материалов в SDL и пошаговом просмотре кадров, нумеруются ли кадры с нуля, или они основаны на 1, а в кадре 0 отображается просто тот же кадр, что и 1?
Если я использую ttl=6
и -filter luma cycle=6 duration=4
, я получаю это:
... то есть видимый переход начинается в кадре 7 (кадр 6 - полное изображение A), длится для кадров 7 и 8 и заканчивается в кадре 9 (который является полным изображением B); затем снова в кадрах 13 и 14 (кадр 15 - полное изображение A)
Однако, если я использую ttl=6
и -filter luma cycle=6 duration=2
, то получаю это:
... то есть перехода нет, изображение мгновенно изменяется в кадре 7, затем снова в кадре 13 и т. Д.
Итак, в первом случае я бы назвал длительность перехода 2 кадра, а во втором случае - продолжительность 0 кадров - но варианты бывают duration=4
и duration=2
соответственно. Кто-нибудь может объяснить почему? Куда делись эти 2 кадра?
Могу ли я - и если да, то как - сделать то же самое слайд-шоу, кроме с переходом в черный цвет? Я хотел бы определить «время жизни» (ttl) из 6 кадров на изображение и переход из 4 кадров, например:
- сначала показаны 4 кадра изображения A;
- затем одно изображение кадра A исчезло, затем один кадр черного цвета (составляющий 6 кадров TTL для изображения A, последние 2 перехода);
- затем два кадра изображения B исчезли (на 4 кадра переходят с предыдущими 2), за которыми следуют еще два кадра изображения B (так что здесь 4 кадра изображения B);
- затем одно изображение кадра B исчезло, затем один кадр черного цвета (составляющий 6 кадров TTL для изображения B);
... и т. Д.