Sortierung der Foto App

Mauki

Mauki

Aktives Mitglied
Thread Starter
Dabei seit
24.07.2002
Beiträge
15.499
Reaktionspunkte
189
die Bilder und Videos werden in Fotos doch nach dem Aufnahmedatum sortiert oder?

Habe das Problem das die Bilder und Videos von meiner Actioncam völlig durcheinander sortiert sind Quasi in der Reihenfolge in der ich sie über die App der Actioncam aufs iPhone lade. Kann es sein das da eine Uhrzeit gesetzt wird?

Wenn ich mir die Bilder anschaue wird aber oben immer die korrekte Uhrzeit angezeigt.

Ist echt blöd
 
Vermutlich darin begründet, dass er ja nicht auf den Datenträger der Kamera zugreift und die Datei über das Dateisystem kopiert. Das resultiert dann in einer neuen Datei mit entsprechend neuem Dateidatum. Ja, das könnte man vermutlich als Programmierer der App bedenken, aber scheinbar hat man das nicht bedacht, dass das Dateidatum auf das Aufnahmedatum gesetzt wird. (oder das iPhone lässt das nicht zu). Liest man die Bilder direkt von der Speicherkarte ohne Umweg über App und iPhone in den Mac, stimmen auch die Dateidaten nach dem Import in Fotos.
 
  • Gefällt mir
Reaktionen: Mauki
Sprich die Lösung ist halt über den Mac direkt.

Schade
 
Scheint wohl an Datum bearbeitet zu liegen
 

Anhänge

  • IMG_5525.jpg
    IMG_5525.jpg
    42,5 KB · Aufrufe: 144
Genau. Jede Datei hat ein Set an Daten (Erstellt, zuletzt geändert, etc.). Bei Fotos und Videos gibt es zudem Metadaten (z.B. Exif: Exchangeable Image File Format) wo noch einiges mehr enthalten ist, was Daten betrifft (z.B. DateTimeOriginal und CreateDate). Kameras aller Welt halten sich an diesen Standard und füllen die unzähligen Felder aus, auch das iPhone. Sogar Informationen zur Videorotation etc. kann man darin finden.

Jetzt ist das so, dass Foto-Programme zur Anzeige/Verwaltung normal die entsprechenden Exif Metadaten nutzen. Das ist deutlich sinnvoller, da sich die dateispezifischen Daten ständig ändern können. Kopierst du beispielsweise Bilder von einer SD Karte auf den Mac, dann gilt das schon als "neue Datei erstellt" und die Daten entsprechen nicht mehr dem Aufnahmedatum sondern dem Kopierdatum. Genau das gleiche wenn du Bilder auf einen anderen Rechner kopierst.

Und während iPhones zwar Bilder mit korrekten Exif Metadaten erstellen (DateTimeOriginal) und sogar Videos damit ausstatten (CreateDate), befolgt die Photos.app auf dem Mac diese Daten nicht. Stattdessen nutzen sie die dateispezifischen Daten.
Insbesondere sehr ärgerlich, wenn man in der Photos.app Fotos von verschiedenen Personen und dabei verschiedenen Quellen aufnehmen will. Läd man diese auf den Rechner, dann stimmen schon die Daten nicht mehr und die Sortierung ist für die Katz...

Ich finde es absolut unverständlich, was sich Apple hierbei gedacht hat.
Hab für meine Zwecke dieses Script geschrieben, das ich über alle "fremden" (= nicht direkt vom iPhone importierten) Inhalte drüberjage, die ich in die Photos.app stecken will. Es setzt das Erstell- und Geändertdatum einer Datei auf das Datum zurück, das in den Exif Metadaten als Erstelldatum steht. Das ganze benötigt exiftool im Pfad.

Code:
#!/usr/bin/env bash

Red="\e[31m"
Yellow="\e[33m"
BRed="\e[1;31m"
R="\e[0m"


# check dependencies
DEPS=("exiftool")
for i in "${DEPS[@]}"; do
    if ! command -v "$i" &> /dev/null; then
        echo "\"$i\" not found but required, please install it"
        exit 1
    fi
done


for f in "$@"
do
    if [ ! -f "$f" ]; then
        echo -e "${Yellow}Skipping${R} $f \t(not a regular file)"
        continue
    fi

    printf "Processing $f... \t"

    # try first tag
    ret=$(exiftool -DateTimeOriginal "$f")
    method="(DateTimeOriginal)"

    # ret empty? try another tag
    if [[ -z "${ret}" ]]; then
        ret=$(exiftool -CreateDate "$f")
        method="(CreateDate)"
    fi

    #  still/again empty?
    if [[ -z "${ret}" ]]; then
        printf "${Red}Error:${R} ${BRed}found no suitable date (\$ret = \"$ret\") \t ${method}${R}\n"
        continue
    fi

    printf "setting to: ${ret} \t ${method}\n"
    touch -t "${ret}" "${f}" || exit 1
done

Photos.app und die iOS Photos App haben noch mehr solche Merkwürdigkeiten. Z.B. kann die Photos.app wunderbar mit Zeitzonen und dem Datum umgehen: ein Foto das in Japan um 15:00 gemacht wurde, wird genau so angezeigt. Die iOS Photos App zeigt mir das Foto allerdings mit der Uhrzeit 8:00 Uhr an, weil sie (im Gegensatz zur Photos.app) den Ort, an dem das Foto aufgenommen wurde, komplett ignoriert...
 
@Kaito
Verstehe ich nicht, wie überträgst du Fotos vom iPhone zu Mac?
 
Das ist egal, darum geht es hier nicht. Um genau zu sein, das ist der einzige Fall, bei dem kein Problem existiert.
 
Dasselbe Problem hatte ich letztes Jahr auch, als ich während meiner Reise Fotos von der DSLR als Backup auf's iPhone übertragen von dort aus weiter nach OneDrive geladen habe. Der Zeitstempel in der Anzeige war zwar korrekt, die Sortierung allerdings völlig durcheinander. Ich meine, ich hab es als Bug gemeldet, scheint aber niemanden bei Apple wirklich zu interessieren :noplan:
 
Apple und EXIF... eine unendliche Geschichte, sie bringen es ja immer noch nicht fertig, dass der Finder EXIF Daten erkennt und danach sortieren kann.
 
Von einem Dateinmanager erwarte ich das auch gar nicht, aber von einer Foto-Bibliothek, da ist das im Prinzip Standard.
Und es ist ja nicht so, als ob die Photos.app kein Exif könnte. Photos.app kann diverse Tags nicht nur anzeigen, manche kannst du ja sogar im Programm ändern! Nur sortieren, nein das geht nicht... klingt fast wie ein schlechter Scherz.
 
  • Gefällt mir
Reaktionen: SwissBigTwin
Wie verhält es sich den wenn ich mit dem Camera Connection Kit die Bilder direkt von der Cam aufs iPhone übertragen. Ist da dann auch das Datum falsch?
 
Ich finde es absolut unverständlich, was sich Apple hierbei gedacht hat.
Hab für meine Zwecke dieses Script geschrieben, das ich über alle "fremden" (= nicht direkt vom iPhone importierten) Inhalte drüberjage, die ich in die Photos.app stecken will. Es setzt das Erstell- und Geändertdatum einer Datei auf das Datum zurück, das in den Exif Metadaten als Erstelldatum steht. Das ganze benötigt exiftool im Pfad.

Gibt es dazu eine DAU Anleitung, ich würde das gerne probieren.
 
Wie verhält es sich den wenn ich mit dem Camera Connection Kit die Bilder direkt von der Cam aufs iPhone übertragen. Ist da dann auch das Datum falsch?

Dann verhält es sich so:

Dasselbe Problem hatte ich letztes Jahr auch, als ich während meiner Reise Fotos von der DSLR als Backup auf's iPhone übertragen von dort aus weiter nach OneDrive geladen habe. Der Zeitstempel in der Anzeige war zwar korrekt, die Sortierung allerdings völlig durcheinander. Ich meine, ich hab es als Bug gemeldet, scheint aber niemanden bei Apple wirklich zu interessieren :noplan:

Ich hab genau jenes Camera Connection Kit (Lightning -> USB) verwendet, um die DSLR direkt am iPad/iPhone anzuschließen.
Du kannst dir den Aufwand also sparen ;)
 
Das Connection Kit würde ich nur kaufen weil die App für die Cam bisschen buggy ist. Wenn da mal bei der Übertragung per Wifi was schief geht, kann man die Datei nie wieder von der Cam aufs iPhone übertragen.
 
Gibt es dazu eine DAU Anleitung, ich würde das gerne probieren.
Ich hab mich mal am Automator versucht um das Skript zu verpacken: https://0x0.st/hbC.zip (zu groß um es im Forum anzuhängen).
Du benötigst dafür, wie erwähnt, exiftool: https://www.sno.phy.queensu.ca/~phil/exiftool/ Alternativ könntest du es auch via Homebrew installieren, falls dir das bekannt ist.

Wenn exiftool installiert ist, kannst du das angehängt Programm mit einem Doppeklick starten und es fragt dich nach Dateien (Mehrfachauswahl möglich).
Diese arbeitet es dann ab. Am Ende wird eine neue Textdatei geöffnet, in der die Resultate stehen (welche Datei verarbeitet wurde, welche nicht und auf welches Datum es gesetzt wurde). Das Dokument dient nur der Ausgabe des Protokolls und musst du natürlich nicht speichern, nur waren die im Automator verfügbaren Dialoge alle zu klein für die potentiell große Textmenge.
Bei vielen Bildern wird das ein bisschen Zeit benötigen, bei einzelnen natürlich nicht.

Dem Programm kannst du theoretisch alle Dateien füttern, es wird sich nicht wehren, wenn du ihm "falsche" Dateien gibst. Etwas schlimmes wird jedoch nie passieren, es schlägt halt fehl. Bei jeder Datei werden die Exifdaten untersucht und wenn es keine gibt, dann ist das halt ein Fehlschlag - kein Weltuntergang, keine Daten werden gelöscht oder bearbeitet.

Ein Hinweis noch: Dateien können auf diese Art nur rückdatiert werden. Das ist in der Praxis kein Problem, da es bei der Problematik hier ja um zu neue "Zuletzt geändert"-Zeiten geht.

Ein Hinweis noch zum Skript aus Post #7: merkte eben erst, dass es fehlerhaft ist. Da fehlt folgendes:
Code:
ret=$(echo "$ret" | sed -E 's/^[^0-9]+:[[:blank:]]+([0-9]{4}):([0-9]{2}):([0-9]{2})[[:blank:]]([0-9]{2}):([0-9]{2}):([0-9]{2})/\1\2\3\4\5.\6/g')
Ich habe bei mir lokal GNU sed genommen und die Zeile entfernt, da OSX ja BSD sed benutzt und vermutlich kaum wer GNU sed installiert hat. Hatte ganz vergessen, dass die Zeile wichtig war...
 
Ein Hinweis noch zum Skript aus Post #7: merkte eben erst, dass es fehlerhaft ist. Da fehlt folgendes:
Code:
ret=$(echo "$ret" | sed -E 's/^[^0-9]+:[[:blank:]]+([0-9]{4}):([0-9]{2}):([0-9]{2})[[:blank:]]([0-9]{2}):([0-9]{2}):([0-9]{2})/\1\2\3\4\5.\6/g')
Ich habe bei mir lokal GNU sed genommen und die Zeile entfernt, da OSX ja BSD sed benutzt und vermutlich kaum wer GNU sed installiert hat. Hatte ganz vergessen, dass die Zeile wichtig war...
An welcher Stelle gehört die Zeile rein oder ist das egal?
 
Über dem touch und nach dem exiftool, also so:
Code:
#!/usr/bin/env bash

Red="\e[31m"
Yellow="\e[33m"
BRed="\e[1;31m"
R="\e[0m"


# check dependencies
DEPS=("exiftool")
for i in "${DEPS[@]}"; do
   if ! command -v "$i" &> /dev/null; then
       echo "\"$i\" not found but required, please install it"
       exit 1
   fi
done


for f in "$@"
do
   if [ ! -f "$f" ]; then
       echo -e "${Yellow}Skipping${R} $f \t(not a regular file)"
       continue
   fi

   printf "Processing $f... \t"

   # try first tag
   ret=$(exiftool -DateTimeOriginal "$f")
   method="(DateTimeOriginal)"

   # ret empty? try another tag
   if [[ -z "${ret}" ]]; then
       ret=$(exiftool -CreateDate "$f")
       method="(CreateDate)"
   fi

    # extract date from timestamp in ret and format it for touch
    ret=$(echo "$ret" | sed -E 's/^[^0-9]+:[[:blank:]]+([0-9]{4}):([0-9]{2}):([0-9]{2})[[:blank:]]([0-9]{2}):([0-9]{2}):([0-9]{2})/\1\2\3\4\5.\6/g')

   # still/again empty?
   if [[ -z "${ret}" ]]; then
       printf "${Red}Error:${R} ${BRed}found no suitable date (\$ret = \"$ret\") \t ${method}${R}\n"
       continue
   fi

   printf "setting to: ${ret} \t ${method}\n"
   touch -t "${ret}" "${f}" || exit 1
done

Das Datum in den Exif Metadaten ist nett formatiert (2016:07:11 18:14:26) während es touch in einem anderen Form haben will (201607111814.26), darum kümmert sich die Zeile.
GNU sed hat den Vorteil, einen error (und vor allem: welchen) durch seinen Rückgabewert indizieren zu können. D.h. wenn die "Konvertierung" des Datumsformats fehlschlägt (weil unerwartetes Format), kann ich das bemerken und eine Fehlermeldung ausgeben, anstatt touch fehlschlagen zu lassen.
 
  • Gefällt mir
Reaktionen: KOJOTE
Ich habe nun meine Bilder mit dem Tool angepasst.

Jetzt habe ich mal ein Bild in Fotos Import und bin etwas irritiert. Unter "Alle Fotos" wird das Bild als letzen Foto angezeigt, was falsch ist. Unter dem Menüpunkt "Fotos" wird das Bild an der richtigen Stelle angezeigt.

Was ist den der Unterscheid zwischen "Alle Fotos" und "Fotos"?
 
Zurück
Oben Unten