Beaucoup de questions demandant comment créer un gif animé à partir d'un ensemble d'images png suggèrent d'utiliser une variante de la convert
commande ImageMagick :
convert -delay 2 -loop 0 *.png animated.gif
Cependant, j'ai quelques milliers d'images et convert
utilise donc toute ma mémoire, échange, puis plante. Quels logiciels alternatifs existent, qui sont plus sensibles à la mémoire? Je pourrais utiliser un autre format ouvert s'il .gif
n'est pas pris en charge, et je préfère un outil CLI.
command-line
software-recommendation
images
conversion
dotancohen
la source
la source
convert -delay 2 -loop 0 0*.png animated.gif
ne convertiront que les fichiers commençant par un «0». Etc.Réponses:
On dirait que vous essayez de faire une vidéo. Si tel est le cas, j'utiliserais un format vidéo approprié.
Dans ce cas, j'utiliserais ffmpeg pour convertir les fichiers PNG individuels en vidéo H.264. Étant donné que ffmpeg est conçu pour fonctionner avec des vidéos pouvant durer des heures, il ne devrait pas avoir de problème avec vos milliers d'images. En utilisant H.264 au lieu de GIF animés entraînera une grande amélioration de la qualité de l' image.
Quelque chose comme ça devrait fonctionner pour vous:
-framerate 1/2
: Cela définit le framerate à un demi-FPS, ou 2 secondes par image.-i img%04d.png
: Cela indique ffmpeg pour lire les fichiersimg0000.png
bienimg9999.png
.-c:v libx264
: Utilisez le codec vidéo libx264.-crf <number>
: Réglage de qualité. 0 à 51. 23 est la valeur par défaut. 0 est un véritable codage sans perte, qui sera une bande passante assez élevée. 18 est presque sans perte visuelle.-r 30
: Définissez la fréquence d'images de sortie sur 30 FPS. Chacune des images d'entrée sera dupliquée pour faire de la sortie ce que vous spécifiez ici. Vous pouvez laisser ce paramètre désactivé et le fichier de sortie sera à la fréquence d'images en entrée, mais le film résultant ne s'affichait pas correctement lorsque je l'ai essayé tout à l'heure.out.mp4
: Nom du fichier de sortie.Les références:
la source
Personnellement, je le lancerais simplement sur un nombre limité de fichiers au lieu de tous en même temps. Par exemple, quelque chose comme ceci:
la source
Utilisez
-limit memory 1GiB
pour limiter la quantité de mémoireconvert
utilisée.Des milliers d'images créeraient un énorme GIF que la plupart des ordinateurs auront du mal à afficher. Je conserve mes GIF animés en dessous de 200 images lorsque cela est possible. Le moins c'est le mieux. Si vous numérotez vos images, cette commande supprimera les images impaires
rm *[13579].png
.Voici donc mon flux de travail typique pour créer un GIF animé à partir d'une scène de film:
la source
APNG vous est peut-être utile. Il est pris en charge par certains navigateurs , y compris Firefox, mais exclut actuellement Chrome et IE. Comme il ne s'agit que d'une extension PNG, il est très simple de convertir des PNG en APNG. L' outil d' apngasme peut le faire. Mais le format est si simple que j'ai récemment écrit moi-même un assembleur APNG pour Sage. L'adaptation de ce code serait une alternative.
la source
Si vous avez des milliers de png-s, le format anigif est bizarre. Je le ferais de cette façon, en utilisant
avconv
:la source
gifsicle est un utilitaire en ligne de commande pour gérer les animations GIF. Si vous souhaitez échanger de la mémoire contre de la vitesse, vous pouvez utiliser son commutateur --conserve-memory.
la source
En plus d'autres réponses: puisque vous voulez produire un fichier GIF, je suppose que vous voulez afficher l'image sur une page Web. Si c'est le cas, je ne prendrais pas la peine de convertir vos fichiers PNG du tout. Il suffit de google pour "diaporama javascript" et d'utiliser l'un des millions de scripts gratuits. Ou écrivez le vôtre, c'est vraiment trivial.
Les avantages de procéder de cette façon sont les suivants:
une seule image est chargée dans le navigateur à tout moment, le diaporama démarre rapidement et ne consomme pas beaucoup de RAM sur la machine de l'utilisateur.
la solution évolue vers des millions d'images. Ou des milliards, si vous êtes assez patient pour les regarder tous :)
Vous pouvez ajouter des contrôles à votre page pour mettre en pause, rembobiner, modifier le délai ou accéder à un cadre particulier.
la source