Quick Tipp: Video zu Gif mittels FFmpeg

von Andreas Scheidmeir
Quick Tipp

Wenn man z.B. für einen Blogpost aus dem vom iOS Simulator aufgenommenen MP4-Video ein Gif erstellen will, kann man auf diverse Online-Konverter zurückgreifen. Aber geht das auch lokal auf dem Rechner? Klar, zum Beispiel mit dem Kommandozeilentool FFmpeg:

ffmpeg -ss 0 -t 1.5 -i shimmer.mp4 -vf "fps=20,scale=250:-1:flags=lanczos" -loop 0 shimmer1.gif

Kurz zu dem Befehl:

  • -ss und -t stehen für Startpunkt und Dauer des Inputs, der verarbeitet werden soll:
    In unserem Fall von 0s bis 1,5s.
  • -i shimmer.mp4 beschreibt den Video-Input, aus dem das Gif erstellt wird.
  • -vf ist der verwendete Filtergraph: Hier definieren wir die FPS und skalieren den Output auf 250px Breite, -1 setzt die Höhe automatisch proportional und das flag=lanczos definiert den Skalierungsalgorithmus.
  • -loop 0 setzt das Gif auf dauerhafte Wiederholung, -1 würde es deaktivieren. Alle positiven Werte geben entsprechend an, wie oft das Gif loopt.

Das Ergebnis sieht man rechts.

In diesem Beispiel leidet aber die Qualität. Das Format Gif nutzt hier eine Standartpalette mit 256 Farben. Für alles dazwischen wird auf Dithering zurückgegriffen, daher das markante Punkteraster.

Wer eine höhere Bildqualität auf Kosten von etwas mehr Speicherplatz will, kann eine eigene Palette erzeugen lassen, indem der Befehl wie folgt erweitert wird:

ffmpeg -ss 0 -t 1.5 -i shimmer.mp4 -vf "fps=20,scale=250:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 shimmer2.gif

Die neuen Keywords palettegen und paletteuse sorgen dafür, dass eine Palette spezifisch für den gegebenen Video-Stream erzeugt und angewendet wird. Split sorgt dafür, dass jeder Frame übergeben wird und damit alles in einem Befehl passiert.

Damit steigt die Dateigröße von 63KB auf 250KB an, aber - wie im Ergebnis rechts zu sehen - auch die Qualität deutlich.

Wer tiefer in die Theorie dahinter einsteigen und mit den verschiedenen Optionen, die palettegen und paletteuse noch unterstützen, spielen will, sollte einen Blick in diesen Blogpost werfen.

Zurück

© 2006-2024 exensio GmbH
Einstellungen gespeichert

Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
You are using an outdated browser. The website may not be displayed correctly. Close