J'ai quelques images et je voudrais faire un gif animé avec ffmpeg. Les images ont des noms comme:
837_1.png
838_1.png
...
J'essaie de comprendre l' option de ligne de commande -i de ffmpeg mais je me plante contre certains problèmes.
Si je ne précise rien, il me demande de remplacer les fichiers:
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]
Et si j'essaie d'utiliser l'un des formats les plus utilisés (% d) sur Internet .. ffmpeg ne trouve pas les fichiers:
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
Alors .. voici la question, comment utiliser l' option de ligne de commande -i avec ffmpg?
Par souci de clarté, je suis sur Mac OSX 10.8, ffmpeg version 1.2.1, zsh 4.3.11
image2
ne parvient pas à reconnaître que200 OK
c'est l'équivalent de «fichier trouvé», il n'arrête donc pas la recherche.DSCxxxxx.jpg
oùxxxxx
est un nombre à 5 chiffres commençant par zéro (notez que je n'ai pas de soulignement). Pourtant, après avoir couru,ffmpeg -r 30 -start_number 04606 -i DSC%d.jpg out.mp4
j'obtiens la même erreur que dans le message d'origine ciLa globalisation peut être activée en spécifiant l'
-pattern_type glob
option:la source
xxx%d.png
,xxx%3d.png
,'xxx%d.png'
ou'xxx%3d.png'
travail chose[image2 @ 0x2552560] Could find no file with path '*.jpg' and index in the range 0-4 *.jpg: No such file or directory
Remarque: la globalisation de modèle ne fonctionne pas sous Windows (et peut-être jamais en raison du manque de prise en charge de la globalisation dans libavfilter sous Windows.) Donc, si vous le faites sous Windows, vous devrez renommer les fichiers afin qu'ils soient numérotés séquentiellement et sans lacunes.
Vous pouvez les renommer avec une simple ligne de commande Powershell:
la source
file1.jpg
file2.jpg
...file10.jpg
qui si vous triez par ordre alphabétique se retrouveraitfile1.jpg
,file10.jpg
...file2.jpg
meilleure façon de renommer avec PowerShell (conserver l'ordre):
la source
dir
retourne toujours les fichiers par ordre alphabétique? Serait-il plus sûr d'ajouter unsort-object
dans le mélange?