Der französische Ffmpeg-Entwickler Clément Bœsch erklärt in seinem Blog, wie er den GIF-Support für Ffmpeg 2.6 deutlich verbessern konnte.
Bereits 2013 habe er versucht, durch die Zugabe von Transparenzmechanismen das Bewegtbildformat in halbwegs akzeptabler Form in Ffmpeg zu integrieren. Das resultierte zumindest darin, dass die auf diesem Weg erzeugten GIFs deutlich kleiner waren als zuvor.
Für seine App Legend benötigte er jedoch qualitativ hochwertige GIFs. In seinem Blogpost beschreibt er die technischen Ideen, die in dem verbesserten GIF-Support für Ffmpeg stecken. Dazu gehört unter anderem, dass Ffmpeg im ersten Schritt aus dem Ausgangsmaterial eine globale Farbpalette für das GIF generiert, anstatt auf die übliche GIF-Palette zurückzugreifen. Bei der Farbreduktion hilft der Filter “palettegen”.
In einem zweiten Schritt kommt der “paletteuse”-Filter zum Zug. Er erzeugt auf Basis der Palette einen farbquantisierten Stream und sucht jeweils die der Eingabefarbe am ehesten entsprechende Farbe heraus. Zugleich entscheidet der Filter über eine adäquate Dithering-Methode, wobei fünf davon zur Auswahl stehen.
Die Unterschiede sind deutlich sichtbar, Bœsch visualisiert sie anhand einer Szene aus dem Film Big Buck Bunny. Zugleich bietet der Autor ein Skript an, dass aus einer MKV-Quelle ein GIF erzeugt. Zugleich gibt er ein paar Tipps, wie sich GIFs einfacher erzeugen lassen. Wer das selbst ausprobieren möchte, greift zu Ffmpeg ab Version 2.6.





