Video in animiertes Gif konvertieren

convert-to-gif – Ein Skript um Videos in animierte Gifs zu konvertieren

Bascht hat ein Ruby-Skript geschrieben mit dem sich spielerisch Videos in animierte Gifs konvertieren lassen. Es heißt convert-to-gif und wird über die Konsole bedient.

Da die Konvertierung über die Konsole abgewickelt wird, öffnest Du diese am Besten direkt, und wechselst als erstes in den Downloads-Ordner.

$ cd ~/Downloads

Dann lädst Du das Skript mit folgendem Befehl herunter:

$ curl -O https://raw.githubusercontent.com/bascht/dotfiles-public/master/home/bin/convert-to-gif

und machst es ausführbar

chmod +x convert-to-gif

und verschiebst es in ein geeignetes Verzeichnis.

$ sudo mv convert-to-gif /usr/local/bin

Nun ist das Skript ausführbar und liegt im richtigen Verzeichnis.

Um ein Video zu konvertieren benötigt es ImageMagick und ffmpeg. Bevor Du eines dieser Tools installierst, testest Du am Besten kurz ob schon eine Version davon bei Dir läuft:

ImageMagick

$ convert -version

ffmpeg

$ ffmpeg -version

Falls die Tools auf Deinem System fehlen, kannst Du sie leicht mit Homebrew installieren:

$ brew install imagemagick
$ brew install ffmpeg

Nun hast Du alle notwendigen Vorbereitungen getroffen und kannst Dein Video in ein animiertes gif konvertieren. Das machst Du mit folgender Befehl:

$ convert-to-gif Dateiname [Breite] [FPS]

Der erste Parameter den Du an das Skript übergibst ist der direkte Pfad zur Datei die Du konvertieren möchtest. Ich ziehe dafür den Film direkt in die Konsole. Der zweite Parameter bezeichnet die Bereite der Datei, die Du ohne Einheit einträgst. Und als Drittes kannst Du die Framerate festlegen. Dieser Wert beeinflusst zum Einen die Flüssigkeit der Animation aber auch die Dateigröße.

Parameter zwei und drei sind optional. Trägst Du dafür keinen Wert ein, verwendet das Skript die Standardwerte 400 und 10. Es erzeugt dann ein animiertes gif mit einer Breite von 400 Pixeln und 10 FPS.

convert-to-gif, ein Skript von @bascht um Videos in animierte Gifs zu konvertieren

Reagiere darauf

*