Мне нужно преобразовать папку с изображениями с ненумерованными именами, например:

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 ответа2

2

хорошо, по-видимому, FFMPEG поддерживает подстановку имен, из ffmpeg.org/wik

ffmpeg также поддерживает глобирование в стиле bash (* обозначает любое количество любых символов). Это полезно, если ваши изображения являются последовательными, но не обязательно в числовом последовательном порядке, как в предыдущих примерах.

ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4
0

Если вы работаете в Unix/Linux, эта строка сценария bash переименует каталог файлов изображений в серию последовательных имен, которые будут работать с ffmpeg. По сути, он создает в памяти буфер всех существующих имен файлов, а затем проходит по каждому имени, перемещая их в пошагово пронумерованное имя (в том же каталоге.

x=1; for i in *jpg; do counter=$(printf %03d $x); mv "$i" img"$counter".jpg; x=$(($x+1)); done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .