Преобразование ненумерованных изображений в видео с помощью avconv

250
Rodrigo

У меня есть много фотографий, из которых я хочу снять фильм. Проблема в том, что они не следуют обычному порядку номеров. Они пришли с камеры моего смартфона, но некоторые были захвачены в ту же секунду, поэтому их имена (например):

20180708_173141.jpg 20180708_173142.jpg 20180708_173142(0).jpg 20180708_173143.jpg 20180708_173145.jpg 

Я думаю, что я должен сделать что-то вроде

avconv -r 10 -i 20180708_%06d.jpg test.avi 

но я не могу использовать 20180708_%06d.jpg, потому что третий файл выше будет игнорироваться. Я пытался с помощью

avconv -r 10 -i 20180708*.jpg test.avi 

но он говорит, что второй файл в списке уже существует, спрашивая меня, хочу ли я перезаписать его.

Что я должен делать?

РЕДАКТИРОВАТЬ: я использую Linux Debian 9 (Stretch) 64-разрядных.

0
В Windows просто сделайте * копию * (поместите оригиналы в безопасное место) всех файлов, выберите их в нужном вам порядке и в проводнике выберите * Переименовать *. Если вы оставите исходное поле пустым, они будут названы (1) .jpg, (2) .jpg и т. Д. См. Https://www.howtogeek.com/111859/how-to-batch-rename-files-in. -windows-4-пути к переименованию-несколько-файлов / DrMoishe Pippik 6 лет назад 0
@DrMoishePippik Извините, я забыл упомянуть, что использую Linux, отредактировал вопрос, чтобы решить эту проблему. Ваше решение будет создавать файлы с переменным числом цифр: (1), (2) ... (9), (10), (11) ... (99), (100), (101) ... Я думаю, что у avconv все еще будут проблемы с этим. Rodrigo 6 лет назад 0
Кстати, программа Windows IrfanView (которая прекрасно работает в Wine ... это один из очень немногих исполняемых файлов Windows, которые я использую в Linux) имеет пакетное переименование, которое может указывать формат фиксированной длины, такой как 0001.jpg, 0002.jpg и т. Д. DrMoishe Pippik 6 лет назад 0
@DrMoishePippik Спасибо. Вчера я закончил создание сценария bash. Смотрите ответ, который я разместил. Rodrigo 6 лет назад 0

1 ответ на вопрос

0
Rodrigo

Я создал bash-скрипт для числового переименования всех файлов ( отсюда ).

EII=1 for i in $(ls *.jpg) do NEWNAME=IMG_`printf "%3d" $EII`.JPG mv $i $NEWNAME EII=`expr $EII + 1` done 

Тогда я мог бы подать заявку

avconv -r 10 -i IMG_%3d.jpg test.avi 
Остается еще один вопрос: если бы мне нужно было изменить положение некоторых изображений, скажем, переместить 030 между 040 и 041, я мог бы переименовать его в 040a, но как тогда с этим подойдет `avconv`? Или я должен переименовать все файлы между 030 и 040, чтобы перемещенное изображение могло уместиться на место? Я действительно не могу использовать подстановочные знаки, такие как *? Rodrigo 6 лет назад 0