Dies ist eine alte Version des Dokuments!



Warning: Declaration of syntax_plugin_include_div::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /homepages/u36759/www/yeat.net/dokuwiki.2017.02.19e/www/lib/plugins/include/syntax/div.php on line 59

Warning: Declaration of syntax_plugin_include_div::render($mode, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /homepages/u36759/www/yeat.net/dokuwiki.2017.02.19e/www/lib/plugins/include/syntax/div.php on line 59

Warning: Declaration of syntax_plugin_html5video_video::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /homepages/u36759/www/yeat.net/dokuwiki.2017.02.19e/www/lib/plugins/html5video/syntax/video.php on line 145

Warning: Declaration of syntax_plugin_html5video_video::render($mode, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /homepages/u36759/www/yeat.net/dokuwiki.2017.02.19e/www/lib/plugins/html5video/syntax/video.php on line 145

Linux: GIF-Animationen aus Videosequenzen erstellen

Ich hatte mich schon lange gefragt, wie man am einfachsten aus bestehenden Videosequenzen ein animiertes GIF erstellen kann. Kein Problem für ffmpeg und ImageMagick!

Die Lösung

Hierfür müssen ffmpeg und ImageMagick installiert sein. Die Sequenz wird von ffmpeg in Einzelbilder umgewandelt, die dann vom ImageMagick-Kommandozeilentool convert zur GIF-Animation zusammengesetzt werden.

ffmpeg \
    -i [Eingangsdatei] \ #aus [Eingangsdatei] lesen
    -vf scale=90:-1 \    #Skalierung (hier: 90 Pixel breit, Höhe gemäß Seitenverhältnis)
    -r 10 \              #Bildrate in Bildern pro Sekunde (siehe unten!)
    -ss 00:00:08 \       #Startpunkt wählen (hier: 8 Sekunden am Anfang überspringen)
    -t 00:00:05 \        #Dauer (hier: 5 Sekunden)
    -f image2pipe \      #Bilder erzeugen
    -vcodec ppm - | \    #in ppm-Format nach Stdout ausgeben
convert
    -delay 10 \          #Zeitabstand zwischen den Einzelbildern (siehe "-r 10" oben!)
    -loop 0 \            #Anzahl der Durchläufe (0=immer)
    - [Ausgangsdatei]    #von Stdin entgegennehmen und in [Ausgabedatei] schreiben