J'ai un tas d'images qui suivent ce modèle.
0001.png
0004.png
0007.png
0010.png
0013.png
0016.png
0019.png
...
Ils sont dans le bon ordre, mais FFMPEG ignore tout après le premier fichier, car il ne trouve pas de fichier 0002.png
. Comment puis-je le faire joindre ces fichiers?
j'ai essayé
ffmpeg -i %04d.png out.avi
Réponses:
avec ffmpeg 0.11.1 c'est aussi simple que:
Depuis la
man
page, dans un exemple sous "Conversion de format de fichier vidéo et audio":Mise à jour par commentaires: sur les versions récentes, vous devez maintenant utiliser la
-i '*.png'
syntaxe.la source
glob_sequence
type de modèle est déconseillé, mais pas leglob
type de modèle. La réponse de Mulvya et Peter Cordes fonctionne.Pattern type 'glob_sequence' is deprecated: use pattern_type 'glob' instead
Pattern type 'glob_sequence' is deprecated
...): la commande donnée par rymo ci-dessus (spécifiquement,-i %*.png
) provoquera l'avertissement. Pour l'éliminer, utilisez la syntaxe légèrement différente dans la réponse de Peter Cordes (-i '*.png'
).Outre la solution de contournement dans mon commentaire, vous devriez pouvoir utiliser cette syntaxe de la documentation ffmpeg :
Les guillemets sont importants, vous avez besoin de ffmpeg pour voir le
*
, ne pas avoir le shell le développer.la source
*.png
des guillemets simples (donc'*.png'
) pour éviter qu'il ne soit étendu par des shells de style Unix (donc, OSX et linux, etc.).Depuis http://www.ffmpeg.org/faq.html : Si vous avez un grand nombre d'images à renommer, vous pouvez utiliser la commande suivante pour alléger le fardeau. La commande, en utilisant la syntaxe du bourne shell, lie symboliquement tous les fichiers du répertoire courant qui correspondent à * jpg au répertoire '/ tmp' dans la séquence 'img001.jpg', 'img002.jpg' et ainsi de suite.
x=1; for i in *jpg; do counter=$(printf %03d $x); ln -s "$i" /tmp/img"$counter".jpg; x=$(($x+1)); done
la source
seqA-[0001-n].png
,seqB-[0001-n].png
etc. Beaucoup plus facile que de jouer avec le globbing image2 et le filtre de concaténation.for i in *jpg
avecfor i in /full/path/*jpg
, parce que tous les liens symboliques ont été briséesJe suggérerais en fait la même chose que Mulvya a suggéré. Chaque fois que j'ai eu besoin de faire des choses comme celle-ci lors du traitement des rendus d'animation 3D, j'ai renommé les fichiers pour les rendre séquentiels. Il est juste plus facile de travailler de cette façon dans de nombreux logiciels différents, sauf si vous devez conserver les noms de fichiers pour une raison quelconque. Total Commander est également un excellent outil pour le multi-renommage.
la source
Pour la partie de séquence manquante, j'ai utilisé 2 doublures
J'espère que cela aidera quelqu'un à l'avenir
la source