ExifTool
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
ExifTool 🇬🇧 ist ein Perl-Modul mit einem zusätzlichen Kommandozeilen-Werkzeug zum Lesen und Schreiben der Metainformationen von Bild-, aber auch Audio- und Video-Dateien. Es ist das umfangreichste und zu empfehlende Werkzeug, wenn es um die Änderung von Metadaten der Formate Exif, IPTC/IIM und XMP in digitalen Bildern geht.
Der entscheidende Vorteil von Metadaten ist, dass diese im Allgemeinen im Bild gespeichert werden - ohne das Bild selbst zu beeinflussen. Damit entspricht diese Vorgehensweise dem Festhalten von Informationen auf der Rückseite von Papierbildern. Während Exif-Daten direkt in der Kamera erzeugt und gespeichert werden, dienen IPTC/IIM und das neuere XMP für Bildinformationen zur Katalogisierung und Veröffentlichung. Eine Ausnahme stellt nur XMP insofern dar, dass Metadaten auch in einer zusätzlichen Datei pro Bild ("sidecar") abgelegt werden können, wenn das Dateiformat keine Integration zulässt.
Unterstützt werden die Formate Exif (inkl. GPS-Daten), IPTC/IIM, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP und ID3-Metainformationen sowie die (RAW-)Metainformationen, die verschiedene Digitalkameras (von Canon, Casio, Fuji, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Ricoh, Sanyo und Sigma/Foveon) in den Bildern speichern. Des Weiteren werden auch viele andere Dateiformate wie PDF und Office-Dokumente wie .doc oder .odt unterstützt. Eine vollständige Liste aller unterstützten Dateiformate findet sich auf der Projektseite.
Darüber hinaus verwenden viele Programme ExifTool im Hintergrund als Werkzeug zum Lesen und Schreiben der Metadaten, wie z.B. Prune 🇬🇧 zur Bildverortung. Leider fehlt unter Linux bisher eine grafische Oberfläche für ExifTool, aber im Abschnitt Links am Ende des Artikels sind Hinweise auf alternative Programme zu finden.
Installation¶
Folgende Pakete müssen installiert werden [1]:
libimage-exiftool-perl (universe)
perl-doc (optional, für die englische Dokumentation)
Befehl zum Installieren der Pakete:
sudo apt-get install libimage-exiftool-perl perl-doc
Oder mit apturl installieren, Link: apt://libimage-exiftool-perl,perl-doc
Benutzung¶
Die allgemeine Syntax von ExifTool lautet:
exiftool [Optionen] DATEINAME.EXT
Wird das Programm ohne Option(en) aufgerufen [2], so werden alle Informationen zur angegebenen Datei auf der Standardausgabe ausgegeben (also in der Regel auf dem Bildschirm). Eine detaillierte Übersicht der möglichen Optionen findet man im Unterartikel ExifTool/Optionen.
Zusätzlich sehr empfehlenswert ist die Manpage zu ExifTool. Die Manpage liefert außerdem eine vollständige Liste der unterstützen Dateiformate und Hinweise, ob Metadaten nur gelesen oder auch geschrieben werden können. Die offizielle Dokumentation 🇬🇧 beschreibt den aktuellen Stand von ExifTool, der nicht der installierten Version unter Ubuntu entsprechen muss.
Beispiele¶
Nachfolgend einige Beispiele für Befehle, die man in einem Terminalfenster [2] nutzen kann. Statt DATEINAME.EXT kann auch ein kompletter Ordner, mit .jpg alle JPG-Dateien oder mit . alle Dateien im aktuellen Ordner angegeben werden. Die Option -overwrite_original
sorgt dafür, dass keine Sicherungskopie (DATEINAME.EXT_original) angelegt wird.
Auslesen von Informationen¶
Extrahieren eines Thumbnail-Bildes aus dem Bild (sofern vorhanden):
exiftool -b -ThumbnailImage DATEINAME.EXT > DATEINAME_thumb.jpg
Extrahieren eines Preview-Bildes aus dem Bild (sofern vorhanden):
exiftool -b -PreviewImage DATEINAME.EXT > DATEINAME_preview.jpg
Ausgabe von Dateiname und Bildgröße (Breite mal Höhe) für JPG-Dateien:
exiftool -p '$Filename $ImageSize' *.jpg
Anzeige aller Bilder im aktuellen Verzeichnis, die mit einer Kamera von Canon aufgenommen wurden:
exiftool -p '$Filename' -m -if '$make eq "Canon"' .
Auslesen der Seriennummer (falls vorhanden; siehe Stolen Camera Finder 🇬🇧):
exiftool -SerialNumber DATEINAME.EXT
Extrahieren von Metadaten aller Bilder aus einem Verzeichnis in eine CSV-Datei:
exiftool -q -r -t -f -S -n -csv -fileName -GPSPosition -Model -FocalLength -ExposureTime -FNumber -ISO -BrightnessValue -LensID "." > DATEINAME.csv
Ändern von Informationen¶
Korrektur aller Datums- und Uhrzeiten (z.B. bei falsch eingestellter Kamera):
exiftool -AllDates='JJJJ:MM:TT HH:MM:SS' DATEINAME.EXT
Verschieben sämtlicher Bildzeiten um eine bestimmte Zeitdauer (hier: Addition; z.B. bei falsch eingestellter Kamera):
exiftool -AllDates+='HH:MM' -overwrite_original DATEINAME.EXT
Verlustfreie Änderung des dpi-Wertes mehrerer JPG-Dateien:
exiftool -Xresolution=150 -Yresolution=150 -ResolutionUnit=inches *.jpg
Kopieren der EXIF-Tags von einer Datei zu einer anderen, mit Ausnahme des "Orientation"-Tags, um etwaige Probleme mit redundanter Drehung des Bildes zu umgehen:
exiftool -TagsFromFile QUELLDATEI.EXT --Orientation ZIELDATEI.EXT
Umbenennen des Dateinamens anhand des Aufnahmedatums im EXIF-Tag. Ergebnis: 20110604_21h28m05s_Handy.jpg:
exiftool -P -'Filename<DateTimeOriginal' -d %Y%m%d_%Hh%Mm%Ss_Handy.%%e ORDNERNAME/*
Ändern von Zeit und Datum der Datei anhand des Aufnahmedatums im EXIF-Tag:
exiftool "-DateTimeOriginal>FileModifyDate" *.jpg
Löschen von Informationen¶
Entfernen aller Metadaten aus einer JPG-Datei:
exiftool -all= DATEINAME.JPG
Entfernen aller Metadaten aller JPG-Dateien im aktuellen Verzeichnis:
find . -iname "*.jpg" -type f -exec exiftool -all= {} \;
Problembehebung¶
Metadaten für unterschiedliche Standards schreiben¶
Bedingt durch die Koexistenz unterschiedlicher Metadaten-Standards (Exif, IPTC, XMP) und damit unterschiedlicher (oder auch fehlender) Tags, stellt sich die Frage, welches Format man zum Speichern von Metadaten verwenden sollte. Die MWG Tags 🇬🇧 von ExifTool lösen dieses Problem, in dem die gewünschten Informationen gleichzeitig in allen Metadaten-Formaten gespeichert werden (zumindest soweit technisch möglich). Der Vorteil, damit für alle Eventualitäten gerüstet zu sein, überwiegt den Nachteil der redundanten Speicherung bei weitem.
Folgendes Beispiel soll dies verdeutlichen. Professionelle Fotografen verschlagworten ihre Fotos mit Schlüsselwörtern (keywords). Statt diese jeweils einzeln für IPTC und XMP zu schreiben (Exif kennt keine Schlüsselwörter), schreibt ExifTool beide Formate:
exiftool -mwg:keywords="SCHLÜSSELWORT"
Für den praktischen Einsatz wandelt man diese Syntax leicht ab. Der folgende Befehl sorgt dafür, dass
ein Schlüsselwort hinzugefügt wird, ohne dabei vorhandene Schlüsselwörter zu löschen (
+=
)keine Sicherungskopien der Originaldateien angelegt werden
nur Dateien mit der Endung .jpg innerhalb eines Ordners berücksichtigt werden
exiftool -mwg:keywords+="SCHLÜSSELWORT" -overwrite_original *.jpg
Links¶
Projektseite 🇬🇧
ExifTool Tag Names 🇬🇧 - Liste aller unterstützten Tags
Photini - beschränkt sich zwar auf die wichtigsten Tags, aber sehr empfehlenswert
PhotoGrok 🇬🇧 - Java-basierte Anwendung
Alternativen für die Kommandozeile:
Metadaten Übersichtsartikel
Fotos Sortieren leicht gemacht 🇩🇪 Howto Bilder: optimiert umbenennen, Zeitstempel anpassen, nach Datum in Ordner sortieren, korrigieren der Aufnahmezeit usw.