У меня есть несколько изображений, и я хотел бы сделать анимированный GIF с ffmpeg. Изображения имеют названия как:
837_1.png
838_1.png
...
Я пытаюсь понять параметр командной строки -i в ffmpeg, но сталкиваюсь с некоторыми проблемами.
Если я ничего не укажу, он попросит меня заменить файлы:
ffmpeg -i * -vcodec libx264 out.mp4
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 26 2013 20:18:03 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, image2, from '358_1.png':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0:0: Video: png, rgb24, 550x550, 25 tbr, 25 tbn, 25 tbc
File '359_1.png' already exists. Overwrite ? [y/N]
И если я пытаюсь использовать один из наиболее часто используемых форматов (% d) в интернете ... ffmpeg не находит файлы:
fmpeg -i '%3d_1.png' -vcodec libx264 out.mp4
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 26 2013 20:18:03 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[image2 @ 0x7f963a006600] Could find no file with with path '%3d_1.png' and index in the range 0-4
%3d_1.png: No such file or directory
Итак ... вот вопрос, как использовать параметр командной строки -i с ffmpg?
Ради ясности я на Mac OSX 10.8, ffmpeg версии 1.2.1, zsh 4.3.11
image2
не менее, не может распознать, что200 OK
является эквивалентом «файл найден», поэтому он не прекращает поиск.DSCxxxxx.jpg
гдеxxxxx
5-значный номер, начинающийся с нуля (обратите внимание, у меня нет подчеркивания). Тем не менее, после запускаffmpeg -r 30 -start_number 04606 -i DSC%d.jpg out.mp4
я получаю ту же ошибку, что и в оригинальном посте вышеGlobbing можно включить, указав
-pattern_type glob
опцию:источник
xxx%d.png
,xxx%3d.png
,'xxx%d.png'
или'xxx%3d.png'
вещь , рабочий[image2 @ 0x2552560] Could find no file with path '*.jpg' and index in the range 0-4 *.jpg: No such file or directory
Примечание. Подстановка шаблонов не работает в Windows (и, возможно, никогда из-за отсутствия поддержки подстановки в libavfilter в Windows.) Поэтому, если вы делаете это в Windows, вам придется переименовывать файлы, чтобы они были пронумерованы последовательно. и без пробелов.
Вы можете переименовать их с помощью простой командной строки Powershell:
источник
file1.jpg
file2.jpg
...file10.jpg
что, если вы сортируете в алфавитном порядке, в конечном итогеfile1.jpg
,file10.jpg
...file2.jpg
лучший способ переименовать с помощью PowerShell (сохранить порядок):
источник
dir
Всегда ли файлы возвращаются в алфавитном порядке? Было бы безопаснее добавитьsort-object
в смесь?