Gibt es ein Tool zum Erstellen einer gif
Animation aus einer Reihe von png
Dateien?
Ich habe den convert
Befehl aus der ImageMagick- Suite ausprobiert , aber das gelingt nicht immer. Ich habe auch einige Probleme damit:
- Ich kann nicht sagen, was der Fortschritt ist.
- Egal was ich versuche, die
-delay
Flagge ändert nicht die Framerate der GIF-Animation. convert
bestimmt die Frame-Reihenfolge basierend auf der alphabetischen Reihenfolge der Dateinamen. Dies bedeutet, dassname500.png
direkt danachname50.png
und nicht danach platziert wird, nachdemname450.png
ich dies durch Hinzufügen von Nullen beheben kann, dies ist jedoch ärgerlich.
graphics
conversion
imagemagick
Yotam
quelle
quelle
convert
nach dem Sortieren der Dateien noch verwenden . Wahrscheinlich funktioniert so etwasfiles=$(ls name*png | sort -n -tname -k1); convert $files animation.gif
-monitor
Parameter, der den Prozess verfolgtAntworten:
Sie können auch versuchen
ffmpeg
, einen Film aus einer Folge von Bildern zu erstellen und den Film dann in eine GIF-Animation umzuwandeln (erneut verwendenffmpeg
).quelle
sameq
Option ist nicht mehr verfügbar. Außerdem werden bei mir die ursprünglichen Bilddateien überschrieben und es wird keine gültige Filmdatei erstellt.-sameq
Code dort zu belassen? Warum möchten Sie überhaupt ein verlustbehaftetes Videoformat (output.mp4
) als temporäres Format verwenden ? Und wenn ja, warum "gleiche Qualität" wie die Eingabe anstelle einer sehr hohen Bitrate? Ein solches Artefakt wird die Situation für den GIF-Encoder nur verschlimmern. Wenn Sie ein Video als temporäres Medium benötigen, möchten Sie etwas verlustfreies wie huffyuv verwenden. Oder MJPEG ohne Transcodierung, einfach die Eingabe-JPEGs in ein MJPEG umwandeln. (-codec:video copy
).convert
ist ein praktisches Kommandozeilen-Tool, um das zu tun.cd
in den Ordner Ihrer enthält png -Dateien und diesen Befehl ausführen:Quelle: http://ubuntuforums.org/showthread.php?t=1132058
quelle
convert
und einige Probleme bei der Verwendung. Ihre Antwort spricht keine von ihnen an.6.8.7-4 2013-11-02 Q16
dies bei mir funktioniert.10
bedeutet aber 10 * 10ms, also ziemlich schnell. Eine Verzögerung von a100
beträgt 1 Sekunde.-dispose previous
oder-dispose 2
wenn Sie mit transparenten PNGs arbeitenpic_{0..20..2}.png
zu erweitertpic_0.png
, denpic_2.png
ganzen Weg zupic_20.png
Die Option
convert
's'--delay
gilt nur für das nächste Bild in der Befehlszeile. Setzt alsoconvert -delay 10 *
nur die Verzögerung des ersten Frames auf 0,1 Sekunden. Die Option muss wiederholt werden:Beim Konvertieren werden keine Frames sortiert, bei der Shell-Globierung hingegen
*
nicht. Wenn Sie wissen, dass Ihre Frames von 0 bis 700 nummeriert sind, können Sie die Zahlen einfach selbst berechnen:quelle
convert
, bei mirconvert -delay 1000 -loop 0 *.png animation.gif
kommt eine Verzögerung von 10s zwischen jedem Bild hinzu.ls
Befehls verwenden. Das heißt:convert -delay 1000 $(ls -v name*png) output.gif
Aktualisieren:
Verwenden Sie
convert
für das Png-to-Gif und dann Gifsicle für die Animation. Es ist keine One-App-To-Do-It-All-Lösung, aber auf jeden Fall skriptfähig.GIMP kann animierte GIFs erstellen und ermöglicht die Steuerung von Timing / Delay und Repeat usw
quelle
ImageMagick kann eine hochwertige GIF-Animation erzeugen. Sehen Sie sich dieses Video an - http://www.youtube.com/watch?v=OFusYizJ-bA
quelle
convert -delay 200 -loop 0 *.jpg output.gif
ffmeg wichtige GIF-Optionen + Testdaten
Um diese Antwort zu ergänzen :
Die Testdaten wurden generiert mit: https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
Die wichtigen
ffmpeg
Optionen, die ich hervorheben wollte, sind:-patter_type glob
: Bequeme Methode zum Auswählen von Bildern-framerate 60
und-r 15
: Nehmen Sie 60 FPS für Eingabebilder an (ffmpeg
kann es nicht anders wissen, da in Bildern keine FPS-Daten wie in Videoformaten enthalten sind), wählen Sie alle 4 Bilder eines aus, um die Größe zu verringern (4 == 60 / 15
).-vf scale=512:-1
: Stellen Sie die Breite und Höhe proportional ein, um die Größe zu verringern und Platz zu sparenSiehe auch:
Getestet in Ubuntu 18.10, ffmpeg 4.0.2.
quelle
Zu Punkt 2
Die von mir verwendete Version von ImageMagick "display" (ImageMagick 6.7.2-7 2017-01-12) ignoriert die mit dem Befehl convert festgelegte Bildrate, um das animierte GIF zu erstellen. Versuchen Sie ein anderes Programm, um das animierte GIF wie Firefox anzuzeigen.
quelle