gifs
ich habe eine seite angelegt, auf der alle gifs aufgelistet sind, die ich hier auf wirres.net bisher benutzt habe: alle gifs auf wirres.net
eigentlich nutze ich schon lange keine gifs mehr, sondern loope kleine video-dateien (ein mp4 mit den attributen autoplay loop muted playsinline). das klappt in fast allen modernen browsern und ist effektiver als gifs, die meist ein mehrfaches an dateigrösse mitbringen. das machen die grossen plattformen auch schon seit längerer zeit (ca. 2014 fing twitter damit an).
aber ich habe jetzt wieder angefangen gifs zu benutzen als fallback für die video-dateien im RSS-feed. da die meisten anbieter von rss-readern video-attribute ausfiltern, funktionieren die videodateien im feed meistens nicht. also gebe ich per RSS gifs, statt video-loops aus — wenn ich nicht vergesse das gif-fallback zu erzeugen und hochzuladen.
ein mp4 zu einem anständigen gif umwandeln geht mit diesem script ganz einfach (wenn ffmpeg installiert ist):
#!/usr/bin/env bash
set -euo pipefail
if [ $# -lt 1 ]; then
echo "Usage: $0 input.mp4 [fps] [width]" >&2
exit 1
fi
INPUT="$1"
FPS="${2:-15}" # Default: 15 fps
WIDTH="${3:-640}" # Default: 640px Breite
if [ ! -f "$INPUT" ]; then
echo "Input file not found: $INPUT" >&2
exit 1
fi
BASENAME="$(basename "$INPUT")"
NAME="${BASENAME%.*}"
# temporäre Palette
PALETTE="$(mktemp "/tmp/${NAME}_palette_XXXX.png")"
OUTPUT_GIF="${NAME}.gif"
# Palette erzeugen
ffmpeg -y -i "$INPUT" \
-vf "fps=${FPS},scale=${WIDTH}:-1:flags=lanczos,palettegen" \
"$PALETTE"
# GIF erzeugen
ffmpeg -y -i "$INPUT" -i "$PALETTE" \
-lavfi "fps=${FPS},scale=${WIDTH}:-1:flags=lanczos[x];[x][1:v]paletteuse" \
"$OUTPUT_GIF"
rm -f "$PALETTE"
echo "$OUTPUT_GIF"
das script analysiert zuerst die farben des videos und passt die (eingeschränkte) farbpalette für das gif entsprechend an.
beispiel:
das schöne an gifs ist, dass sie (weiterhin) überall funktionieren. andererseits funktionieren mp4s auch fast überall, ich kann sie bei bluesky hochladen und in den meisten mastodon cients werden sie auch bewegt angezeigt. aber trotzdem fand ich es (für mich) praktisch eine übersicht über meine verwendeten echten gifs zu haben.
und kein artikel über gifs, in dem ich nicht auf das nach wie vor grossartige, 2015 eingestellte IF WE DON'T, REMEMBER ME. (iwdrm), wo irgendwer mit viel geduld subtil bewegte einzelbilder animierte und als gifs veröffentlichte. ich bin nach wie vor ein sehr grosser fan dieser animationen.
mein workflow um „live fotos“ vom iphone hier zu posten geht übrigens so:
- live foto auf dem iphone zu einer „endlosschleife“ machen
- airdrop auf den laptop (kommt als mp4 an)
- mp4 in pixelmator öffnen und auf ca. 1000-1500 px breite skalieren
- optimiertes jpg als poster-bild speichern
- mp4 in pixelmator als optimiertes mp4 speichern (oder mit ffmpeg oder mediacms fürs web optimieren)
mit kirby baue ich dann ein figcaption-video-html konstrukt das in etwa so aussieht:
<figure class="video">
<a href="https://wirres.net/media/pages/articles/gifs/e4e8b3d576-1767369338/img_5687.mp4_1080_h264.mp4">
<video
class="videosrc"
height="480"
width="640"
autoplay loop muted playsinline
preload="metadata"
poster="https://wirres.net/media/pages/articles/gifs/e213b3af88-1767369369/img_5687-960x-q70.jpg"
title="">
<source
src="https://wirres.net/media/pages/articles/gifs/e4e8b3d576-1767369338/img_5687.mp4_1080_h264.mp4"
type="video/mp4">
</video>
</a>
<figcaption>mp4 (899 kb)</figcaption>
</figure>