beilage zu: gifs

statistisches

dieser artikel wurde vor 6 monaten und 4 tagen veröffentlicht und zuletzt vor 6 monaten und 4 tagen geändert. er hat 10 reaktionen gesammelt und es wurden bis jetzt 297 aufrufe erfasst.

10 reaktionen

diesen beitrag habe ich auf mastodon und bluesky weiterveröffentlicht und dort kann er auch kommentiert oder gefavt werden. hier gibts ein kommentar-formular. ich freue mich auch über kommentare per e-mail. die likes, kommentare oder erwähnungen sammle ich u.a. aus diesen weiterveröffentlichten beiträgen wieder ein. kommentare per e-mail veröffentliche ich nicht.

6 kommentare

1 5

  • @herr_rau@fnordon.de avatar Herr Rau @herr_rau @fnordon.de

    @ix Darf ich eine technische Frage stellen? Das Skript zum Umwandeln in gif habe ich ausprobiert, funktioniert, nun hätte ich gerne noch die Option, max_colors für das Erzeugen der Palette auf einen Wert zu setzen. Ich bin völlig unerfahren bei ffmpeg, und kann vermuten, wo das hin muss, habe aber keine Ahnung von Filtergraph und Chains und der Syntax. Könntest du das noch ergänzen im Skript, oder hier die angepasste Zeile veröffentlichen? Wenn das einfach geht und nicht zu viel Arbeit macht.

  • @ix@mstdn.wirres.net avatar ix @ix @mstdn.wirres.net

    @herr_rau das script habe ich cursor (oder gemini?) machen lassen. das kann ich gerne nochmal fragen.

  • @ix@mstdn.wirres.net avatar ix @ix @mstdn.wirres.net

    @herr_rau nicht getestet, frisch aus dem LLM:

    #!/usr/bin/env bash
    set -euo pipefail
    
    if [ $# -lt 1 ]; then
      echo "Usage: $0 input.mp4 [fps] [width] [max_colors]" >&2
      exit 1
    fi
    
    INPUT="$1"
    FPS="${2:-15}"           # Default: 15 fps
    WIDTH="${3:-640}"        # Default: 640px Breite
    MAX_COLORS="${4:-256}"   # Default: 256 Farben
    
    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"
    
    echo "Erzeuge Palette mit maximal $MAX_COLORS Farben..."
    
    # Palette erzeugen
    # Hier wurde max_colors zum Filter hinzugefügt
    ffmpeg -y -i "$INPUT" \
      -vf "fps=${FPS},scale=${WIDTH}:-1:flags=lanczos,palettegen=max_colors=${MAX_COLORS}" \
      "$PALETTE"
    
    echo "Erzeuge GIF..."
    
    # 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 "Fertig: $OUTPUT_GIF"
    
                                                    
  • @herr_rau@fnordon.de avatar Herr Rau @herr_rau @fnordon.de

    @ix Danke, ich probier's gleich aus! (Da OBEN hätte ich das gar nicht vermutet. Ich lerne noch. Und jetzt sehe ich erst das da UNTEN.)

  • @herr_rau@fnordon.de avatar Herr Rau @herr_rau @fnordon.de

    @ix Funktioniert, und ich verstehe jetzt mehr, danke!