Обработка последовательности изображений в ffmpeg
Мне нужно преобразовать папку с изображениями с ненумерованными именами, например:
11.49.18.204.jpg
11.49.28.205.jpg
11.49.38.220.jpg
11.49.48.220.jpg
11.49.58.235.jpg
11.50.08.250.jpg
FFMPEG
принимает только пронумерованные входы. Оригинальные имена файлов важны для меня. Настолько, что я планирую наложить их на видео-канал. Я думаю, что мне нужно использовать ввод субтитров SRT с опцией наложения текста.
Я хотел бы знать, как я могу сделать эту работу.
Например, это не будет работать
ffmpeg -i *.jpg
2 ответа
Хорошо , по-видимому, FFMPEG поддерживает подстановку имен, с ffmpeg.org/wik
ffmpeg также поддерживает глобирование в стиле bash (* обозначает любое количество любых символов). Это полезно, если ваши изображения являются последовательными, но не обязательно в числовом последовательном порядке, как в предыдущих примерах.
ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4
Если вы работаете в Unix/Linux, эта строка сценария bash переименует каталог файлов изображений в серию последовательных имен, которые будут работать с ffmpeg. По сути, он создает в памяти буфер всех существующих имен файлов, а затем проходит по каждому имени, перемещая их в пошагово пронумерованное имя (в том же каталоге.
x=1; for i in *jpg; do counter=$(printf %03d $x); mv "$i" img"$counter".jpg; x=$(($x+1)); done