Mam kilka zdjęć i chciałbym zrobić animowany gif z ffmpeg. Obrazy mają nazwy:
837_1.png
838_1.png
...
Próbuję nie zrozumieć opcji wiersza polecenia -i programu ffmpeg, ale zawieszam się przy niektórych problemach.
Jeśli nic nie podam, poprosi mnie o zastąpienie plików:
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]
A jeśli spróbuję użyć jednego z najczęściej używanych formatów (% d) w Internecie .. ffmpeg nie znajdzie plików:
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
Więc .. oto pytanie, jak korzystać z opcji wiersza polecenia -i z ffmpg?
Dla jasności jestem na Mac OSX 10.8, ffmpeg wersja 1.2.1, zsh 4.3.11
image2
nie rozpoznaje, że200 OK
jest to odpowiednik „znalezionego pliku”, więc nie przestaje szukać.DSCxxxxx.jpg
gdziexxxxx
jest 5-cyfrowy numer rozpoczynający się od zera (uwaga: nie mam podkreślników). Mimo to po uruchomieniuffmpeg -r 30 -start_number 04606 -i DSC%d.jpg out.mp4
pojawia się ten sam błąd, co w oryginalnym poście powyżejGlobowanie można włączyć, określając
-pattern_type glob
opcję:źródło
xxx%d.png
,xxx%3d.png
,'xxx%d.png'
lub'xxx%3d.png'
coś roboczego[image2 @ 0x2552560] Could find no file with path '*.jpg' and index in the range 0-4 *.jpg: No such file or directory
Uwaga: Globowanie wzorców nie działa w systemie Windows (i może nigdy nie być spowodowane brakiem obsługi globowania w libavfilter w systemie Windows.) Jeśli więc robisz to w systemie Windows, będziesz musiał zmienić nazwy plików, aby były kolejno numerowane i bez luk.
Możesz zmienić ich nazwę za pomocą prostego wiersza polecenia Powershell:
źródło
file1.jpg
file2.jpg
file10.jpg
file1.jpg
file10.jpg
file2.jpg
lepszy sposób zmiany nazwy za pomocą programu PowerShell (zachowaj kolejność):
źródło
dir
zawsze zwraca pliki posortowane alfabetycznie? Czy bezpieczniej byłoby dodaćsort-object
miks do miksu?