Como alterar em lote dados exif para arquivos de fotos JPEG (data errada definida na câmera)?

Como alterar em lote dados exif para arquivos de fotos JPEG (data errada definida na câmera)?

Tirei 300 fotos em um evento. Depois percebi que a data estava acertada incorretamente na câmera - um dia de folga. Existem muitos dados EXIF ​​nos arquivos, não apenas datas de criação.

Como posso alterar apenas as datas contidas em todos os campos EXIF ​​relevantes para corrigir a data (menos um dia exatamente)?

Nenhum outro dado deve ser alterado por esta modificação!

Talvez para cada arquivo eu pudesse despejar os dados ( exiftoolou exiv2?), Modificar o despejo (com awk?) E substituir os dados EXIF ​​do despejo modificado? Mas como?

EDITAR:

Há muitos dados por arquivo:

# exiftool IMG_9040.JPG | wc 
    289    2218   13996

Muitas delas são datas:

# 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

Eu desejo mudar tudo isso.

Responder1

Exiftool tem um -alldatesparâmetro:

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

O código acima funciona para subtrair 24 horas de acordo com este comentário do Fórum (por Phil Harvey):

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

Você pode combinar o código acima com uma -outespecificação de arquivo, como -out ./newJPG.jpgou (em um novo diretório), com -out ./newdir/newJPG.jpg. A -outespecificação é inserida diretamente após a chamada para exiftool.

Você também pode tentar adicionar à -outespecificação do arquivo (depois de fazer backups!), a opção -overwrite_originalOR -overwrite_original_in_place, inserida diretamente após a chamada para exiftool. Veja exiftool --helppara detalhes.

Observe que uma revisão anterior desta postagem sugeriu o uso do -globalTimeShiftparâmetro, como em:

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

No entanto (de acordo com Phil Harvey),"A -globalTimeShiftopção é necessária apenas quando você deseja copiar um valor de data/hora alterado para outra tag.", como uma -geoetiqueta. Ver:

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/

Responder2

Você pode digitar :

exiftool -EXIF:CreateDate+=24 img.jpg

Para adicionar 24 horas.

informação relacionada