2016-04-28 54 views
0

當我從我的mac上的照片應用程序導出實時照片時,它會創建兩個單獨的文件:jpg和mov。 jpg附帶所有exif數據,而mov文件似乎總是關閉五個小時。Apple Live照片元數據

更具體地說,我使用了exiftool -option文件名。這些是jpg的結果(所有yyyy-mm-dd都是一樣的,所以我只包括時間輸出)。

DateTimeOriginal 10:24:38 
GPSDateTime 15:24:38Z 
MediaCreateDate none 
FileModifyDate 15:47:46-05:00 
ModifyDate 10:24:38 

這些是mov的結果。

DateTimeOriginal none 
GPSDateTime none 
MediaCreateDate 15:24:38 
FileModifyDate 15:47:29-05:00 
ModifyDate 15:24:40 

它應該顯示的時間是jpg的DateTimeOriginal。它看起來像mov的MediaCreateDate由於可能與時區相關的小故障而關閉了五個小時。

無論如何,我提出這個問題的原因是我想從使用Apple照片轉換到Dropbox中的普通文件夾樹。問題是有一個好的命名方案來保持事物的排序。我搜索了一下,使用Hazel(加上下面的腳本)工作得很好,如果它不適合現場照片的mov文件。用一個體面的命名方案來分類我的所有照片(和現場照片)。

如何調整下面的腳本以獲取mov文件的正確名稱?

,或者

如何使用榛告訴每一個MOV文件有JPG的原始日期時間使用相同的名稱?

通過這最後一件事我的意思是有一個腳本,如果餵了一個mov文件尋找一個同名的jpg並使用它的DateTimeOriginal。

順便說一句,這裏的第二個答案(Apple Live Photo file format)似乎解釋了照片如何跟蹤mov文件的元數據,但我不知道如何使用它。

我居然發現了兩個腳本。第一個在這裏(https://www.macstories.net/reviews/better-dropbox-camera-uploads-with-camerasync/)。

<?php 
date_default_timezone_set("Europe/Rome"); 
$date = exif_read_data($argv[1],"EXIF"); 
$date = $date["DateTimeOriginal"]; 
$time = date_parse_from_format("Y:m:d H:i:s",$date); 
$time = mktime($time["hour"],$time["minute"],$time["second"],$time["month"],$time["day"],$time["year"]); 
touch($argv[1],$time,$time); 
?> 

第二(https://www.noodlesoft.com/forums/viewtopic.php?f=4&t=2218)是

exiftool -P -d '%Y.%m.%d at %H.%M.%S' \ 
    '-filename<${FileModifyDate;}.%e' \ 
    '-filename<${GPSDateTime;}.%e' \ 
    '-filename<${MediaCreateDate;}.%e' \ 
    '-filename<${ModifyDate;}.%e' \ 
    '-filename<${DateTimeOriginal;}.%e' \ 
    "$1" 

我以前問過這個關於apple.stackexchange,但沒有得到重視。 https://apple.stackexchange.com/questions/236377/live-photos-metadata

回答

0

這裏有一個策略:從所有傳送文件的修改時間減去5小時,然後進行正常:

cd folder-with-your-stuff 
find * -name "*.mov" | 
    while read filepath; do 
    olddate=$(date -R -r "$filepath") 
    touch -d "$olddate - 5 hours" "$filepath" 
    done 

編號:https://askubuntu.com/questions/62492/how-can-i-change-the-date-modified-created-of-a-file

+0

謝謝!但是我害怕的是,如果我在不同的時區拍攝照片,所有的mov文件現在都不會有不同的小時數......更好的策略可能是製作一個腳本,需要一個mov文件,尋找具有相同名稱的jpg,並使用exiftool來獲取正確的日期。但我不知道該怎麼寫。 –

+0

對不起,我想我誤解了你的問題。好像你在文件內部使用exif數據,而我的答案隻影響文件系統修改日期。你能告訴我一個mov-jpg對的'stat a.jpg'和'stat a.mov'的結果嗎?另外,每個mov和相應的jpg在同一個文件夾中,或者至少在系統附近的文件夾中? – webb

+0

我在統計輸出中尋找什麼?我看到了一堆日期,但沒有一個是正確的(即沒有一個顯示10:24:38)。 Apple Photos存儲文件的方式一塌糊塗。我總是可以進行手動導出,這樣所有的jpg和mov都會在同一個文件夾中成對出現(同名,不同的擴展名)。這最後一個解決方案並不理想,但也許使寫腳本更容易一些? –

0

很舊的在這一點上,而是思想我會沉重。

GPSDateTime始終在UTC時區(因此Z附加到日期)。因此,MediaCreateDate似乎設置爲UTC時間,該區域被剝離。

0

還在權衡對這個老問題:

當有現場照片爲JPG分離和MOV文件時,該數據將讓你的文件鏈接。 MOV文件具有名爲ContentIdentifier的EXIF標籤,該標籤看起來與JPG文件的MakerNotes EXIF標籤中的標籤Apple_0x0011相同。

使用exiftool:

$ exiftool -u -s IMG_8403.JPG | grep Apple_0x0011 Apple_0x0011 : C09DCB26-D321-4254-9F68-2E2E7FA16155 $ exiftool -ContentIdentifier IMG_8403.MOV Content Identifier : C09DCB26-D321-4254-9F68-2E2E7FA16155