From abdcb59a3a7a74d8dc7fddd08a00849e11b08f2f Mon Sep 17 00:00:00 2001 From: Glenn Goossens <48956933+glgoose@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:01:37 +0200 Subject: [PATCH] bin/screen2gif: verplaatst naar dotfiles/bin Co-Authored-By: Claude Sonnet 5.5 --- bin/screen2gif | 59 -------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100755 bin/screen2gif diff --git a/bin/screen2gif b/bin/screen2gif deleted file mode 100755 index 58a0852..0000000 --- a/bin/screen2gif +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env bash -# Zet een schermopname (.mov/.mp4) om in een kleine GIF voor een update aan collega's. -# Eén ffmpeg-pass: fps en breedte omlaag, eigen kleurenpalet, geen dithering-ruis. -# -# Gebruik: bin/screen2gif [opties] -# bin/screen2gif ~/Desktop/opname.mov -# bin/screen2gif opname.mov --crop 1400:800:60:120 --start 2 --duur 9 -set -euo pipefail - -usage() { - cat <<'USAGE' -Gebruik: bin/screen2gif [opties] - - .mov of .mp4 van Cmd+Shift+5 - -Opties: - --crop B:H:X:Y snij bij op het venster (breedte:hoogte:x:y, in pixels van de opname) - --start S sla de eerste S seconden over - --duur S maximaal S seconden (standaard 10) - --breedte PX breedte van de GIF (standaard 800) - --fps N beelden per seconde (standaard 10) - --kleuren N kleuren in het palet, 16 tot 256 (standaard 96) - --uit PAD uitvoerbestand (standaard naast de opname, .gif) - --help, -h deze uitleg -USAGE -} - -crop="" start=0 duur=10 breedte=800 fps=10 kleuren=96 uit="" in="" - -while [ $# -gt 0 ]; do - case "$1" in - --crop) crop="${2:?--crop vraagt B:H:X:Y}"; shift ;; - --start) start="${2:?--start vraagt seconden}"; shift ;; - --duur) duur="${2:?--duur vraagt seconden}"; shift ;; - --breedte) breedte="${2:?--breedte vraagt pixels}"; shift ;; - --fps) fps="${2:?--fps vraagt een getal}"; shift ;; - --kleuren) kleuren="${2:?--kleuren vraagt een getal}"; shift ;; - --uit) uit="${2:?--uit vraagt een pad}"; shift ;; - --help|-h) usage; exit 0 ;; - -*) echo "fout: onbekende optie $1" >&2; usage >&2; exit 2 ;; - *) in="$1" ;; - esac - shift -done - -[ -n "$in" ] || { usage >&2; exit 2; } -[ -f "$in" ] || { echo "fout: $in bestaat niet" >&2; exit 1; } -command -v ffmpeg >/dev/null || { echo "fout: ffmpeg ontbreekt (brew install ffmpeg)" >&2; exit 1; } -[ -n "$uit" ] || uit="${in%.*}.gif" - -filter="fps=${fps},scale=${breedte}:-1:flags=lanczos" -[ -z "$crop" ] || filter="crop=${crop},${filter}" - -ffmpeg -v error -y -ss "$start" -t "$duur" -i "$in" \ - -vf "${filter},split[a][b];[a]palettegen=max_colors=${kleuren}:stats_mode=diff[p];[b][p]paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" \ - -loop 0 "$uit" - -bytes=$(stat -f%z "$uit") -echo "$uit $((bytes / 1024)) KB"