54 votes

Clarification de l'option d'entrée de ffmpeg avec des fichiers images en entrée

J'ai quelques images et j'aimerais faire un gif animé avec ffmpeg. Les images ont les noms suivants :

837_1.png
838_1.png
...

J'essaie de comprendre la -i option de ligne de commande de ffmpeg mais je me heurte à des problèmes.

Si je ne spécifie 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

La question est donc de savoir comment utiliser la fonction -i option de ligne de commande avec ffmpg ?

Par souci de clarté, je suis sur Mac OSX 10.8, ffmpeg version 1.2.1, zsh 4.3.11.

36voto

yohanson Points 361

La globalisation peut être activée en spécifiant -pattern_type glob option :

ffmpeg -pattern_type glob -i '*.png' -vcodec libx264 out.mp4

10voto

ddjikic Points 101

Note : La globalisation des motifs ne fonctionne pas sous Windows (et ne fonctionnera peut-être jamais en raison de l'absence de support pour la globalisation dans libavfilter sous Windows). Donc, si vous faites cela sous Windows, vous devrez renommer les fichiers de façon à ce qu'ils soient numérotés séquentiellement et sans espace.

Vous pouvez les renommer à l'aide d'une simple ligne de commande Powershell :

dir *.jpg | %{$x=0} {Rename-Item $_ -NewName “Base$x”; $x++ }

10voto

pBac Points 91

Meilleure façon de renommer avec PowerShell (conserver l'ordre) :

dir *.jpg | %{$x=0} {Rename-Item $_ -NewName "Base$($x.tostring('000000')).jpg"; $x++ }

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X