hvdwolf / jExifToolGUI

jExifToolGUI is a multi-platform java/Swing graphical frontend for the excellent command-line ExifTool application by Phil Harvey
https://hvdwolf.github.io/jExifToolGUI/
GNU General Public License v3.0
453 stars 37 forks source link

CreateDate and other EXIF properties not set on quicktime movies #280

Closed alber70g closed 1 year ago

alber70g commented 1 year ago

Version (please complete the following information):

Describe the bug

Seems to not write the file. Even though no errors occur

To Reproduce Steps to reproduce the behavior:

  1. Drag-and-drop a file
  2. Set a createdate
  3. Save
  4. View if it's changed

Expected: the date is set to what's entered Actual: no date present

https://user-images.githubusercontent.com/516972/210361244-a1f9f8ff-01a1-4b62-8cd9-6ded14109ca5.mp4

mrtngrsbch commented 1 year ago

Hi, Pay attention to the tags where you type:

I just tested it with an IMAGE and it works OK, but NOT with an MP4.

image

image

Check the ExifTool limitations for writing MP4 at: https://exiftool.org/

hvdwolf commented 1 year ago

Please note that exiftool has limited write/modify options for video files. Phil really created a photo tool. Maybe I should add some text to the app to explain this. You try to add EXIF data to an mp4. It is not possible to set a exif dates like DateTimeOriginal into a mp4. There is no metadata structure for it.

QuickTime has it's own structure and uses: -Quicktime:DateTimeOriginal="2023:01:10 08:59:59" -QuickTime:CreateDate="2023:01:10 08:59:59" -QuickTime:ModifyDate="2023:01:10 08:59:59"

Exiftool is very flexible though and allows for example for "-AllDates=2023:01:01 11:59:23". It will write to EXIF unless it finds a quicktime compatible video. Then it will write the quicktime tags. Currently you can only do this via the "exiftool commands" tab.

For some more info see https://exiftool.org/TagNames/QuickTime.html

In the menu you will find the "Date/Time -> Modify Date/Time". Currently it only works on Exif and XMP, so not on quicktime compatible videos (mp4, m4a, mov, etc.). In some routines I check on file extension. I could do that here as well for quicktime compatible movies: If so, write the quicktime tags. I will think about it.

hvdwolf commented 1 year ago

I just loaded an mp4 in JTG, selected it and switched to the "ExifTool Commands" tab and used as command: "-AllDates=2023:01:01 11:59:23"

Then checked the mp4 with exiftool (exiftool -G1 <some>.mp4 | grep -i date) and the following tags were changed:

[System]        File Modification Date/Time     : 2023:01:03 19:17:57+01:00
[System]        File Access Date/Time           : 2023:01:03 19:17:52+01:00
[System]        File Inode Change Date/Time     : 2023:01:03 19:17:57+01:00
[Track1]        Track Create Date               : 2022:06:26 13:03:26
[Track1]        Track Modify Date               : 2022:06:26 13:03:26
[Track2]        Media Create Date               : 2022:06:26 13:03:26
[Track2]        Media Modify Date               : 2022:06:26 13:03:26
[XMP-exif]      Date/Time Original              : 2023:01:01 11:59:23
[XMP-xmp]       Create Date                     : 2023:01:01 11:59:23
[XMP-xmp]       Modify Date                     : 2023:01:01 11:59:23
[Composite]     Create Date                     : 2022:06:26 13:03:26.105
[Composite]     Date/Time Original              : 2022:06:26 13:03:26.105
[Composite]     Modify Date                     : 2022:06:26 13:03:26.105

Of course the composite tags are read-only tags and created from other tags.

hvdwolf commented 1 year ago

I added a new menu item under menu Date/Time -> Modify all dates and times. Screenshot 2023-01-04 17 52 54

Screenshot 2023-01-04 17 50 27

I hope to release a new bug fix this weekend.