Skip to content

Repository files navigation

🎬 FrameGrabber

Transparent animation loop shown over a checkerboard

License Python Engine Platform Cost

🌐 Choose your language · Sprache wählen — click a section below to expand / unten anklicken zum Aufklappen 👇

🇬🇧  English


An offline desktop tool that turns any clip into individual frames — and into finished, alpha‑transparent animations. You own a green‑screen .mp4? Get a clean transparent GIF / WebM out of it. Free. No cloud. No watermark.

🎥 See it in action

FrameGrabber click-by-click workflow

💥 The one‑click WOW

Green‑screen .mp4 → clean cut‑out with real alpha (chroma‑key).

Green screen mp4 turned into a transparent cut-out

🎯 Eyedropper — pick the exact key colour straight from a frame of your video (or any image), with a live zoom loupe. No guessing hex codes.

Eyedropper picking the green-screen colour from a video frame

🖥️ Three tabs

Frames & Sheet Animation Freistellen (batch cutout)
Extract every frame + contact / sprite sheets Frames / sprite sheet → GIF / APNG / WebM Batch remove green / magenta backgrounds from many PNGs

🧹 Batch background removal (Freistellen)

Drop in a stack of PNGs with a green or magenta background and get transparent PNGs back — many at once. One‑click 🟢 Green / 🟣 Magenta presets, custom colour + eyedropper, tolerance, and an Auto mode that reads each image's own background colour. Existing transparency is preserved; your originals are never overwritten (output lands in a separate cutout/ folder).

🎨 What it makes

Transparent loop Transparency proof (checkerboard)
Sprite sheet (tight, transparent) Contact sheet (numbered preview)

✨ Features

Tab 1 — Frames & Sheet

  • 🎞️ Extract every single frame of a clip, losslessly (fps_mode passthrough, nothing dropped) — or only N frames/second.
  • 🖼️ Output as PNG (lossless) · JPG · WebP · BMP · TIFF.
  • 🪄 Transparencykeep existing alpha (APNG / transparent MOV / WebM) or chroma‑key a background colour (green screen) into real alpha. Pick the colour with an eyedropper straight from a video frame (live zoom loupe) or a colour dialog, plus a tolerance.
  • 🧩 Sheets from all frames — a numbered contact sheet and a tightly‑packed transparent sprite sheet.

Tab 2 — Animation

  • 🔁 Turn a frame folder or a sprite sheet into a looping animation.
  • 🟢 GIF (plays everywhere, 1‑bit transparency) · 🟣 APNG (.apng, true 8‑bit soft alpha) · 🔵 WebM (transparent VP9 video — for editors / OBS / web / desktop overlays).
  • 🎛️ FPS / frame‑delay · infinite or N loops · alpha threshold · matte colour · scale · forward / reverse / boomerang · start‑end trim.
  • 🧠 Auto‑detect: a sprite sheet's columns/rows and the source FPS are read automatically → it plays at the original speed, no manual setup.

Tab 3 — Freistellen (batch cutout)

  • 🧹 Batch remove a green / magenta (or any) background from many PNGs at once → transparent PNGs.
  • 🟢🟣 One‑click Green / Magenta presets · custom hex + swatch + 🎯 eyedropper · tolerance.
  • 🤖 Auto mode reads each image's own background colour (4‑corner medoid) — great for mixed batches.
  • 🛡️ Existing transparency preserved (alpha‑keeping ffmpeg graph); originals never overwritten (output to a separate folder).

🧱 Perfect registration, for free

Every frame is the full canvas, so all frames already line up pixel‑perfect — no jitter, no alignment step. Sprite sheets are sliced exactly on the grid (verified byte‑identical round‑trip).

🚀 Install

# Requirements: Python 3.11+, ffmpeg on PATH, Pillow
pip install pillow
pip install tkinterdnd2   # optional: drag & drop into the window

ffmpeg: from https://ffmpeg.org or choco install ffmpeg.

▶️ Use it

GUI: double‑click FrameGrabber starten.bat (or pythonw framegrabber.py).

# frames
python framegrabber_cli.py clip.mp4
python framegrabber_cli.py greenscreen.mp4 --alpha chroma --key-color "#00FF00" --sheet sprite
# animations
python frameanim_cli.py clip_frames --gif --apng --webm
python frameanim_cli.py sheet.png --cols 8 --rows 5 --webm --fps 24
python frameanim_cli.py frames --boom --scale 50 -o loop

🎯 Which format?

Format Plays on double‑click (Windows) Alpha Best for
GIF ✅ everywhere 1‑bit (hard edges) quick sharing anywhere
APNG (.apng) ❌ shows 1st frame only ✅ true soft alpha web / browsers
WebM (VP9) ⚠️ codec needed · basic players show black, not transparency ✅ true soft alpha video editing · OBS · web <video> · desktop overlays

APNG is animated — Windows Photos just doesn't play it; drag the .apng into Chrome/Edge and it moves. WebM is a real transparent video — perfect for video editors, OBS and overlay apps, but a plain player composites it on black.

⚙️ How it works

  • Frame extraction, palette GIF & transparent WebM: ffmpeg (GIF: palettegen reserve_transparent + paletteuse alpha_threshold + Bayer dither, auto disposal=2 → no ghost trails; WebM: libvpx-vp9 -pix_fmt yuva420p -lossless).
  • Sheets & APNG: Pillow (APNG disposal=1/blend=0 → bit‑exact alpha). Output is written atomically; source FPS + sprite grid are embedded as metadata for auto‑detection.

🇩🇪  Deutsch


Ein Offline‑Desktop‑Tool, das jeden Clip in Einzelbilder zerlegt — und in fertige, alpha‑transparente Animationen. Du hast ein Greenscreen‑.mp4? Hol dir ein sauberes transparentes GIF / WebM heraus. Kostenlos. Keine Cloud. Kein Wasserzeichen.

🎥 In Aktion

FrameGrabber Workflow Klick für Klick

💥 Der Aha‑Moment mit einem Klick

Greenscreen‑.mp4 → sauberer Freisteller mit echtem Alpha (Chroma‑Key).

Greenscreen-mp4 wird zum transparenten Freisteller

🎯 Pipette — pick die exakte Farbe direkt aus einem Frame deines Videos (oder einem beliebigen Bild), mit Live‑Zoom‑Lupe. Kein Hex‑Code‑Raten mehr.

Pipette pickt die Greenscreen-Farbe aus einem Video-Frame

🖥️ Drei Tabs

Frames & Sheet Animation Freistellen (Batch)
Jeden Frame + Kontaktbogen / Sprite‑Sheet Frames / Sprite‑Sheet → GIF / APNG / WebM Stapelweise Green‑/Magenta‑Hintergrund aus vielen PNGs entfernen

🧹 Batch-Freistellen

Wirf einen Stapel PNGs mit grünem oder magenta Hintergrund rein und bekomm transparente PNGs zurück — viele auf einmal. Ein‑Klick‑Presets 🟢 Grün / 🟣 Magenta, eigene Farbe + Pipette, Toleranz, und ein Auto‑Modus, der bei jedem Bild die eigene Hintergrundfarbe erkennt. Vorhandene Transparenz bleibt erhalten; deine Originale werden nie überschrieben (Ausgabe in einen eigenen cutout/‑Ordner).

🎨 Was dabei rauskommt

Transparenter Loop Transparenz‑Beweis (Schachbrett)
Sprite‑Sheet (eng gepackt, transparent) Kontaktbogen (nummerierte Übersicht)

✨ Funktionen

Tab 1 — Frames & Sheet

  • 🎞️ Jeden einzelnen Frame eines Clips verlustfrei extrahieren (fps_mode passthrough, nichts geht verloren) — oder nur N Bilder/Sekunde.
  • 🖼️ Ausgabe als PNG (verlustfrei) · JPG · WebP · BMP · TIFF.
  • 🪄 Transparenz — vorhandenes Alpha erhalten (APNG / transparentes MOV / WebM) oder eine Hintergrundfarbe (Greenscreen) per Chroma‑Key zu echtem Alpha ausstanzen. Farbe per Pipette direkt aus einem Video‑Frame picken (Live‑Zoom‑Lupe) oder per Farbdialog, plus Toleranz.
  • 🧩 Sheets aus allen Frames — ein nummerierter Kontaktbogen und ein eng gepacktes transparentes Sprite‑Sheet.

Tab 2 — Animation

  • 🔁 Aus einem Frame‑Ordner oder einem Sprite‑Sheet eine loopende Animation bauen.
  • 🟢 GIF (läuft überall, 1‑Bit‑Transparenz) · 🟣 APNG (.apng, echtes weiches 8‑Bit‑Alpha) · 🔵 WebM (transparentes VP9‑Video — für Schnitt / OBS / Web / Desktop‑Overlays).
  • 🎛️ FPS / Bild‑Dauer · endlos oder N‑mal · Alpha‑Schwelle · Matte‑Farbe · Skalieren · Vorwärts / Rückwärts / Boomerang · Start‑End‑Trim.
  • 🧠 Auto‑Erkennung: Spalten/Zeilen eines Sprite‑Sheets und die Quell‑FPS werden automatisch gelesen → läuft in Original‑Geschwindigkeit, ohne manuelles Einstellen.

Tab 3 — Freistellen (Batch)

  • 🧹 Stapelweise grünen / magenta (oder beliebigen) Hintergrund aus vielen PNGs auf einmal entfernen → transparente PNGs.
  • 🟢🟣 Ein‑Klick‑Presets Grün / Magenta · eigenes Hex + Swatch + 🎯 Pipette · Toleranz.
  • 🤖 Auto‑Modus liest bei jedem Bild die eigene Hintergrundfarbe (Medoid der 4 Ecken) — ideal für gemischte Stapel.
  • 🛡️ Vorhandene Transparenz bleibt erhalten (alpha‑erhaltender ffmpeg‑Graph); Originale werden nie überschrieben (Ausgabe in eigenen Ordner).

🧱 Perfekt deckungsgleich — gratis

Jeder Frame ist die volle Bildfläche, also liegen alle Frames automatisch pixelgenau übereinander — kein Zittern, kein Ausrichten. Sprite‑Sheets werden exakt am Raster zerschnitten (byte‑identischer Round‑Trip verifiziert).

🚀 Installation

# Voraussetzungen: Python 3.11+, ffmpeg im PATH, Pillow
pip install pillow
pip install tkinterdnd2   # optional: Drag & Drop ins Fenster

ffmpeg: von https://ffmpeg.org oder choco install ffmpeg.

▶️ Benutzen

GUI: Doppelklick auf FrameGrabber starten.bat (oder pythonw framegrabber.py).

# Frames
python framegrabber_cli.py clip.mp4
python framegrabber_cli.py greenscreen.mp4 --alpha chroma --key-color "#00FF00" --sheet sprite
# Animationen
python frameanim_cli.py clip_frames --gif --apng --webm
python frameanim_cli.py sheet.png --cols 8 --rows 5 --webm --fps 24
python frameanim_cli.py frames --boom --scale 50 -o loop

🎯 Welches Format?

Format Spielt per Doppelklick (Windows) Alpha Am besten für
GIF ✅ überall 1‑Bit (harte Kanten) schnelles Teilen überall
APNG (.apng) ❌ zeigt nur 1. Bild ✅ echtes weiches Alpha Web / Browser
WebM (VP9) ⚠️ Codec nötig · einfache Player zeigen Schwarz statt Transparenz ✅ echtes weiches Alpha Videoschnitt · OBS · Web <video> · Desktop‑Overlays

APNG ist animiert — Windows‑Fotos spielt es nur nicht ab; zieh die .apng in Chrome/Edge, dann bewegt sie sich. WebM ist ein echtes transparentes Video — perfekt für Videoschnitt, OBS und Overlay‑Apps, ein einfacher Player legt es aber auf Schwarz.

⚙️ Wie es funktioniert

  • Frame‑Extraktion, Paletten‑GIF & transparentes WebM: ffmpeg (GIF: palettegen reserve_transparent + paletteuse alpha_threshold + Bayer‑Dither, automatisch disposal=2 → keine Geister‑Schweife; WebM: libvpx-vp9 -pix_fmt yuva420p -lossless).
  • Sheets & APNG: Pillow (APNG disposal=1/blend=0 → bit‑genaues Alpha). Ausgabe wird atomar geschrieben; Quell‑FPS + Sprite‑Raster werden als Metadaten für die Auto‑Erkennung eingebettet.

MIT License · made with ffmpeg + Pillow · the demo mascot says hi 👋

About

Extract every frame of a clip and build clean, alpha-transparent animations (GIF/APNG/WebP) + contact/sprite sheets. Free & offline. Python + ffmpeg + Pillow.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages