ExifTool – Aufnahmedatum mehrerer Bilder von unterschiedlichen Digicams korrigieren

Mein bester Kumpel hat vor Kurzem geheiratet, meine Aufgabe war es, unter anderen, alle Bilder der Gäste zu sammeln. “Klar, gerne!” dachte ich mir. Damit die mehreren hundert Bilder problemlos aussortiert werden konnten, wollte ich die Bilder nach dem Aufnahmendatum sortieren bzw. umbenennen. Alles kein Thema! Allerdings habe ich in diesem Moment die internen Zeiteinstellungen der Digitalkameras nicht bedacht. Natürlich hatten die Digicams nicht die gleichen Zeiteinstellungen, wäre auch zu schön gewesen, die eine ging 22 Minuten und 25 Sekunden vor, die andere 9 Stunden, 31 Minuten und 58 Sekunden nach, und so weiter.

Auf der Suche nach einer Möglichkeit das Aufnahmedatum im Nachhinein anzupassen bin ich über das Kommandozeilenprogramm ExifTool gestolpert. Dieses Programm kann alle möglichen Exif-Daten eines Bildes ändern oder löschen. Man kann sogar das Aufnahmedatum um eine bestimmte Zeitspanne korrigieren – also genau das was ich gesucht habe. Aber nun habe ich genug um den heißen Brei herum geschrieben. ;-)

Dieser Befehl …

zieht bei allen Exif-Zeitangaben 22 Minuten und 25 Sekunden ab, darum das - hinter AllDates.

Oder auch …

… dieser Befehl rechnet halt 9 Stunden, 31 Minuten und 58 Sekunden auf alle Exif-Zeitangaben drauf.

Zu guter Letzt habe ich dann das Aufnahmedatum als Dateiname verwendet, sodass man die Bilder über die Dateinamensortierung sortieren kann.

 

Die Dateinamen sehen dann so aus …

Sooooo, das war schon der ganze Voodoo-Zauber. :mrgreen:

Eine komfortable Windows-Alternative wäre das Programm Namexif.

Autor: _nico

Mac-User aus Leidenschaft, Blogger seit Oktober 2009, 88er Baujahr, technikaffin. Ich fühle mich aber nicht nur auf Apple'schen Betriebssystemen zu Hause, alles was eine Shell hat, interessiert mich besonders! Ihr findet mich auch auf Twitter und Google+. Gefällt dir loggn.de? Dann zeig es deinen Freunden auf Facebook oder Google+.

15 Kommentare

  1. Hallo,
    habe das selbe Problem auch öfters und mache es dann auch mit exiftool im Terminal. Für die Umbenennung nutze ich aber Amok Exif Sorter (http://wiki.ubuntuusers.de/AmoK_Exif_Sorter), wegen der Vorschau-Funktion der Dateinamen. Das Verschieben der Aufnahmezeit und des -datum kann das Tool auch, aber hat bei mir nicht funktioniert…

    Gut finde ich auch, dass man auch das Datum ändern kann

    Um +6 Stunden verschieben:
    exiftool -“AllDates”+=’06:00′ Photos_falsche_Zeit/* -o Photos_falsche_Zeit/korrekt

    Um +3 Jahre, 12 Tage, 16 Stunden und 16 Minuten verschieben:
    exiftool -“AllDates”+=’0003:00:12 16:16′ Photos_falsche_Zeit/* -o Photos_falsche_Zeit/korrekt

    Auf 13.08.2010 um 15:46:57 Uhr setzen:
    exiftool -“AllDates”=’2010:08:13 15:46:57′ Photos_falsche_Zeit/* -o Photos_falsche_Zeit/korrekt

    Gruß
    Ghost Rider

    • Danke für den Tipp, das mit dem Datum wusste ich nicht.
      Der Spitzenreiter lag um 89 Tage daneben, dann habe ich einfach 89*24h gerechnet – hat auch funktioniert. :-p

      Grüße Nico

  2. Das alles geht auch mit Ubuntu-Boardmitteln und ohne Kommandozeilenkenntnisse (auch wenn es mit diesen natürlich meist schneller und unkomplizierter funktioniert). Shotwell kann das Datum und die Zeit manipulieren, indem man ganz einfach alle gewünschten Bilder markiert und per “Photo -> Adjust Date and Time” um die gewünschte Zeit/das gewünschte Datum korrigiert.

  3. Mit diesem Problem bin ich in letzter Zeit häufiger konfrontiert worden und werde es wohl immer wieder sein. Zum Glück gibt’s dafür digiKam http://www.digikam.org/. Es gibt bestimmt Aufgaben, die ich gerne auf der Kommandozeile löse. Bildbearbeitung gehört definitiv nicht dazu.

    Ich nutze hierfür digiKam unter Kubuntu 11.04. In digiKam entsprechend ein oder mehrere Bilder markieren. Dann im Menü “Bild” auf “Zeit und Datum anpassen…” und schon kann ich Häkchen setzen welches Datum jeweils verändert werden soll. Soll z.B. der digiKam Zeitstempel verändert werden oder das letzte Änderungsdatum der Datei oder Erstellungsdatum IPTC, EXIF, Digitalisierungsdatum usw. und so fort. Oder auch alle genannten Daten. Jetzt noch bestimmen ob alle Bilder dasselbe Datum/Zeit bekommen sollen, oder von einem bestimmten Datum Werte abgezogen oder hinzugefügt werden sollen. Und schon hat man einen ganzen Schwung Bilder in die richtige Zeit gerückt.

    Hat man in digiKam “Sammlung nach Erstellungsdatum sortieren” gewählt, so wird das Album im selben Moment auch sofort in der neuen Reihenfolge angezeigt. Wer es noch nicht probiert hat, digiKam ist einfach inzwischen (m)eine absolute Empfehlung.

  4. Geht übrigens auch mit JHEAD der Spaß :)

    jhead -ta+1:00:00 *.JPG
    jhead -n%Y-%m-%d_%H-%M-%S *.JPG

    Wer will, kann es auch in einem Befehl kombinieren…

    jhead -ta+1:00:00 -n%Y-%m-%d_%H-%M-%S *.JPG

    Außerdem kann man gleich noch mit
    jhead -autorot *.JPG
    die Bilder automatisch korrekt aus den Neigungsangaben des Bildes rotieren lassen, sofern die Kamera einen Neigungssensor hatte. Dadurch werden Hochformatbilder korrekt angezeigt, wenn das verwendete Bildbetrachtungsprogramm den Neigungswert nicht verwendet/kennt.

  5. Pingback: ExifTool – Fehlermeldung – Bad MakerNotes directory und MakerNotes offsets may be incorrect « loggn.de – Mac OSX, Linux und manchmal auch Windows

  6. Pingback: Exiftool osx | Bewfalla

  7. Pingback: ExifTool – Aufnahmedatum mehrerer Bilder von unterschiedlichen Digicams korrigieren | Calyrium.org

  8. Hallo zusammen,

    geht das auch umgekehrt ? Also Dateiname -> exif Feld

    Meine Dateinamen sind wie folgt aufgebaut

    Ordner A
    20120426125218.jpg (Jahr/Monat/Tag/Stunde/Minute/Sekunde)
    20120426155218.jpg
    20120426123218.jpg
    Ordner B
    20110423155218.jpg
    20120423155223.jpg
    20120421123216.jpg

    usw.

    Jetzt möchte ich, das alle jpg Dateinamen per batch ins jeweilige exif Feld geschrieben werden.

    Für eure Tipps bin ich dankbar.

    Gruß, Torsten

    • Hi Torsten, das ist total easy – man muss das > oder < tauschen.

      In meinem Fall:
      exiftool -P -'Filename>DateTimeOriginal' -d %Y%m%d_%Hh%Mm%Ss_Baerbel.%%e Baerbel/*.jpg

      In deinem Fall, mit cd in das jeweilige Verzeichnis wechseln und dann:
      exiftool -P -'Filename>DateTimeOriginal' -d %Y%m%d%Hh%Mm%Ss.%%e *.jpg

      Gruß Nico

  9. Hallo Nico,

    danke für die Programmierung. Klappt super, wenn exiftool in dem Verzeichnis drin liegt.. Hast du noch eine Idee, wie auch die ganzen Unterverzeichnisse in einem Rutsch abgearbeitet werden können?

    Ich habe es mit -r’Filename..’ versucht, aber da macht er gar nichts.

    Gruss, Torsten

    • Hi Torsten, probier mal …

      exiftool -P -'Filename>DateTimeOriginal' -d %Y%m%d%Hh%Mm%Ss.%%e -ext jpg -r HIER_DEN_PFAD_ZUM_VERZEICHNIS

      … oder vorher in das jeweilige Verzeichnis mit den Unterordnern wechseln und …

      exiftool -P -'Filename>DateTimeOriginal' -d %Y%m%d%Hh%Mm%Ss.%%e -ext jpg -r .

      Gruß Nico

  10. Hallo,

    vielen Dank für die Tips. Die Option -P hat mir gefehlt und ich hab mich gewundert, warum meine Daten nicht stimmen ;)

    Ich habe aber noch ein weiteres Problem. Ich habe öfters Bilder dazwischen, die in der selben Sekunde entstanden sind. Bei schnellen Serienaufnahmen passiert mir das. Da spuckt mir exiftool (verständlicherweise) einen Fehler aus, dass das (z.B. zweite) Bild nicht umbenannt werden kann, weil es bereits ein Bild (das erste, welches in der Sekunde gemacht wurde) mit dem Namen gibt.

    Wie hast du sowas gelöst?

  11. Hallo Nico,

    ich bin durch Zufall auf diese Seite gestoßen. Habe das gleiche Problem wie Torsten und versuche auch, die Dateinamen in das exif Feld zu schreiben (meine Dateinamen sind genauso aufgebaut wie die von Torsten). Habe deinen Skript “exiftool -P -‘Filename>DateTimeOriginal’ -d %Y%m%d%Hh%Mm%Ss.%%e *.jpg” ausgeführt und bekomme als Rückmeldung nur Warning invaldid tag name ”Filename’ – Dateiname

    Hast du eine Idee woran das liegen könnte?

    Lieben Dank und Gruss von Klaus

    • Hi Klaus,
      könnte es sein, dass, das ' vor und hinter Filename>DateTimeOriginal ein ` oder irgendein anderes Zeichen beim Kopieren der Codezeile geworden ist?

      Gruß Nico

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.


+ 6 = dreizehn