Я только начинаю с FFMPEG и пытаюсь использовать его для создания слайд-шоу. В идеале, я хотел бы получить его, где я могу ввести произвольное количество изображений, и каждое изображение показывается (например) 2 секунды, и они переходят к следующему. Каждое изображение также сохраняет свое исходное соотношение сторон и никоим образом не растягивается (конечно, его можно увеличивать / уменьшать для соответствия разрешению выходного видео).
Я начал с базовой команды, подобной следующей.
ffmpeg -r 1/9 -pattern_type glob -i "*.jpg" -c:v libx264 -y -pix_fmt yuv420p -vf scale="720:trunc(ow/a/2)*2" out.mp4
В этом примере первое изображение представляет собой широкое (альбомное) изображение, а некоторые другие представляют собой высокие (портретные) изображения. Портретные получаются сплющенными в выходном видео. Также изображения не отображаются одинаковое количество раз.
Несколько проблем, с которыми я столкнулся:
- Существует ошибка для
width not divisible by 2
, потому что изображения могут быть буквально любой произвольной ширины. Чтобы решить эту проблему, я пробовал различные варианты -vf
, которые я нашел через поиск в Google (например, выше). Они позаботятся об ошибке, но не решат мою проблему с соотношением сторон.
- Все изображения кажутся растянутыми или согнутыми, чтобы соответствовать размерам первого входного изображения. На самом деле изображения имеют разные размеры (например, кадры в комиксах). Для них нет образца.
Существует ли команда ffmpeg
, позволяющая просто делать снимки и создавать их в виде слайд-шоу, сохраняя при этом их исходные пропорции?