Exif

如何批量更改 JPEG 照片文件的 exif 數據(相機中設置的日期錯誤)?

  • November 4, 2021

我在一次活動中拍攝了 300 張照片。後來我注意到相機中的日期設置不正確——休息一天。文件中有很多 EXIF 數據,而不僅僅是創建日期。

如何僅更改所有相關 EXIF 欄位中包含的日期以更正日期(準確減去一天)?

此修改不應更改其他數據!

也許對於每個文件,我可以轉儲數據(exiftoolexiv2?),然後修改轉儲(使用awk?),然後從修改後的轉儲中替換 EXIF 數據?但是怎麼做?

編輯:

每個文件有很多數據:

# exiftool IMG_9040.JPG | wc 
   289    2218   13996

很多是日期:

# exiftool IMG_9040.JPG | grep 2021 | grep -v File
Modify Date                     : 2021:11:02 17:06:58
Date/Time Original              : 2021:11:02 17:06:58
Create Date                     : 2021:11:02 17:06:58
Create Date                     : 2021:11:02 17:06:58.24+01:00
Date/Time Original              : 2021:11:02 17:06:58.24+01:00
Modify Date                     : 2021:11:02 17:06:58.24+01:00

我希望改變所有這些。

Exiftool 有一個-alldates參數:

exiftool -alldates-=24 -filemodifydate-=24 -filecreatedate-=24   *.jpg

根據此論壇評論(Phil Harvey),上面的程式碼可以減少 24 小時:

https://exiftool.org/forum/index.php?topic=6330.msg31354#msg31354

您可以將上述程式碼與-out文件規範結合起來,例如-out ./newJPG.jpg或(在新目錄中),與-out ./newdir/newJPG.jpg. 規範在-out呼叫 後直接插入exiftool

您還可以嘗試添加到-out文件規範(在進行備份之後!),選項-overwrite_originalOR -overwrite_original_in_place,在呼叫之後直接插入exiftool. 詳情請參閱exiftool --help

請注意,這篇文章的早期版本建議使用該 -globalTimeShift參數,如下所示:

exiftool -globalTimeShift -24 -time:all  *.jpg

但是(根據 Phil Harvey 的說法),-globalTimeShift僅當您想要將轉換的日期/時間值複製到另一個標籤時才需要該選項。” ,例如-geo標籤。看:

https://exiftool.org/forum/index.php?topic=9224.msg47655#msg47655

https://exiftool.org/forum/index.php?topic=6330.msg31354#msg31354

https://exiftool.org/exiftool_pod.html

https://exiftool.org/

引用自:https://unix.stackexchange.com/questions/676032