Bild und Video
als Präsentation ▻Auf der Kommandozeile gibt es Werkzeuge um mit Bild und Video einfach zu arbeiten
▻Bildverarbeitung mit image magick
image magick kann auf apple mit brew install imagemagick
installiert werden.
Das Paket enthält mehrere spearate Befehle:
magick
zum Verändern einer Bild-Dateimagick identify
zum anzeigen des Typs und der Dimensionen von Bildernmagick montage
zum Zusammenstellen von Collagen aus mehreren Bildern.
Bilder identifizieren
Der Befehl magick identify
zeigt den typ und die wichtigsten Eckdaten eines Bildes an:
$ magick identify * teletype.jpg JPEG 1600x1200 1600x1200+0+0 8-bit sRGB 189649B 0.000u 0:00.000 terminal-pwd.png PNG 336x128 336x128+0+0 8-bit sRGB 14051B 0.000u 0:00.000 terminal.png PNG 848x552 848x552+0+0 8-bit sRGB 171623B 0.000u 0:00.000 tinymce.png PNG 767x214 767x214+0+0 8-bit sRGB 26551B 0.000u 0:00.000 tinymce@2x.png PNG 1534x428 1534x428+0+0 8-bit sRGB 44612B 0.000u 0:00.000
Bei gif-Animationen werden die einzelnen Frames angezeigt:
$ magick identify drag-and-drop-upload.gif drag-and-drop-upload.gif[0] GIF 600x206 600x206+0+0 8-bit sRGB 256c 0.000u 0:00.002 drag-and-drop-upload.gif[1] GIF 600x206 600x206+0+0 8-bit sRGB 256c 0.000u 0:00.002 ... drag-and-drop-upload.gif[22] GIF 600x206 600x206+0+0 8-bit sRGB 256c 0.000u 0:00.001 drag-and-drop-upload.gif[23] GIF 600x206 600x206+0+0 8-bit sRGB 256c 956685B 0.000u 0:00.001
Bild Konvertieren
Manchmal erhält man Bilder in einem unpassenden Format. So erzeugt der Mac alle Bildschirmphotos als pngs. Manche profitieren durch die jpg-Komprimierung:
$ magick Bildschirmfoto.png Bildschirmfoto.jpg $ magick Bildschirmfoto.png Bildschirmfoto.webp $ magick identify Bildschirmfoto.* Bildschirmfoto.jpg JPEG 2880x1800 2880x1800+0+0 8-bit sRGB 656908B 0.000u 0:00.000 Bildschirmfoto.png PNG 2880x1800 2880x1800+0+0 8-bit sRGB 1.73215MiB 0.000u 0:00.000 Bildschirmfoto.webp WEBP 2880x1800 2880x1800+0+0 8-bit sRGB 182964B 0.070u 0:00.064 $ du -h Bildschirmfoto.* 644K Bildschirmfoto.jpg 1,7M Bildschirmfoto.png 180K Bildschirmfoto.webp
Aus 1,6 Megabyte png wurden also 644 Kilobyte jpeg und 180 Kilobyte webp. Ein Faktor 10 Kompression zahlt sich auf jeden Fall aus!
▻Bildgröße Verändern
Oft erhält man Photos mit sehr hoher Auflösung:
$ magick identify Hochzeit.jpg Hochzeit.jpg JPEG 5760x3840 5760x3840+0+0 8-bit sRGB 18.2662MiB 0.000u 0:00.005
Aus diesem Bild kann man kleinere Varianten erzeugen
$ magick Hochzeit.jpg -geometry 2400x hochzeit_2400.jpg $ magick Hochzeit.jpg -geometry 1200x hochzeit_1200.jpg $ magick Hochzeit.jpg -geometry 800x hochzeit_800.jpg $ magick identify hochzeit_* hochzeit_1200.jpg JPEG 1200x800 1200x800+0+0 8-bit sRGB 1.06958MiB 0.000u 0:00.003 hochzeit_2400.jpg JPEG 2400x1600 2400x1600+0+0 8-bit sRGB 4076950B 0.000u 0:00.000 hochzeit_800.jpg JPEG 800x533 800x533+0+0 8-bit sRGB 555496B 0.000u 0:00.000
Aus Standbildern ein Animiertes GIF machen
Aus mehreren Standbildern - in diesem Beispiel mehreren png-dateien kann imagemagic ein animiertes gif machen:
magick *.png -delay 7 -loop 0 -alpha set -dispose previous sprite.gif
Collagen
Mehrere Bilder nebeneinander zusammenfügen:
magick left.jpg right.jpg +append side_by_side.jpg
Mehrere Bilder untereinander zusammenfügen:
magick top.jpg bottom.jpg -append above_and_below.jpg
Meta-Information über Rotation entfernen
Handy-Photos können Information über die Orientierung des Bildes enhalten. Falls die Kamera am Kopf steht wenn man das Bild macht, dann wird im Bild gespeichert dass es um 180° gedreht angezeigt werden soll. Das fukntioniert aber nicht immer.
Folgender Befehl rückt das Bild gerade und entfernt die Meta-Information:
magick IMG_20180830_110737.jpg -auto-orient -strip aufrecht.jpg
Mehr über image magick
Das waren sehr einfache Beispiele. Über die Kommandozeilen-Tools gibt es noch viel zu lernen, siehe:
image magick kann auch als library in vielen Programmiersprachen verwendet werden. z.B. PHP, C#, node.js
▻Videoverarbeitung mit ffmpeg
ffmpeg kann auf apple mit brew install ffmpeg
installiert werden.
Video schneiden
Um einen kürzeren Clip aus einem Vidoe herauszuschneiden:
$ ffmpeg -ss 00:40:00.0 -i Besprechung.mp4 -c copy -t 00:01:00.0 Besprechung.mp4
Ein Standbild aus einem Video entnehmen
$ ffmpeg -ss 0:20:00 -i Besprechung.mp4 -vframes 1 -q:v 2 output.jpg
So sieht das Ergebnis aus:
Aus diesem Standbild konnte ich herauslesen welchen Ausschnitt des Bildschirms ausgeschnitten werden soll.
▻Ein Video auf ein kleineres Rechteck beschneiden
Ein Rechteck das an Koordinaten x/y startet, und breite out_w, höhe out_h hat aus einem Video ausschneiden und neue Datei out abspeichern:
$ ffmpeg -i Besprechung.mp4 -filter:v "crop=out_w:out_h:x:y" Slides.mp4