{"id":4875,"date":"2026-01-06T16:16:58","date_gmt":"2026-01-06T08:16:58","guid":{"rendered":"https:\/\/imastudio.com\/?p=4875"},"modified":"2026-01-06T16:17:31","modified_gmt":"2026-01-06T08:17:31","slug":"mp4-to-webp-macos-ffmpeg-script","status":"publish","type":"post","link":"https:\/\/imastudio.com\/de\/blog\/mp4-to-webp-macos-ffmpeg-script","title":{"rendered":"macOS-Skript mit einem Klick zur Umwandlung von MP4 in sich wiederholende WebP-GIF-Animationen"},"content":{"rendered":"<p class=\"wp-block-paragraph\">F\u00fcr Kunden- und App-Entwicklungsprojekte ben\u00f6tige ich h\u00e4ufig <strong>Videoinhalte schnell visualisieren<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vorschau-Animationen f\u00fcr Produktmanager<\/li>\n\n\n\n<li>Democlips f\u00fcr Dokumentationen oder PRDs<\/li>\n\n\n\n<li>Leichte Animationen f\u00fcr Social-Media-Posts oder Landingpages<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In diesen F\u00e4llen, <strong>Extrahieren einiger Schl\u00fcsselbilder aus einer MP4-Datei und Umwandlung dieser in eine sich wiederholende WebP-Animation<\/strong> ist in der Regel ausreichend \u2013 und viel kleiner als das Hochladen eines kompletten Videos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"533\" src=\"https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif.jpg\" alt=\"\" class=\"wp-image-4877\" srcset=\"https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif.jpg 800w, https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif-300x200.jpg 300w, https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif-768x512.jpg 768w, https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif-18x12.jpg 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Artikel teilt eine <strong>Ein-Klick-Shell-Skript f\u00fcr macOS<\/strong> Das:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Extrahiert 6\u201312 gleichm\u00e4\u00dfig verteilte Einzelbilder aus einer MP4-Datei<\/li>\n\n\n\n<li>\u00e4ndert ihre Gr\u00f6\u00dfe auf 720px Breite<\/li>\n\n\n\n<li>Erstellt eine WebP-Animation mit Endlosschleife<\/li>\n\n\n\n<li>und installiert sich automatisch <code>ffmpeg<\/code> falls es fehlt<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Das alles wird \u00fcber einen einzigen Befehl im Terminal ausgef\u00fchrt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Was das Skript bewirkt<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unter macOS lautet das Skript <code>extract_even_frames_webp.sh<\/code> bietet:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Automatisch <code>ffmpeg<\/code> Erkennung und Installation<\/strong>\n<ul class=\"wp-block-list\">\n<li>Pr\u00fcft, ob <code>ffmpeg<\/code> ist verf\u00fcgbar<\/li>\n\n\n\n<li>Falls nicht, wird Homebrew (falls erforderlich) installiert und anschlie\u00dfend installiert <code>ffmpeg<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Gleichm\u00e4\u00dfige Frame-Extraktion<\/strong>\n<ul class=\"wp-block-list\">\n<li>Berechnet die Videodauer<\/li>\n\n\n\n<li>Gleichm\u00e4\u00dfige Proben <strong>6\u201312 Bilder<\/strong> im gesamten Clip<\/li>\n\n\n\n<li>Standardm\u00e4\u00dfig sind es 6 Frames, aber Sie k\u00f6nnen die Anzahl anpassen.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>WebP-Animationsgenerierung<\/strong>\n<ul class=\"wp-block-list\">\n<li>Kombiniert die extrahierten PNG-Frames zu einem <strong>WebP-Schleife<\/strong><\/li>\n\n\n\n<li>Ausgabebreite ist <strong>720px<\/strong> Standardm\u00e4\u00dfig (die H\u00f6he wird proportional skaliert)<\/li>\n\n\n\n<li>Die Qualit\u00e4t ist einstellbar \u00fcber <code>-q:v<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Automatische Reinigung<\/strong>\n<ul class=\"wp-block-list\">\n<li>Speichert Zwischenbilder in einem tempor\u00e4ren Verzeichnis<\/li>\n\n\n\n<li>L\u00f6scht das tempor\u00e4re Verzeichnis, nachdem die WebP-Datei generiert wurde.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Funktioniert sowohl mit kurzen als auch mit langen Videos<\/strong>\n<ul class=\"wp-block-list\">\n<li>Bei sehr kurzen Videos wird die Anzahl der Einzelbilder automatisch reduziert.<\/li>\n\n\n\n<li>Bei l\u00e4ngeren Videos sind die Einzelbilder \u00fcber die gesamte Dauer gleichm\u00e4\u00dfig verteilt.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Wie es unter der Haube funktioniert<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hier ist die grundlegende Logik hinter dem Skript.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Abh\u00e4ngigkeiten pr\u00fcfen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das Skript pr\u00fcft zun\u00e4chst, ob <code>ffmpeg<\/code> ist installiert:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verwendung <code>Befehl -v ffmpeg<\/code><\/li>\n\n\n\n<li>Falls nicht gefunden, wird gepr\u00fcft, ob <code>brauen<\/code>\n<ul class=\"wp-block-list\">\n<li>Falls Homebrew fehlt, wird es installiert.<\/li>\n\n\n\n<li>Dann verwendet <code>brew install ffmpeg<\/code> zur Installation <code>ffmpeg<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Videodauer abrufen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Verwendung <code>ffprobe<\/code>, so lautet der Text im Skript <strong>Gesamtl\u00e4nge des Videos in Sekunden<\/strong>.<br>Auf dieser Grundlage und der gew\u00fcnschten Anzahl an Einzelbildern berechnet es das Zeitintervall zwischen den Einzelbildern.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.3 Gleichm\u00e4\u00dfige Abtastung von Rahmen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr jeden Frame-Index gilt Folgendes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Berechnet den Zeitstempel = <code>Index \u00d7 Intervall<\/code><\/li>\n\n\n\n<li>Verwendung <code>ffmpeg -ss<\/code> um zu dieser Zeitposition zu springen<\/li>\n\n\n\n<li>Extrahiert genau ein Frame<\/li>\n\n\n\n<li>Skaliert es mit <code>Ma\u00dfstab=720:-1<\/code> Die Breite betr\u00e4gt also 720 Pixel und die H\u00f6he ist proportional.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.4 WebP-Animation erstellen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sobald alle Frames als PNGs gespeichert sind, ruft das Skript Folgendes auf: <code>ffmpeg<\/code> erneut an:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lesen Sie sie der Reihe nach (<code>%03d.png<\/code>)<\/li>\n\n\n\n<li>Kodieren Sie sie als animiertes WebP<\/li>\n\n\n\n<li>Satz <code>-Schleife 0<\/code> Die Animation l\u00e4uft also in einer Endlosschleife.<\/li>\n\n\n\n<li>Qualit\u00e4tskontrolle mit <code>-q:v 70<\/code> (niedriger = h\u00f6here Qualit\u00e4t, gr\u00f6\u00dfere Datei)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.5 Aufr\u00e4umen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Alle tempor\u00e4ren PNG-Dateien werden in einem tempor\u00e4ren Verzeichnis gespeichert, das von <code>mktemp -d<\/code>.<br>Nachdem die WebP-Datei generiert wurde, wird dieses Verzeichnis gel\u00f6scht mit <code>rm -rf<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Vollst\u00e4ndiges Shell-Skript: extract_even_frames_webp.sh<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sie k\u00f6nnen das folgende Skript speichern als <code>extract_even_frames_webp.sh<\/code> auf Ihrem Mac:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n# Usage: .\/extract_even_frames_webp.sh input.mp4 output.webp &#91;frames]\n# frames is optional, default 6, maximum 12\n\nINPUT=\"$1\"\nOUTPUT=\"$2\"\nFRAMES=\"${3:-6}\"\n\n# Cap maximum frames at 12\nif &#91; \"$FRAMES\" -gt 12 ]; then\n    FRAMES=12\nfi\n\nif &#91; -z \"$INPUT\" ] || &#91; -z \"$OUTPUT\" ]; then\n    echo \"Usage: $0 input.mp4 output.webp &#91;frames]\"\n    exit 1\nfi\n\n# ---------------------------------\n# 1\ufe0f\u20e3 Check ffmpeg\n# ---------------------------------\nif ! command -v ffmpeg &gt;\/dev\/null 2&gt;&amp;1; then\n    echo \"\u26a0\ufe0f ffmpeg not found, starting installation...\"\n    if ! command -v brew &gt;\/dev\/null 2&gt;&amp;1; then\n        echo \"\u26a0\ufe0f Homebrew not found, installing Homebrew...\"\n        \/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"\n        echo \"\u2705 Homebrew installed\"\n    else\n        echo \"\u2705 Homebrew already installed\"\n    fi\n    brew update\n    brew install ffmpeg\n    if ! command -v ffmpeg &gt;\/dev\/null 2&gt;&amp;1; then\n        echo \"\u274c ffmpeg installation failed, please check manually\"\n        exit 1\n    fi\n    echo \"\ud83c\udf89 ffmpeg installed successfully!\"\nelse\n    echo \"\u2705 ffmpeg is already installed\"\nfi\n\n# ---------------------------------\n# 2\ufe0f\u20e3 Get video duration\n# ---------------------------------\nDURATION=$(ffprobe -v error -show_entries format=duration -of csv=p=0 \"$INPUT\")\nif &#91;&#91; -z \"$DURATION\" ]]; then\n    echo \"\u274c Failed to get video duration\"\n    exit 1\nfi\nDURATION=${DURATION%.*}  # integer seconds\n\n# If video is shorter than requested frames, match frame count to duration\nif &#91; \"$DURATION\" -lt \"$FRAMES\" ]; then\n    FRAMES=$DURATION\nfi\n\necho \"\ud83d\udcf9 Video length: ${DURATION}s, extracting $FRAMES frames evenly\"\n\n# ---------------------------------\n# 3\ufe0f\u20e3 Create temporary directory\n# ---------------------------------\nTMPDIR=$(mktemp -d)\n\n# ---------------------------------\n# 4\ufe0f\u20e3 Calculate interval\n# ---------------------------------\nINTERVAL=$(echo \"scale=6; $DURATION\/$FRAMES\" | bc)\necho \"\u23f1 Frame interval: $INTERVAL seconds\"\n\n# ---------------------------------\n# 5\ufe0f\u20e3 Extract frames\n# ---------------------------------\nfor i in $(seq 0 $(($FRAMES-1))); do\n    TIME=$(echo \"$i * $INTERVAL\" | bc)\n    printf -v FILENAME \"%03d.png\" $((i+1))\n    ffmpeg -ss \"$TIME\" -i \"$INPUT\" -frames:v 1 -vf \"scale=720:-1\" \\\n        \"$TMPDIR\/$FILENAME\" -hide_banner -loglevel error\ndone\n\n# ---------------------------------\n# 6\ufe0f\u20e3 Generate animated WebP\n# ---------------------------------\nffmpeg -y -i \"$TMPDIR\/%03d.png\" -vcodec libwebp -lossless 0 -q:v 70 \\\n    -loop 0 -preset picture \"$OUTPUT\" -hide_banner -loglevel error\n\n# ---------------------------------\n# 7\ufe0f\u20e3 Clean up\n# ---------------------------------\nrm -rf \"$TMPDIR\"\n\necho \"\ud83c\udf89 Done! Generated file: $OUTPUT\"\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. So verwenden Sie das Skript unter macOS<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Speichern Sie das Skript.<\/strong> Speichern Sie den obigen Inhalt unter <code>extract_even_frames_webp.sh<\/code>, zum Beispiel in Ihrem Home-Verzeichnis.<\/li>\n\n\n\n<li><strong>Erteilen Sie die Ausf\u00fchrungsberechtigung.<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x extract_even_frames_webp.sh\n<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Grundlegende Verwendung<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/extract_even_frames_webp.sh input.mp4 output.webp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dies wird:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pr\u00fcfen oder installieren <code>ffmpeg<\/code><\/li>\n\n\n\n<li>Extrahieren Sie 6 gleichm\u00e4\u00dfig verteilte Frames<\/li>\n\n\n\n<li>Erzeugen <code>output.webp<\/code> bei einer Breite von 720px<\/li>\n<\/ul>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Geben Sie die Anzahl der Frames an (6\u201312).<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/extract_even_frames_webp.sh input.mp4 output.webp 8\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch werden 8 Frames anstelle der standardm\u00e4\u00dfigen 6 extrahiert.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Warum dieser Arbeitsablauf n\u00fctzlich ist<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Im Vergleich zum manuellen \u00d6ffnen eines Videoeditors oder dem Durchklicken eines GUI-Konverters bietet dieses Skript einige Vorteile:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Keine manuelle Einrichtung erforderlich<\/strong>\n<ul class=\"wp-block-list\">\n<li>Installiert automatisch <code>ffmpeg<\/code> (und gegebenenfalls selbstgebrautes)<\/li>\n\n\n\n<li>Sie m\u00fcssen weder nach Installationsprogrammen suchen noch sich Befehle merken.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Intelligente Frame-Abtastung<\/strong>\n<ul class=\"wp-block-list\">\n<li>Bei kurzen Clips wird die Anzahl der Einzelbilder automatisch reduziert.<\/li>\n\n\n\n<li>Bei l\u00e4ngeren Videos sind die Einzelbilder immer gleichm\u00e4\u00dfig \u00fcber die gesamte Dauer verteilt.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Qualit\u00e4ts- und Gr\u00f6\u00dfenkontrolle<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>-q:v<\/code> erm\u00f6glicht es Ihnen, die WebP-Qualit\u00e4t im Verh\u00e4ltnis zur Dateigr\u00f6\u00dfe anzupassen.<\/li>\n\n\n\n<li><code>Ma\u00dfstab=720:-1<\/code> bietet eine webfreundliche Breite und ein einheitliches Seitenverh\u00e4ltnis<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Schleife standardm\u00e4\u00dfig<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>-Schleife 0<\/code> l\u00e4sst die WebP-Animation in einer Endlosschleife laufen<\/li>\n\n\n\n<li>Ideal f\u00fcr Vorschauen, Demos und dezente Animationen in Dokumenten oder auf Websites.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Saubere Festplattennutzung<\/strong>\n<ul class=\"wp-block-list\">\n<li>Tempor\u00e4re PNG-Frames werden in einem tempor\u00e4ren Ordner gespeichert und anschlie\u00dfend gel\u00f6scht.<\/li>\n\n\n\n<li>Keine Ansammlung von ungenutzten Dateien im Laufe der Zeit<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Beispiel: Umwandlung einer 20-sek\u00fcndigen MP4-Datei in eine WebP-Vorschau<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Stellen Sie sich vor, Sie haben ein <strong>20-sek\u00fcndiges Feature-Demo-Video<\/strong> und ausf\u00fchren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/extract_even_frames_webp.sh demo.mp4 demo-preview.webp 6\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Skript wird:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Berechne ein Intervall von ungef\u00e4hr <strong>3,33 Sekunden<\/strong><\/li>\n\n\n\n<li>Extrahieren Sie 6 Frames bei <code>0s, 3,33s, 6,66s, 10s, 13,33s, 16,66s<\/code><\/li>\n\n\n\n<li>\u00c4ndern Sie die Gr\u00f6\u00dfe auf 720px Breite.<\/li>\n\n\n\n<li>Baue einen <strong>WebP-Schleife<\/strong> Animation<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Anschlie\u00dfend k\u00f6nnen Sie diese WebP-Datei in Folgendes einf\u00fcgen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Produktdokumente oder Feishu-\/Notion-Dokumente als <strong>leichte Vorschau<\/strong><\/li>\n\n\n\n<li>Social-Media-Posts oder Landingpages als <strong>automatisch abspielendes Bewegungs-Thumbnail<\/strong><\/li>\n\n\n\n<li>PowerPoint-Pr\u00e4sentationen und interne Demos, bei denen ein vollst\u00e4ndiges Video \u00fcbertrieben w\u00e4re<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Ideen zur Erweiterung<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dieses Skript ist ein Ausgangspunkt \u2013 Sie k\u00f6nnen es leicht an Ihren eigenen Arbeitsablauf anpassen:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Dynamische Bildz\u00e4hlung<\/strong>\n<ul class=\"wp-block-list\">\n<li>Automatische Auswahl zwischen 6 und 12 Einzelbildern basierend auf der Videol\u00e4nge<\/li>\n\n\n\n<li>z. B. mehr Einzelbilder f\u00fcr l\u00e4ngere Clips, um mehr Zust\u00e4nde darzustellen<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Sondergr\u00f6\u00dfen<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00c4ndern <code>Ma\u00dfstab=720:-1<\/code> auf jede von Ihrem Produktteam bevorzugte Breite<\/li>\n\n\n\n<li>Oder die Breite als Parameter offenlegen: <code>.\/script.sh in.mp4 out.webp 8 1080<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Stapelverarbeitung<\/strong>\n<ul class=\"wp-block-list\">\n<li>Umschlie\u00dfen Sie dieses Skript mit einer weiteren Schleife, um alle Verarbeitungsschritte durchzuf\u00fchren. <code>.mp4<\/code> Dateien in einem Ordner<\/li>\n\n\n\n<li>N\u00fctzlich, wenn Sie mehrere Feature-Demos gleichzeitig exportieren.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Anmerkung des Autors<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dieses Skript stammt aus meinem realen macOS-Entwicklungsworkflow zur Umwandlung von MP4-Videos in schlanke WebP-Vorschauen. Ich verwende es t\u00e4glich in der Kundenentwicklung, um Demo-Animationen f\u00fcr Dokumentationen und Social-Media-Posts zu generieren. GPT wurde lediglich zur \u00dcbersetzung, Strukturierung und Optimierung der englischen Version dieses Artikels verwendet \u2013 die Skriptlogik, Implementierungsdetails und Anwendungsmuster basieren vollst\u00e4ndig auf meiner eigenen Projekterfahrung.<\/p>","protected":false},"excerpt":{"rendered":"<p>F\u00fcr Kundenprojekte und App-Entwicklung muss ich Videoinhalte oft schnell visualisieren: In solchen F\u00e4llen reicht es meist aus, einige Schl\u00fcsselbilder aus einer MP4-Datei zu extrahieren und daraus eine WebP-Animation mit Endlosschleife zu erstellen \u2013 und das ist deutlich ressourcenschonender als das Hochladen eines kompletten Videos. Dieser Artikel stellt ein Shell-Skript f\u00fcr macOS vor, das mit nur einem Klick funktioniert: [\u2026]<\/p>","protected":false},"author":8,"featured_media":4877,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"MP4 to WebP on macOS: One-Click ffmpeg Script Guide","rank_math_description":"Use a one-click macOS shell script with ffmpeg to convert MP4 to looping WebP animations, with auto-install, even frame extraction and clean temp files.","footnotes":""},"categories":[35],"tags":[],"class_list":["post-4875","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledge-hub"],"_links":{"self":[{"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/posts\/4875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/comments?post=4875"}],"version-history":[{"count":2,"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/posts\/4875\/revisions"}],"predecessor-version":[{"id":4878,"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/posts\/4875\/revisions\/4878"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/media\/4877"}],"wp:attachment":[{"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/media?parent=4875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/categories?post=4875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imastudio.com\/de\/wp-json\/wp\/v2\/tags?post=4875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}