The Sony A7iii camera can take videos and if pared with a cell phone via bluetooth it will record static GPS information in the file and in a separate xml file. Adobe Bridge and Google Photos do not read this information.
I can manually add GPS data in Bridge but that is a pain and Google Photos does not read Adobe GPS.
I understand that Google Photos reads the quicktime tags GPS info.
I would like to figure out how to have a command that reads the embedded GPS info from the MP4 and then adds it to both the Adobe Bridge GPS location and the Quicktime GPS location.
Is this possible?
If I type
exiftool -a -u -g C0001.MP4
I get this output from the camera's mp4 files.
Last Update : 2020:07:24 18:41:38-05:00
Target Material Umid Ref : 060A2B340101010501010D43130000009C8066C7549005DDD44DA4FFFEB98403
Duration Value : 795
Ltc Change Table Tc Fps : 30
Ltc Change Table Half Step : false
Ltc Change Table Ltc Change Frame Count: 0
Ltc Change Table Ltc Change Value: 42000100
Ltc Change Table Ltc Change Status: increment
Ltc Change Table Ltc Change Frame Count: 794
Ltc Change Table Ltc Change Value: 56260100
Ltc Change Table Ltc Change Status: end
Creation Date Value : 2020:07:24 18:41:38-05:00
Video Format Video Rec Port Port: DIRECT
Video Format Video Frame Video Codec: AVC_3840_2160_HP@L51
Video Format Video Frame Capture Fps: 29.97p
Video Format Video Frame Format Fps: 29.97p
Video Format Video Layout Pixel : 3840
Video Format Video Layout Num Of Vertical Line: 2160
Video Format Video Layout Aspect Ratio: 16:9
Audio Format Num Of Channel : 2
Audio Format Audio Rec Port Port: DIRECT
Audio Format Audio Rec Port Audio Codec: LPCM16
Audio Format Audio Rec Port Track Dst: CH1
Audio Format Audio Rec Port Port: DIRECT
Audio Format Audio Rec Port Audio Codec: LPCM16
Audio Format Audio Rec Port Track Dst: CH2
Device Manufacturer : Sony
Device Model Name : ILCE-7M3
Device Serial No : 4294967295
Recording Mode Type : normal
Recording Mode Cache Rec : false
Acquisition Record Group Name : CameraUnitMetadataSet
Acquisition Record Group Item Name: CaptureGammaEquation
Acquisition Record Group Item Value: rec709-xvycc
Acquisition Record Group Item Name: CaptureColorPrimaries
Acquisition Record Group Item Value: rec709
Acquisition Record Group Item Name: CodingEquations
Acquisition Record Group Item Value: rec709
Acquisition Record Group Name : ExifGPS
Acquisition Record Group Item Name: VersionID
Acquisition Record Group Item Value: 2.2.0.0
Acquisition Record Group Item Name: LatitudeRef
Acquisition Record Group Item Value: N
Acquisition Record Group Item Name: Latitude
Acquisition Record Group Item Value: 46:64:00.402
Acquisition Record Group Item Name: LongitudeRef
Acquisition Record Group Item Value: W
Acquisition Record Group Item Name: Longitude
Acquisition Record Group Item Value: 109:05:33.472
Acquisition Record Group Item Name: TimeStamp
Acquisition Record Group Item Value: 23:45:31.000
Acquisition Record Group Item Name: Status
Acquisition Record Group Item Value: A
Acquisition Record Group Item Name: MeasureMode
Acquisition Record Group Item Value: 2
Acquisition Record Group Item Name: MapDatum
Acquisition Record Group Item Value: WGS-84
Acquisition Record Group Item Name: DateStamp
Acquisition Record Group Item Value: 2020:07:24
Acquisition Record Group Item Name: Differential
Acquisition Record Group Item Value: 0
---- Composite ----
Image Size : 3840x2160
Megapixels : 8.3
Avg Bitrate : 59.4 Mbps
Ah, that looks like a tough thing to fix. The data is in NAME:VALUE pairs. Any chance of a small example file?
Here is a small clip vis Google Drive Link
https://drive.google.com/file/d/1wl-kdp80FFOKdtAlubdjYdazgnVoXBFB/view?usp=sharing (https://drive.google.com/file/d/1wl-kdp80FFOKdtAlubdjYdazgnVoXBFB/view?usp=sharing)
Here is the output from this clip
---- ExifTool ----
ExifTool Version Number : 12.09
Warning : [minor] The ExtractEmbedded option may find more tags in the media data
---- File ----
File Name : C0001.MP4
Directory : .
File Size : 24 MB
File Modification Date/Time : 2020:11:13 08:26:12-05:00
File Access Date/Time : 2020:11:13 08:31:39-05:00
File Inode Change Date/Time : 2020:11:13 08:31:39-05:00
File Permissions : rwxrwxrwx
File Type : MP4
File Type Extension : mp4
MIME Type : video/mp4
---- QuickTime ----
Major Brand : Sony XAVC
Minor Version : 100.1f.ff
Compatible Brands : XAVC, mp42, iso2
File Profile Version : 0
File Function Flags : Additional tracks
Audio Profile Version : 0
Audio Track ID : 2
Audio Codec : twos
Audio Codec Info : 0x0000
Audio Attributes : (none)
Audio Avg Bitrate : 1.54 Mbps
Audio Max Bitrate : 1.54 Mbps
Audio Sample Rate : 48000
Audio Channels : 2
Video Profile Version : 0
Video Track ID : 1
Video Codec : avc1
Video Codec Info : 0x1640033
Video Attributes : Variable bitrate, [16], [17]
Video Avg Bitrate : 60 Mbps
Video Max Bitrate : 60 Mbps
Video Avg Frame Rate : 29.97
Video Max Frame Rate : 29.97
Video Size : 3840x2160
Pixel Aspect Ratio : 1:1
Media Data Size : 25165632
Media Data Offset : 192
Media Data : (Binary data 25165632 bytes, use -b option to extract)
Movie Header Version : 0
Create Date : 2020:11:13 13:26:08
Modify Date : 2020:11:13 13:26:08
Time Scale : 90000
Duration : 3.50 s
Preferred Rate : 1
Preferred Volume : 100.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Preview Time : 0 s
Preview Duration : 0 s
Poster Time : 0 s
Selection Time : 0 s
Selection Duration : 0 s
Current Time : 0 s
Next Track ID : 4
Track Header Version : 0
Track Create Date : 2020:11:13 13:26:08
Track Modify Date : 2020:11:13 13:26:08
Track ID : 1
Track Duration : 3.50 s
Track Layer : 0
Track Volume : 0.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Image Width : 3840
Image Height : 2160
Unknown edts : (Binary data 28 bytes, use -b option to extract)
Media Header Version : 0
Media Create Date : 2020:11:13 13:26:08
Media Modify Date : 2020:11:13 13:26:08
Media Time Scale : 30000
Media Duration : 3.50 s
Media Language Code : und
Handler Type : Video Track
Handler Description : Video Media Handler
Graphics Mode : srcCopy
Op Color : 0 0 0
Compressor ID : avc1
Source Image Width : 3840
Source Image Height : 2160
X Resolution : 72
Y Resolution : 72
Compressor Name : AVC Coding
Bit Depth : 24
AVC Configuration : (Binary data 161 bytes, use -b option to extract)
Video Frame Rate : 29.97
Composition Time To Sample : (Binary data 568 bytes, use -b option to extract)
Sample To Chunk : (Binary data 20 bytes, use -b option to extract)
Sample Sizes : (Binary data 432 bytes, use -b option to extract)
Chunk Offset : (Binary data 36 bytes, use -b option to extract)
Sync Sample Table : (Binary data 24 bytes, use -b option to extract)
Track Property : Main track; No attributes; Priority 0
Track Header Version : 0
Track Create Date : 2020:11:13 13:26:08
Track Modify Date : 2020:11:13 13:26:08
Track ID : 2
Track Duration : 3.50 s
Track Layer : 0
Track Volume : 100.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Unknown edts : (Binary data 28 bytes, use -b option to extract)
Media Header Version : 0
Media Create Date : 2020:11:13 13:26:08
Media Modify Date : 2020:11:13 13:26:08
Media Time Scale : 48000
Media Duration : 3.50 s
Media Language Code : und
Handler Type : Audio Track
Handler Description : Sound Media Handler
Balance : 0
Audio Format : twos
Audio Channels : 2
Audio Bits Per Sample : 16
Audio Sample Rate : 48000
Time To Sample Table : (Binary data 16 bytes, use -b option to extract)
Sample To Chunk : (Binary data 32 bytes, use -b option to extract)
Sample Sizes : (Binary data 12 bytes, use -b option to extract)
Chunk Offset : (Binary data 36 bytes, use -b option to extract)
Track Property : Main track; No attributes; Priority 0
Track Header Version : 0
Track Create Date : 2020:11:13 13:26:08
Track Modify Date : 2020:11:13 13:26:08
Track ID : 3
Track Duration : 3.50 s
Track Layer : 0
Track Volume : 0.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Content Describes : Track 1
Unknown edts : (Binary data 28 bytes, use -b option to extract)
Media Header Version : 0
Media Create Date : 2020:11:13 13:26:08
Media Modify Date : 2020:11:13 13:26:08
Media Time Scale : 30000
Media Duration : 3.50 s
Media Language Code : und
Handler Type : NRT Metadata
Handler Description : Timed Metadata Media Handler
Null Media Header : (Binary data 4 bytes, use -b option to extract)
Meta Format : rtmd
Time To Sample Table : (Binary data 16 bytes, use -b option to extract)
Sample To Chunk : (Binary data 20 bytes, use -b option to extract)
Sample Sizes : (Binary data 12 bytes, use -b option to extract)
Chunk Offset : (Binary data 36 bytes, use -b option to extract)
Track Property : [4]; No attributes; Priority 0
Time Zone : -05:00
Handler Type : Non-Real Time Metadata
Handler Description : Non-Real Time Metadata
---- XML ----
Last Update : 2020:11:13 08:26:08-05:00
Target Material Umid Ref : 060A2B340101010501010D4313000000C090FA59669105C2D44DA4FFFEB98403
Duration Value : 105
Ltc Change Table Tc Fps : 30
Ltc Change Table Half Step : false
Ltc Change Table Ltc Change Frame Count: 0
Ltc Change Table Ltc Change Value: 59350200
Ltc Change Table Ltc Change Status: increment
Ltc Change Table Ltc Change Frame Count: 104
Ltc Change Table Ltc Change Value: 43390200
Ltc Change Table Ltc Change Status: end
Creation Date Value : 2020:11:13 08:26:08-05:00
Video Format Video Rec Port Port: DIRECT
Video Format Video Frame Video Codec: AVC_3840_2160_HP@L51
Video Format Video Frame Capture Fps: 29.97p
Video Format Video Frame Format Fps: 29.97p
Video Format Video Layout Pixel : 3840
Video Format Video Layout Num Of Vertical Line: 2160
Video Format Video Layout Aspect Ratio: 16:9
Audio Format Num Of Channel : 2
Audio Format Audio Rec Port Port: DIRECT
Audio Format Audio Rec Port Audio Codec: LPCM16
Audio Format Audio Rec Port Track Dst: CH1
Audio Format Audio Rec Port Port: DIRECT
Audio Format Audio Rec Port Audio Codec: LPCM16
Audio Format Audio Rec Port Track Dst: CH2
Device Manufacturer : Sony
Device Model Name : ILCE-7M3
Device Serial No : 4294967295
Recording Mode Type : normal
Recording Mode Cache Rec : false
Acquisition Record Group Name : CameraUnitMetadataSet
Acquisition Record Group Item Name: CaptureGammaEquation
Acquisition Record Group Item Value: rec709-xvycc
Acquisition Record Group Item Name: CaptureColorPrimaries
Acquisition Record Group Item Value: rec709
Acquisition Record Group Item Name: CodingEquations
Acquisition Record Group Item Value: rec709
Acquisition Record Group Name : ExifGPS
Acquisition Record Group Item Name: VersionID
Acquisition Record Group Item Value: 2.2.0.0
Acquisition Record Group Item Name: LatitudeRef
Acquisition Record Group Item Value: N
Acquisition Record Group Item Name: Latitude
Acquisition Record Group Item Value: 41:29:19.675
Acquisition Record Group Item Name: LongitudeRef
Acquisition Record Group Item Value: W
Acquisition Record Group Item Name: Longitude
Acquisition Record Group Item Value: 81:33:34.310
Acquisition Record Group Item Name: TimeStamp
Acquisition Record Group Item Value: 13:26:03.000
Acquisition Record Group Item Name: Status
Acquisition Record Group Item Value: A
Acquisition Record Group Item Name: MeasureMode
Acquisition Record Group Item Value: 2
Acquisition Record Group Item Name: MapDatum
Acquisition Record Group Item Value: WGS-84
Acquisition Record Group Item Name: DateStamp
Acquisition Record Group Item Value: 2020:11:13
Acquisition Record Group Item Name: Differential
Acquisition Record Group Item Value: 0
---- Composite ----
Image Size : 3840x2160
Megapixels : 8.3
Avg Bitrate : 57.4 Mbps
Rotation : 0
Ok, I have an idea I want to try. Give me a day or so.
Hmm... I'm not getting my idea to work out.
Phil, is it possible to get all the duplicates of a tag in a user defined config? I was thinking about getting all the AcquisitionRecordGroupItemValue and AcquisitionRecordGroupItemName and making a hash out of them, returning only the specific pair if it exists. I can't seem to get all the duplicate entries.
Thanks for checking this out.
Do I need to get the GPS info out as plain text and then convert it and then place it back in to the quicktime gps tags?
Quote from: StarGeek on November 13, 2020, 02:24:32 PM
Phil, is it possible to get all the duplicates of a tag in a user defined config?
Yes, using the API calls. You can either call GetValue() with tag names like Copy1:AcquisitionRecordGroupItemName, etc, or call GetInfo() to get them all and search through them using GetGroup().
- Phil
Edit: Or, with some insider knowledge, the fastest way would be to generate the tag keys yourself for the call to GetValue(). The attached config file will create new tags for all of the AcquisitionRecordGroupItem tags. For the sample file, it will generate these additional tags:CaptureGammaEquation : rec709-xvycc
CaptureColorPrimaries : rec709
CodingEquations : rec709
VersionID : 2.2.0.0
LatitudeRef : N
Latitude : 41:29:19.675
LongitudeRef : W
Longitude : 81:33:34.310
TimeStamp : 13:26:03.000
Status : A
MeasureMode : 2
MapDatum : WGS-84
DateStamp : 2020:11:13
Differential : 0And I've generalized the join_tags.config file somewhat to allow this to be used for any XML name/value pairs by just changing these two lines at the start of the file to whatever you want:my $nameTag = 'AcquisitionRecordGroupItemName';
my $valueTag = 'AcquisitionRecordGroupItemValue';
And that did what I had in mind.
@lukemp4gps, download the config file attached to Phil's post. You would then use it to copy the data to the appropriate places.
Output from your example file using the config
C:\>exiftool -config join_tags.config -G1 -a -s -xml:all --Acquis* Y:\!temp\ccccc\I\C0001.MP4 |clip
[XML] LastUpdate : 2020:11:13 08:26:08-05:00
[XML] TargetMaterialUmidRef : 060A2B340101010501010D4313000000C090FA59669105C2D44DA4FFFEB98403
[XML] DurationValue : 105
[XML] LtcChangeTableTcFps : 30
[XML] LtcChangeTableHalfStep : false
[XML] LtcChangeTableLtcChangeFrameCount: 0
[XML] LtcChangeTableLtcChangeValue : 59350200
[XML] LtcChangeTableLtcChangeStatus : increment
[XML] LtcChangeTableLtcChangeFrameCount: 104
[XML] LtcChangeTableLtcChangeValue : 43390200
[XML] LtcChangeTableLtcChangeStatus : end
[XML] CreationDateValue : 2020:11:13 08:26:08-05:00
[XML] VideoFormatVideoRecPortPort : DIRECT
[XML] VideoFormatVideoFrameVideoCodec : AVC_3840_2160_HP@L51
[XML] VideoFormatVideoFrameCaptureFps : 29.97p
[XML] VideoFormatVideoFrameFormatFps : 29.97p
[XML] VideoFormatVideoLayoutPixel : 3840
[XML] VideoFormatVideoLayoutNumOfVerticalLine: 2160
[XML] VideoFormatVideoLayoutAspectRatio: 16:9
[XML] AudioFormatNumOfChannel : 2
[XML] AudioFormatAudioRecPortPort : DIRECT
[XML] AudioFormatAudioRecPortAudioCodec: LPCM16
[XML] AudioFormatAudioRecPortTrackDst : CH1
[XML] AudioFormatAudioRecPortPort : DIRECT
[XML] AudioFormatAudioRecPortAudioCodec: LPCM16
[XML] AudioFormatAudioRecPortTrackDst : CH2
[XML] DeviceManufacturer : Sony
[XML] DeviceModelName : ILCE-7M3
[XML] DeviceSerialNo : 4294967295
[XML] RecordingModeType : normal
[XML] RecordingModeCacheRec : false
[XML] CaptureGammaEquation : rec709-xvycc
[XML] CaptureColorPrimaries : rec709
[XML] CodingEquations : rec709
[XML] VersionID : 2.2.0.0
[XML] LatitudeRef : N
[XML] Latitude : 41:29:19.675
[XML] LongitudeRef : W
[XML] Longitude : 81:33:34.310
[XML] TimeStamp : 13:26:03.000
[XML] Status : A
[XML] MeasureMode : 2
[XML] MapDatum : WGS-84
[XML] DateStamp : 2020:11:13
[XML] Differential : 0
You could then use
exiftool -config join_tags.config "-GPSCoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef" /path/to/files/
Example output:
C:\>exiftool -config join_tags.config "-GPSCoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef" Y:\!temp\ccccc\I\C0001.MP4
Warning: [minor] The ExtractEmbedded option may find more tags in the media data - Y:/!temp/ccccc/I/C0001.MP4
1 image files updated
C:\>exiftool -g1 -a -s -GPSCoordinates Y:\!temp\ccccc\I\C0001.MP4
---- ItemList ----
GPSCoordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" W
Thank you both for the help. I tried on multiple files, including the example file that I uploaded but I keep getting errors.
I type the following into terminal on a mac. The config file and the video file are in the same directory.
exiftool -config join_tags.config "-GPSCoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef" C0001.MP4
Warning: [minor] The ExtractEmbedded option may find more tags in the media data - C0001.MP4
Warning: No writable tags set from C0001.MP4
Warning: Invalid tag name ':latitude :latituderef, :longitude :longituderef' - C0001.MP4
Quote from: lukemp4gps on November 25, 2020, 07:15:18 AM
I type the following into terminal on a mac.
Just realized that I needed single quotes on the mac terminal. It worked after that change.
But it does not add the GPS tags in the XMP location that Adobe Bridge can recognize and I uploaded the sample video to Google Photos after running the command and it also does not show GPS information.
Do I need to manually copy the GPS to the other locations? IS it possible to do this in a single command?
It also seems to strip out any existing exif data from the video file.
Quote from: lukemp4gps on November 25, 2020, 07:19:22 AM
But it does not add the GPS tags in the XMP location that Adobe Bridge can recognize and I uploaded the sample video to Google Photos after running the command and it also does not show GPS information.
For Bridge you have to copy the values to the XMP
GPSLatitude/
GPSLongitude tags.
Google Photos is picky with regards to the GPS coordinates. Try
Keys:GPSCoordinates. If not
Keys, try
UserData or
ItemList. At least one of them works, can't remember which atm.
QuoteDo I need to manually copy the GPS to the other locations? IS it possible to do this in a single command?
You can add other locations the same way.
QuoteIt also seems to strip out any existing exif data from the video file.
It shouldn't. What does it seem to be stripping. Are you using exiftool to see stripped data or something else?
Quote from: StarGeek on November 25, 2020, 10:56:08 AM
Google Photos is picky with regards to the GPS coordinates. Try Keys:GPSCoordinates. If not Keys, try UserData or ItemList. At least one of them works, can't remember which atm.
Google recognizes UserData:GPSCoordinates, but there may still be an unresolved incompatibility since the trailing "/" was added in version 12.09. I'll do something about this in 12.11, but until then you should use 12.08 or earlier when writing GPSCoordinates for compatibility with Google Photos.
- Phil
Edit: the incompatiblity wasn't due to the trailing "/" as changed in 12.09. Instead, Google Photos is picky about the number of digits after the decimal place, and requires at least 3 digits or it doesn't recognize the position. ExifTool 12.11 will pad to 3 digits if necessary. (read here (https://exiftool.org/forum/index.php?topic=11055.msg63960#msg63960).)
Thank you both again. This is my attempt to make all the tag changes happen with one command.
When I do this, the original C0001.MP4 file then does not have exif data (as seen in Bridge) was visible before.
It also creates a new file called C0001.MP4_original. If I rename this extension to MP4 it also does not have exif data visible in Bridge.
The correct date/time shows up in Google Photos but no GPS, at least with my command below.
exiftool -config join_tags.config '-GPSCoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef -GPSLatitude<$XML:Latitude $XML:LatitudeRef -GPSLongitute<$XML:Longitude $XML:LongitudeRef -UserData:GPSGoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef' C0001.MP4
It looks like it added the GPSCoordinates, but Google Photos doesn't seem to recognize it, or did I add it wrong?
GPS Coordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" E, 81 m Above Sea Level
If I type exiftool -a -u -g C0001.MP4
The data is in the file but not showing up in Bridge, the dateTimeOriginal and all meta data stops showing up.
---- ExifTool ----
ExifTool Version Number : 12.09
Warning : [minor] The ExtractEmbedded option may find more tags in the media data
---- File ----
File Name : C0001.MP4
Directory : .
File Size : 24 MB
File Modification Date/Time : 2020:11:25 11:42:40-05:00
File Access Date/Time : 2020:11:25 11:42:40-05:00
File Inode Change Date/Time : 2020:11:25 11:42:40-05:00
File Permissions : rw-r--r--
File Type : MP4
File Type Extension : mp4
MIME Type : video/mp4
---- QuickTime ----
Major Brand : Sony XAVC
Minor Version : 100.1f.ff
Compatible Brands : XAVC, mp42, iso2
File Profile Version : 0
File Function Flags : Additional tracks
Audio Profile Version : 0
Audio Track ID : 2
Audio Codec : twos
Audio Codec Info : 0x0000
Audio Attributes : (none)
Audio Avg Bitrate : 1.54 Mbps
Audio Max Bitrate : 1.54 Mbps
Audio Sample Rate : 48000
Audio Channels : 2
Video Profile Version : 0
Video Track ID : 1
Video Codec : avc1
Video Codec Info : 0x1640033
Video Attributes : Variable bitrate, [16], [17]
Video Avg Bitrate : 60 Mbps
Video Max Bitrate : 60 Mbps
Video Avg Frame Rate : 29.97
Video Max Frame Rate : 29.97
Video Size : 3840x2160
Pixel Aspect Ratio : 1:1
Movie Header Version : 0
Create Date : 2020:11:13 13:26:08
Modify Date : 2020:11:13 13:26:08
Time Scale : 90000
Duration : 3.50 s
Preferred Rate : 1
Preferred Volume : 100.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Preview Time : 0 s
Preview Duration : 0 s
Poster Time : 0 s
Selection Time : 0 s
Selection Duration : 0 s
Current Time : 0 s
Next Track ID : 4
Track Header Version : 0
Track Create Date : 2020:11:13 13:26:08
Track Modify Date : 2020:11:13 13:26:08
Track ID : 1
Track Duration : 3.50 s
Track Layer : 0
Track Volume : 0.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Image Width : 3840
Image Height : 2160
Unknown edts : (Binary data 28 bytes, use -b option to extract)
Media Header Version : 0
Media Create Date : 2020:11:13 13:26:08
Media Modify Date : 2020:11:13 13:26:08
Media Time Scale : 30000
Media Duration : 3.50 s
Media Language Code : und
Handler Type : Video Track
Handler Description : Video Media Handler
Graphics Mode : srcCopy
Op Color : 0 0 0
Compressor ID : avc1
Source Image Width : 3840
Source Image Height : 2160
X Resolution : 72
Y Resolution : 72
Compressor Name : AVC Coding
Bit Depth : 24
AVC Configuration : (Binary data 161 bytes, use -b option to extract)
Video Frame Rate : 29.97
Composition Time To Sample : (Binary data 568 bytes, use -b option to extract)
Sample To Chunk : (Binary data 20 bytes, use -b option to extract)
Sample Sizes : (Binary data 432 bytes, use -b option to extract)
Chunk Offset : (Binary data 36 bytes, use -b option to extract)
Sync Sample Table : (Binary data 24 bytes, use -b option to extract)
Track Property : Main track; No attributes; Priority 0
Track Header Version : 0
Track Create Date : 2020:11:13 13:26:08
Track Modify Date : 2020:11:13 13:26:08
Track ID : 2
Track Duration : 3.50 s
Track Layer : 0
Track Volume : 100.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Unknown edts : (Binary data 28 bytes, use -b option to extract)
Media Header Version : 0
Media Create Date : 2020:11:13 13:26:08
Media Modify Date : 2020:11:13 13:26:08
Media Time Scale : 48000
Media Duration : 3.50 s
Media Language Code : und
Handler Type : Audio Track
Handler Description : Sound Media Handler
Balance : 0
Audio Format : twos
Audio Channels : 2
Audio Bits Per Sample : 16
Audio Sample Rate : 48000
Time To Sample Table : (Binary data 16 bytes, use -b option to extract)
Sample To Chunk : (Binary data 32 bytes, use -b option to extract)
Sample Sizes : (Binary data 12 bytes, use -b option to extract)
Chunk Offset : (Binary data 36 bytes, use -b option to extract)
Track Property : Main track; No attributes; Priority 0
Track Header Version : 0
Track Create Date : 2020:11:13 13:26:08
Track Modify Date : 2020:11:13 13:26:08
Track ID : 3
Track Duration : 3.50 s
Track Layer : 0
Track Volume : 0.00%
Matrix Structure : 1 0 0 0 1 0 0 0 1
Content Describes : Track 1
Unknown edts : (Binary data 28 bytes, use -b option to extract)
Media Header Version : 0
Media Create Date : 2020:11:13 13:26:08
Media Modify Date : 2020:11:13 13:26:08
Media Time Scale : 30000
Media Duration : 3.50 s
Media Language Code : und
Handler Type : NRT Metadata
Handler Description : Timed Metadata Media Handler
Null Media Header : (Binary data 4 bytes, use -b option to extract)
Meta Format : rtmd
Time To Sample Table : (Binary data 16 bytes, use -b option to extract)
Sample To Chunk : (Binary data 20 bytes, use -b option to extract)
Sample Sizes : (Binary data 12 bytes, use -b option to extract)
Chunk Offset : (Binary data 36 bytes, use -b option to extract)
Track Property : [4]; No attributes; Priority 0
Time Zone : -05:00
GPS Coordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" E, 81 m Above Sea Level
Handler Type : Non-Real Time Metadata
Handler Description : Non-Real Time Metadata
Media Data Size : 25165632
Media Data Offset : 5289
Media Data : (Binary data 25165632 bytes, use -b option to extract)
---- XML ----
Last Update : 2020:11:13 08:26:08-05:00
Target Material Umid Ref : 060A2B340101010501010D4313000000C090FA59669105C2D44DA4FFFEB98403
Duration Value : 105
Ltc Change Table Tc Fps : 30
Ltc Change Table Half Step : false
Ltc Change Table Ltc Change Frame Count: 0
Ltc Change Table Ltc Change Value: 59350200
Ltc Change Table Ltc Change Status: increment
Ltc Change Table Ltc Change Frame Count: 104
Ltc Change Table Ltc Change Value: 43390200
Ltc Change Table Ltc Change Status: end
Creation Date Value : 2020:11:13 08:26:08-05:00
Video Format Video Rec Port Port: DIRECT
Video Format Video Frame Video Codec: AVC_3840_2160_HP@L51
Video Format Video Frame Capture Fps: 29.97p
Video Format Video Frame Format Fps: 29.97p
Video Format Video Layout Pixel : 3840
Video Format Video Layout Num Of Vertical Line: 2160
Video Format Video Layout Aspect Ratio: 16:9
Audio Format Num Of Channel : 2
Audio Format Audio Rec Port Port: DIRECT
Audio Format Audio Rec Port Audio Codec: LPCM16
Audio Format Audio Rec Port Track Dst: CH1
Audio Format Audio Rec Port Port: DIRECT
Audio Format Audio Rec Port Audio Codec: LPCM16
Audio Format Audio Rec Port Track Dst: CH2
Device Manufacturer : Sony
Device Model Name : ILCE-7M3
Device Serial No : 4294967295
Recording Mode Type : normal
Recording Mode Cache Rec : false
Acquisition Record Group Name : CameraUnitMetadataSet
Acquisition Record Group Item Name: CaptureGammaEquation
Acquisition Record Group Item Value: rec709-xvycc
Acquisition Record Group Item Name: CaptureColorPrimaries
Acquisition Record Group Item Value: rec709
Acquisition Record Group Item Name: CodingEquations
Acquisition Record Group Item Value: rec709
Acquisition Record Group Name : ExifGPS
Acquisition Record Group Item Name: VersionID
Acquisition Record Group Item Value: 2.2.0.0
Acquisition Record Group Item Name: LatitudeRef
Acquisition Record Group Item Value: N
Acquisition Record Group Item Name: Latitude
Acquisition Record Group Item Value: 41:29:19.675
Acquisition Record Group Item Name: LongitudeRef
Acquisition Record Group Item Value: W
Acquisition Record Group Item Name: Longitude
Acquisition Record Group Item Value: 81:33:34.310
Acquisition Record Group Item Name: TimeStamp
Acquisition Record Group Item Value: 13:26:03.000
Acquisition Record Group Item Name: Status
Acquisition Record Group Item Value: A
Acquisition Record Group Item Name: MeasureMode
Acquisition Record Group Item Value: 2
Acquisition Record Group Item Name: MapDatum
Acquisition Record Group Item Value: WGS-84
Acquisition Record Group Item Name: DateStamp
Acquisition Record Group Item Value: 2020:11:13
Acquisition Record Group Item Name: Differential
Acquisition Record Group Item Value: 0
---- Composite ----
Image Size : 3840x2160
Megapixels : 8.3
Avg Bitrate : 57.4 Mbps
GPS Altitude : 81 m
GPS Altitude Ref : Above Sea Level
GPS Latitude : 41 deg 29' 19.67" N
GPS Longitude : 81 deg 33' 34.31" E
Rotation : 0
GPS Position : 41 deg 29' 19.67" N, 81 deg 33' 34.31" E
There is something else going on because the "_original" file is the renamed file before it was edited by ExifTool. If the EXIF came from this file before renaming, then it should still be there.
- Phil
I edited my post above to show the exif data that is is the file after running the command.
I guess I something is wrong in the command on my end.
It has this weird entry
Unknown edts : (Binary data 28 bytes, use -b option to extract)
as well as these:
Time To Sample Table : (Binary data 16 bytes, use -b option to extract)
Sample To Chunk : (Binary data 32 bytes, use -b option to extract)
Sample Sizes : (Binary data 12 bytes, use -b option to extract)
Chunk Offset : (Binary data 36 bytes, use -b option to extract)
Could that be the problem?
Those are expected, and not indicative of any problem.
- Phil
Quote from: lukemp4gps on November 25, 2020, 11:45:00 AM
It also creates a new file called C0001.MP4_original. If I rename this extension to MP4 it also does not have exif data visible in Bridge.
As Phil says, that's the original file. It's not EXIF data. The only thing that would change might be the system time stamps or Mac xattr metadata.
What
exactly are you seeing that is missing. Use exiftool to verify and compare to the other program you are using.
Quote from: StarGeek on November 25, 2020, 12:28:41 PM
What exactly are you seeing that is missing. Use exiftool to verify and compare to the other program you are using.
Using the command
exiftool C0001.MP4 on the original file and after running the command some things change.
This is moved to the bottom:
Media Data Size : 25165632
Media Data Offset : 192This is added:
GPS Coordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" E, 81 m Above Sea Level
Media Data Size : 25165632
Media Data Offset : 5289
GPS Altitude : 81 m
GPS Altitude Ref : Above Sea Level
GPS Latitude : 41 deg 29' 19.67" N
GPS Longitude : 81 deg 33' 34.31" E
GPS Position : 41 deg 29' 19.67" N, 81 deg 33' 34.31" E
Acquisition Record Group Name : CameraUnitMetadataSet
Acquisition Record Group Item Name: CaptureGammaEquation
Acquisition Record Group Item Value: rec709-xvycc
Media Data Size : 25165632
Media Data Offset : 5289
Image Size : 3840x2160
Megapixels : 8.3
Avg Bitrate : 57.4 Mbps
GPS Altitude : 81 m
GPS Altitude Ref : Above Sea Level
GPS Latitude : 41 deg 29' 19.67" N
GPS Longitude : 81 deg 33' 34.31" E
Rotation : 0
GPS Position : 41 deg 29' 19.67" N, 81 deg 33' 34.31" E
It duplicates the Image Size, Megapixels and Avg Bitrate, the Acquisition Records among others.
Not sure if those moving to the bottom of tags, or duplication of tags are affecting the ability of Adobe Bridge to read the info.
This command you gave is quoted incorrectly and contained some typos. Also, you are writing QuickTime:GPSCoordinates and UserData:GPSCoordinates. Only one of these should be necessary. Try this:
exiftool -config join_tags.config '-GPSLatitude<$XML:Latitude $XML:LatitudeRef' '-GPSLongitude<$XML:Longitude $XML:LongitudeRef' '-UserData:GPSGoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef' C0001.MP4
- Phil
Thanks, that worked for Bridge and the other meta data shows in Bridge. I will have to download the previous version or wait till v.11 to test Google Photos.
The original .mp4 file does not have exif DateTimeOriginal set. I would like to set it. This was taken around 8:26am 11/13/2020 but the timestamps in the exif are as follows:
Create Date : 2020:11:13 13:26:08
Modify Date : 2020:11:13 13:26:08
Track Create Date : 2020:11:13 13:26:08
Track Modify Date : 2020:11:13 13:26:08
Media Create Date : 2020:11:13 13:26:08
Media Modify Date : 2020:11:13 13:26:08
Time Zone : -05:00
It is wrong for most of the values and it has a timezone that shows how off it is by. I will need to review the camera settings to set the timezone.
Strange because it has the time correct in one entry.
Creation Date Value : 2020:11:13 08:26:08-05:00
Should mp4s have the DateTimeOriginal set? Or is that just for still images?
I will take a stab at copying that 'Creation Date Value' to the other date tags.
Thanks again for helping me out.
See my edit of the post above. I don't think the change in ExifTool 12.09 was the problem after all. I think the problem is in the number of digits after the decimal point. Google photos is sensitive to this.
DateTimeOriginal typically isn't stored in MP4 videos. You don't need to write this.
Try using -api quicktimeutc in your commands if the camera knows about the time zone.
- Phil
Thanks so much. Appreciate the followup, and the help.
Also note that EXIF data in a video file is non-standard and exiftool can't write it. Make sure you're adding the -G (-groupNames) option (https://exiftool.org/exiftool_pod.html#G-NUM-:NUM...--groupNames) to see the group name. All EXIF data is metadata but not all metadata is EXIF data.
Also, as Phil said, Quicktime:DateTimeOriginal isn't typically added to most videos and if written incorrectly, will cause problems with Apple Photos app.
And some of that "added" data are Composite tags (https://exiftool.org/TagNames/Composite.html), not actually embedded data. Which is why you should use the -G# option to see this.
Quote from: StarGeek on June 26, 2020, 03:33:25 PM
Adobe Bridge (and other Adobe products) do not read the time stamp correctly and display the raw, unadjusted value.
You have to decide if it is more important for Finder to read the correct time or Bridge, because one or the other is going to have to be wrong.
You wrote the above in a separate thread. That seems to be the answer I have been looking for but didn't want. Unfortunate that Adobe does not read the timestamp correctly since I like the batch renaming tools in Adobe Bridge but it reads the time wrong and therefor labels the videos wrong.
Quote from: StarGeek on June 26, 2020, 03:33:25 PM
... the time stamp in video files is supposed to be set to UTC (see 4th paragraph under Quicktime tags (https://exiftool.org/TagNames/QuickTime.html)). Finder (and Windows) understands this and will adjust the displayed time accordingly.
Adobe Bridge (and other Adobe products) do not read the time stamp correctly and display the raw, unadjusted value.
You have to decide if it is more important for Finder to read the correct time or Bridge, because one or the other is going to have to be wrong.
Quote from: StarGeek on June 26, 2020, 03:33:25 PM
If you want to set the time correctly for Bridge, it will be a two step procedure, which, as a side effect, will set a tag read by the Apple Photo app correctly. First, you will want to copy the adjusted time into the DateTimeOriginal tag
exiftool -api QuickTimeUTC '-Quicktime:DateTimeOriginal<Quicktime:CreateDate' /path/to/files/
Then copy the adjusted time back into the CreateDate.
exiftool '-Quicktime:CreateDate<Quicktime:DateTimeOriginal' /path/to/files/
So, if I do this two step procedure the time will be set correctly for Bridge and Apple Photos but then will be read wrong in Finder?
Since Finder and Google Photos read the timezone / UTC combo correctly, I will likely keep it that way and just ignore Adobe's non standard video time use. I realize there is not a perfect standard for video as you stated above but seems like Adobe is more of the odd person out in this situation.
Quote from: lukemp4gps on November 30, 2020, 08:35:03 AM
So, if I do this two step procedure the time will be set correctly for Bridge and Apple Photos but then will be read wrong in Finder?
Test it to see, I don't recall the exact situation there. But the
Quicktime:DateTimeOriginal must include a time zone for Apple Photos to read it correctly.
I should have done that test myself before asking.
I did the test and running those two commands, makes the date correct in Bridge but wrong in Google Photos. Since Google Photos can read the "correct" date and time straight from the camera, I am goin to keep it that way.
For this camera's video files, Finder on the Mac seems to be a mess. It only shows the file creation date and does not see the contents created date.
Bottom line is that the correct date/time info is stored in the file. Just have to remember that Bridge doesn't see it right when batch renaming. Not sure what's going on with Finder so will have to do more testing. Hopefully Adobe starts reading time zones but I am not holding my breath.
Thanks again.
Just installed 12.11 and tried to set the GPS for Google Photos but when I upload the test file the GPS doesn't show up in Google Photos.
I restarted the computer to make sure that it is using the 12.11 IF it update worked for your tests, then it is something I am doing. I am going to let the video file sit in Google Photos and see if it later scans it and has the correct GPS.
Could you run this command on the file that doesn't show GPS in Google Photos?:
exiftool -G1 -a "-gps*" FILE
- Phil
[XMP-exif] GPS Latitude : 41 deg 29' 19.68" N
[XMP-exif] GPS Longitude : 81 deg 33' 34.31" W
[Composite] GPS Latitude Ref : North
[Composite] GPS Longitude Ref : West
[Composite] GPS Position : 41 deg 29' 19.68" N, 81 deg 33' 34.31" W
In case it's helpfull, I used the package installer to install 12.11 After I installed it, I deleted the files from the bin and then re-ran the package installer.
You need to write UserData:GPSCoordinates for Google Photos. This file does not contain that metadata.
- Phil
Using this command:
exiftool -config join_tags.config '-GPSLatitude<$XML:Latitude $XML:LatitudeRef' '-GPSLongitude<$XML:Longitude $XML:LongitudeRef' '-UserData:GPSGoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef' C0001.MP4
I thought it was writing the user data ...
There is no such tag "UserData:GPSGoordinates" :P
Sorry. I perpetuated your typo when I cut-and-pasted in one of my posts.
- Phil
Of course ... feel dumb but thanks for checking that.
The GPS Coordinates only has 2 decimal places.
[UserData] GPS Coordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" W
[XMP-exif] GPS Latitude : 41 deg 29' 19.68" N
[XMP-exif] GPS Longitude : 81 deg 33' 34.31" W
[Composite] GPS Latitude : 41 deg 29' 19.67" N
[Composite] GPS Longitude : 81 deg 33' 34.31" W
[Composite] GPS Latitude Ref : North
[Composite] GPS Longitude Ref : West
[Composite] GPS Position : 41 deg 29' 19.67" N, 81 deg 33' 34.31" W
I still couldn't get the GPS to show the location in Google Photos so I dug around the forums some more. Some people said that Google Photos needs an altitude so I put 0 in for altitute. Othes said that it reads Quicktime:GPSCoordinates or Keys:GPSCoordinates. I tried all of these with no luck so far.
Current command setting all the tags:
exiftool -config join_tags.config '-GPSLatitude<$XML:Latitude $XML:LatitudeRef' '-GPSLongitude<$XML:Longitude $XML:LongitudeRef' '-UserData:GPSCoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef, 0' '-Quicktime:GPSCoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef, 0' '-Keys:GPSCoordinates<$XML:Latitude $XML:LatitudeRef, $XML:Longitude $XML:LongitudeRef, 0' C0001.MP4
Output:
[ItemList] GPS Coordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" W, 0 m Above Sea Level
[UserData] GPS Coordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" W, 0 m Above Sea Level
[Keys] GPS Coordinates : 41 deg 29' 19.67" N, 81 deg 33' 34.31" W, 0 m Above Sea Level
[XMP-exif] GPS Latitude : 41 deg 29' 19.68" N
[XMP-exif] GPS Longitude : 81 deg 33' 34.31" W
[Composite] GPS Altitude : 0 m
[Composite] GPS Altitude Ref : Above Sea Level
[Composite] GPS Latitude : 41 deg 29' 19.67" N
[Composite] GPS Longitude : 81 deg 33' 34.31" W
[Composite] GPS Latitude Ref : North
[Composite] GPS Longitude Ref : West
[Composite] GPS Position : 41 deg 29' 19.67" N, 81 deg 33' 34.31" W
I was curious what videos taken by my cell phone have set for GPS so I downloaded one. It only used the UserData with no altitude setting.
The displayed number of decimals has nothing to do with the stored resolution. Use -n to see the coordinates in decimal degrees with no rounding.
My tests with Google Photos showed that Photos displayed UserData:GPSCoordinates as written by ExifTool 12.11 with or without an altitude. It is possible all of the other junk is confusing Photos. Start with a clean file and just write UserData:GPSCoordinates using 12.11. Use a file with a new name so Google doesn't cache the metadata from an old file (just to be safe).
- Phil
Quote from: Phil Harvey on November 30, 2020, 09:42:46 PM
Use a file with a new name so Google doesn't cache the metadata from an old file (just to be safe).
I thought that might be a problem and was trying with multiple test files yesterday. Apparently I just didn't have enough patience for Google to go through all the metadata as it was processing the clip. If the clip is still "black" on the preview then it wasn't working. This morning the preview shows a still frame and the location tagging works, even with the Bridge GPS tags.
Thanks so much for the help.