AA_tools_lusi_scx_1200629.jpg

© Lusi, sxc.hu

Alles im Griff

Metainformationen bearbeiten und Bilder organisieren mit Exiftool

13.08.2010 Das Perl-Programm Exiftool erweist sich beim Umgang mit Metadaten als Schweizer Taschenmesser: Mit ihm organisieren Sie Ihre Bilder ruckzuck in einem sauber geordneten Archiv.

Zurück aus dem Urlaub, wandern die Bilder aus der ganzen Welt in der Regel in eine Fotodatenbank. Wer sich aber nicht darauf verlassen möchte, dass deren Tags und Kategorien zuverlässig kompatibel mit kommenden Versionen der Software bleiben, der nutzt das Dateisystem für eine grundlegende Struktur in den Aufnahmen. Das Perl-Programm Exiftool [1] leistet dabei zuverlässig Hilfe. Angenehmerweise holen Sie sich die Software ohne viel Aufwand auf die Platte (siehe Kasten "Installation").

Installation

Wer in den Repositories nach dem Begriff exif sucht, findet zwar einige Programme wie Exif, Exifprobe oder Exiftran, die aber allesamt nur einen Teil des Funktionsumfangs von Exiftool abdecken. Letzteres fällt nicht direkt ins Auge, da es als Teil einer Perl-Bibliothek (libimage-exif-perl) entstand. Manche Distributionen paketieren es aber in ein eigenes Paket (libimage-exiftool-perl). Die Namen weichen je nach verwendetem System vermutlich etwas ab.

Selbst ältere Versionen unterstützen bereits eine Vielzahl an Dateiformaten. Daher brauchen Sie in der Regel nichts weiter zu tun, als den Paketmanager anzuwerfen und die Software zu installieren.

Der Griff zur aktuellsten Version von der Website empfiehlt sich dann, wenn dies den Support für ein neueres, von Ihnen verwendetes Format verspricht. Die Bibliothek – und damit verbunden das Programm Exiftool – versteht sich nämlich nicht nur auf Bildformate: Sie beherrscht noch viele weitere Medienformate, wie zum Beispiel M2TS*[2], die auf manchen modernen Camcordern zum Einsatz kommt.

Um den digitalen Aufnahmen eine erste Ordnung zu verleihen, bietet es sich an, sie nach Datum zu organisieren. Eine mögliche Variante wäre ein Ordner pro Jahr mit Unterordnern für den Monat sowie darunter für den Tag, falls viele Dateien anfallen. Fotografieren Sie selten, reicht vermutlich eine weitere Ebene unterhalb des Jahres-Ordners.

Um die Bilder nun nicht von Hand zu sortieren, nutzen Sie am einfachsten die Informationen, die in den Bilddateien selbst stecken – die sogenannten EXIF-Tags. Das Tag DateTimeOriginal beispielsweise liefert, sofern Sie die Kamera korrekt eingestellt haben, das passende Datum zur Aufnahme. Das verwenden Sie nun, um mit Exiftool die Files vollautomatisch ins Archiv zu verschieben.

Das Programm beherrscht eine Vielzahl von Operationen auf EXIF-Daten. Die Website sowie die Manpage des Programms geben ausführlich darüber Auskunft. Für den genannten Fall machen Sie sich zunutze, dass die Software auf Wunsch Werte aus den EXIF-Tags als Eingabe für Operationen verwendet. Darüber hinaus bietet es die Möglichkeit, beim Umbenennen einen Formatstring einzusetzen, der Pfadtrenner enthält. Als Goodie erstellt es beim Verschieben der Bilder gleich alle noch fehlenden Verzeichnisstrukturen.

In einem Rutsch

Übergeben Sie Exiftool ein Verzeichnis als Argument, so bearbeitet es alle Dateien darin. Mit -r taucht es in Unterverzeichnisse ab, mit -ext EXT beschränken Sie das Bearbeiten auf Dateien mit der Endung EXT. In diesem sowie im Fall von Tags spielt es keine Rolle, ob Sie die Groß/Kleinschreibung beachten oder nicht.

Um den Zeitstempel der Dateien zu erhalten, wählen Sie die Option -P. Damit sehen Sie im Dateimanager ebenfalls den genauen Zeitpunkt der Aufnahme. Haben Sie die Dateien mittlerweile verschoben, stimmt dieses Datum natürlich nicht mehr mit dem Aufnahmedatum überein. Daher bietet es sich an, dies in einem ersten Schritt zu korrigieren. Das erledigen Sie mit dem folgenden Befehl:

exiftool -'filemodifydate<createdate' Dateiname

Die einfachen Anführungszeichen um die beiden Tags brauchen Sie, um zu verhindern, dass die Shell den Befehl auswertet und als Umleitung versteht.

Geben Sie als Argument statt eines Dateinamens ein Verzeichnis an, so bearbeitet das Programm wiederum alle Dateien darin. Für jedes File legt die Software aber in beiden Fällen eine Kopie des Originals an, an dessen Namen sie die Endung _original anhängt. Mit der Option -overwrite_original verhindern Sie das.

Da zu diesem Zeitpunkt vielleicht noch alle Dateien in einem Verzeichnis liegen, bietet es sich an, diese eventuell auch mit einem Kommentar und einem Copyright-Vermerk zu versehen:

exiftool -overwrite_original -P -copyright="Max Mustermann" -comment="Alle Mann nach Mallorca" Verzeichnis

Exiftool unterstützt weitere ausgeklügelte Operationen, mit denen Sie zum Beispiel die wichtigen Datumsangaben anpassen, falls Sie nach Umstellen auf die Sommer- oder Winterzeit vergessen haben, die Angaben in der Kamera zu aktualisieren. Zu den ausgefeiltesten Operationen gehört das Umbenennen der Dateien, wobei in diesen Prozess auch die Werte aus den Tags in der Datei einfließen dürfen.

Mit Format

Wie schon erwähnt liefert das EXIF-Tag DateTimeOriginal den Zeitpunkt (laut Kamera), zu dem Sie die Aufnahme gemacht haben. Wollen Sie also die Dateien entsprechend umbenennen, nutzen Sie dazu einen Formatstring, dessen Elemente sich aus einer Kombination von Prozentzeichen mit einem Buchstaben zusammensetzen. Die Bedeutung der Buchstaben korrespondiert mit Teilen des Datums respektive der Uhrzeit. So steht %m beispielsweise für den Monat, geschrieben als zweistellige Ziffer, oder %Y für das Jahr, geschrieben als vierstellige Ziffer.

Eine ausführliche Hilfe zu den verschiedenen Elementen eines Formatstrings finden Sie auf der Website von Exiftool. Hier erläutert der Autor auch, wie Sie die Prozentzeichen richtig setzen, wenn Sie die Technik in Skripten einsetzen möchten. Er zeigt zudem, welche zusätzlichen Zeichen es gibt, um Bestandteile des Pfads oder des Dateinamens mit in den String aufzunehmen. So kommt im Beispiel der Teil %%e zum Einsatz, der die Endung des alten Dateinamens an dieser Stelle einsetzt.

Um doppelt sicher zu gehen, legt der folgende Formatstring die Bilddaten jeweils in eine Dateisystemhierarchie aus Jahr, Monat und Tag und benennt gleichzeitig das Bild um, so dass der Name Datum und Uhrzeit getrennt durch einen Unterstrich reflektiert:

exiftool -P -'Filename<DateTimeOriginal' -d %Y/%m/%d/%Y%m%d_%H%M%S.%%e Verzeichnis

Läuft alles nach Plan, so finden Sie im Zielverzeichnis die gewünschte Hierarchie mit den umbenannten Bildern. Exiftool teilt am Ende des Durchlaufs mit, wieviele Verzeichnisse und Dateien es gescannt und wie viele Files es bearbeitet hat (Abbildung 1).

Abbildung 1

Abbildung 1: Nach einem Durchlauf macht Exiftool Angaben über die modifizierten Dateien.

Da sich fast alle Digitalkameras heute als externe Festplatte am System anmelden, beschränkt sich der Import mittels Exiftool auf eine Kommandozeile. Diese ließe sich zum Beispiel mittels einer Udev-Regel noch automatisieren [3]. Auf diese Weise könnten die Fotos nach dem Anstecken der Kamera an das USB-Kabel des Rechners künftig vollautomatisch ins Fotoarchiv wandern – bequemer geht es kaum.

Das Umbenennen der Bilder bringt einen Nachteil mit sich: Haben Sie sich beispielsweise auf einem Zettel während einer Reise Notizen zur Bildnummer gemacht, so fällt es nun schwer, diese zuzuordnen. Manche Kameras speichern allerdings die Bildnummer im Tag FileNumber. Dabei handelt es sich aber um eine herstellerspezifische "Marker Note" (siehe Kasten "EXIF, IPTC, XMP"), die sich nicht einmal in allen Modellen des gleichen Herstellers findet.

Da der Original-Dateiname nicht in den Standard-Tags von EXIF, IPTC oder XMP vorkommt, gilt es hier zu improvisieren. So ließe sich zum Beispiel das Feld ImageUniqueID missbrauchen, um darin den Dateinamen zu speichern. Da sich nach einer gewissen Zeit aber aufgrund des Namensschemas moderner Digitalkameras die Namen wiederholen, bringt das auf lange Sicht nur bedingt einen Ausweg. Sie brauchen dann trotzdem eine zweite Angabe, wie zu Beispiel das Datum.

EXIF, IPTC, XMP

Im Laufe der Zeit haben sich mehrere Ansätze herauskristallisiert, um Metadaten – also Angaben über den Autor, Inhalte und wie bei Fotos, technischen Details – in den Dateien einzubetten. Bei digitalen Bildern greifen die Hersteller bevorzugt auf das Exchangeable Image File Format (EXIF) zurück, dass aus der Schmiede der Japan Electronic and Information Technology Industries Association (JEITA) [4] stammt.

Vor allem im Bereich professioneller Fotografie kommen eine Reihe Tags zum Einsatz, die aus dem Information Interchange Model (IIM) der Newspaper Association of America (NAA) stammen und anschließend vom International Press Telecommunications Council (IPTC) weiterentwickelt wurde. Daher trägt der entsprechende Standard heute offiziell den Namen IPTC-NAA, in der Praxis verkürzt sich dies aber zu IPTC [5].

Mittlerweile verwenden viele Agenturen und Bilddatenbanken neben diesen Tags auch Adobes Extensible Metadata Platform (XMP), um Informationen in elektronischem Material zu speichern. Dieses Format basiert auf dem vom World Wide Web Consortium verabschiedeten RDF-Format [6].

Neben diesen Standards zum Speichern von Metadaten existieren die sogenannten Marker Notes: Dahinter verbergen sich herstellerspezifische Informationen, die nicht über alle Marken gleich umfangreiche ausfallen. Das führt beim Entschlüsseln der Informationen oft zu erheblichen Schwierigkeiten (siehe Kasten "Interview mit Phil Harvey").

Fazit

Die Möglichkeiten von Exiftool reichen weit über den gezeigten Einsatz im Rahmen einer Bilddatenbank hinaus. Das Einfügen von Geotags oder das Ergänzen von Bildern um neue Daten im komfortablen Stapelbetrieb machen das Tool zu einer unersetzlichen Hilfe für jeden, der viel mit digitalen Bildern arbeitet.

Mit Exiv2 existiert ein Projekt, das versucht, die Funktionen von Exiftool in C++ abzubilden. Das würde unter Umständen einen Geschwindigkeitsgewinn bedeuten. Derzeit fehlen aber noch viele Funktionen aus dem Original, so dass Sie bei komplexen Operationen nicht um Exiftool herumkommen.

Bleibt noch zu erwähnen, dass sich der Funktionsumfang nicht allein auf digitale Bilder beschränkt: Auch Video- und Audiodateien entlockt das kleine Tool einiges an Informationen. Das Hauptaufgabengebiet von Exiftool stellen aber digitale Fotos dar.

Interview mit Phil Harvey

Hinter dem gewaltigen Projekt Exiftool steckt im Wesentlichen eine Person: Phil Harvey. In einem kurzen Interview erzählt der Programmautor, was ihn zu dem Projekt bewogen hat und wie es aktuell um die Situation im Bereich Metadaten bestellt ist.

LinuxUser: Die erste Version von Exiftool erschien im November 2003. Was war deine Motivation, mit dem Projekt zu beginnen?

Phil Harvey: 2003 entschied ich mich, Exiftool in ein eigenes Projekt auszulagern. Davor gehörte es zu einem Skript, das ich bereits 2001 entwickelt hatte, um Bilder zu katalogisieren. Ich benutze dieses Skript immer noch, um Fotos von meinen Digitalkameras herunterzuladen und in einem HTML-basierten Katalog zu organisieren, der auch die Metadaten anzeigt. Als erstes hatte ich damals den Kommentar aus den JPEGs extrahiert, aber schnell merkte ich, dass da noch mehr Daten in den Dateien schlummerten. Das machte mich neugierig.

LU: Arbeitest Du nur in Deiner Freizeit an dem Programm, oder bezahlt Dich jemand für die Arbeit?

PH: Ich arbeite nur in meiner Freizeit an dem Programm, aber ich nehme Spenden an und möchte mich an dieser Stelle bei allen bedanken, die etwas zu dem Projekt beigetragen haben.

LU: Was waren die größten Probleme, auf die Du beim Untersuchen der Metadaten gestoßen bist?

PH: Zu den größten Herausforderungen gehört das Abfangen der Fehler, die andere Software in die Metadaten einbaut. Man sollte denke, dass es sich bei EXIF eigentlich eine ziemlich gradlinige Vorgabe handelt, nichtsdestoweniger sind Formatfehler in den Daten weit verbreitet. Viele Kameras haben kleine Macken, und diese ganzen Probleme in einer vernünftigen Weise zu behandeln, ist sehr schwierig.

LU: Habe die Firmen aus der Fehlern der Vergangenheit gelernt, oder wartet da immer noch viel Arbeit auf Dich? Ist es heute einfacher, Metadaten aus den Dateien zu extrahieren?

PH: Unternehmen lernen nicht aus ihren Fehlern. Strukturelle Fehler in den Metadaten sind nach wie vor sehr verbreitet. Darüber hinaus verursachen die ungenügenden Standards für Metadaten zusätzliche Probleme. Wo ich konnte, habe ich versucht, an der Verbesserung der Standards mitzuarbeiten. Derzeit bin ich als Gutachter für die XMP- und MWG-Spezifikationen (MWG: Metadata Working Group [7]) tätig.

In jüngster Zeit explodiert die Anzahl der Meta-Informationen. Etliche Kameratypen speichern immer neue Daten, die Zahl der dazu benötigten Standards steigt rapide an. Allein in den letzten drei Monaten sind von allen drei wichtigen Standards (EXIF, IPTC und XMP) neue Versionen der Spezifikation herausgekommen, und ein neuer Satz von Empfehlungen der MWG steht vor der Tür. Es gibt mehr zu tun den je, um Exiftool auf dem neusten Stand zu halten.

LU: Welchen Rat kannst Du Lesern mit auf den Weg geben, wenn Sie fragen, auf welche Weise sie am besten dem Projekt helfen können?

PH: Jeder, der eine Digitalkamera besitzt, kann mithelfen, unbekannte Felder in den Metadaten zu dekodieren. In diesem Bereich gibt es immer viel zu tun. Neue Informationen lassen sich beispielsweise erschließen, indem man systematisch die Kameraeinstellungen ändert und die Unterschiede der Ausgabe exiftool -U analysiert. Viele der Maker-Note-Informationen (siehe Kasten "EXIF, IPTC, XMP") sind auf dieser Weise von Anwendern entschlüsselt worden.

Für mich ist das wie eine Ostereier-Suche: Es macht einfach Spaß, die Bedeutung von unbekannten Informationen in meinen Bildern zu entdecken.

LU: Vielen Dank für die interessanten Hintergrundinformationen, Phil!

Infos

[1] Exiftool: http://www.sno.phy.queensu.ca/~phil/exiftool/

[2] MPEG-2 Transport Stream: http://en.wikipedia.org/wiki/.m2ts

[3] Geräteverwaltung mit Udev: Erik Amberg, "Sauber verzahnt", LU 09/2008, S. 76, http://www.linux-community.de/artikel/16484

[4] JEITA: http://www.jeita.or.jp

[5] IPTC-NAA: http://de.wikipedia.org/wiki/IPTC-NAA-Standard

[6] Extensible Metadata Plattform: http://www.adobe.com/products/xmp/

[7] Metadata Working Group: http://www.metadataworkinggroup.org

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare