Hi guys, this is my first post here, i tried to do my homework as best as i could, both to speed the process up and take up less time from you.
I recently purchased a M6L dual stream motorbyke DVR with an GPS and would like to be able to extract the GPS information, namely, the position, speed, altitude and maybe time and date.
Using the -U option on a file I got this:
ExifTool Version Number : 10.10
File Name : REC_190306-083231F.MOV
Directory : .
File Size : 439 MB
File Modification Date/Time : 2019:03:07 18:08:59+00:00
File Access Date/Time : 2019:03:07 23:58:51+00:00
File Inode Change Date/Time : 2019:03:07 18:08:59+00:00
File Permissions : rw-r--r--
File Type : MOV
File Type Extension : mov
MIME Type : video/quicktime
Major Brand : Apple QuickTime (.MOV/QT)
Minor Version : 0.2.0
Compatible Brands : qt
Skip : (Binary data 65544 bytes, use -b option to extract)
Movie Data Size : 459797784
Movie Data Offset : 65580
Movie Header Version : 0
Create Date : 0000:00:00 00:00:00
Modify Date : 0000:00:00 00:00:00
Time Scale : 30000
Duration : 0:05:00
Preferred Rate : 1
Preferred Volume : 100.00%
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 : 3
Track Header Version : 0
Track Create Date : 0000:00:00 00:00:00
Track Modify Date : 0000:00:00 00:00:00
Track ID : 1
Track Duration : 0:05:00
Track Layer : 0
Track Volume : 0.00%
Image Width : 1920
Image Height : 1080
Graphics Mode : srcCopy
Op Color : 0 0 0
Compressor ID : avc1
Source Image Width : 1920
Source Image Height : 1080
X Resolution : 72
Y Resolution : 72
Bit Depth : 24
Unknown avcC : (Binary data 25 bytes, use -b option to extract)
Video Frame Rate : 29.97
Sync Sample Table : (Binary data 2408 bytes, use -b option to extract)
Matrix Structure : 1 0 0 0 1 0 0 0 1
Media Header Version : 0
Media Create Date : 0000:00:00 00:00:00
Media Modify Date : 0000:00:00 00:00:00
Media Time Scale : 32000
Media Duration : 0:05:00
Handler Type : Audio Track
Handler Description : Sound Media Handler
Balance : 0
Audio Channels : 2
Audio Bits Per Sample : 4
Audio Sample Rate : 32000
Purchase File Format : ms.
Unknown msx00x11 : (Binary data 20 bytes, use -b option to extract)
Unknown 0x0000 : (Binary data 0 bytes, use -b option to extract)
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 37768 bytes, use -b option to extract)
Unknown IDIT : (Binary data 20 bytes, use -b option to extract)
Unknown gpsa : (Binary data 4 bytes, use -b option to extract)
Unknown gps0 : (Binary data 9600 bytes, use -b option to extract)
Unknown gsea : (Binary data 20 bytes, use -b option to extract)
Unknown gsen : (Binary data 4497 bytes, use -b option to extract)
Avg Bitrate : 12.3 Mbps
Image Size : 1920x1080
Megapixels : 2.1
Rotation : 0
The hardware also records the g forces, but i focused on the gps0 metadata.
I managed to export it using:
exiftool -u -s -b -Unknown_gps0 REC_190306-083231F.MOV >083231F-gps0
What led me to this (formatted to 32 bytes, the movie has 300 seconds, it records gps once per second and the metadata holds 9600 bytes, 9600/300 = 32)
(https://i.ibb.co/VL8hKJQ/imagem.png) (https://ibb.co/8mVRhNd)
From here and with the output from the native player from the manufacturer (gvplayer), the first second of this movie was taken at 08:32:30 on the 6th of March 2019, when the gps speed at 51km/h at 121 meter height on the coordinates -9.174220 Longitude,38.757735 Latitude.I think i was able to reverse engineer some variables: offset value format probable
16 altitude meters (less significative)
17 altitude meters
18 altitude meters
19 altitude meters (more significative)
20 speed km/h (less significative)
21 speed km/h (more significative)
22 year year (add 2006)
23 month decimal
24 day decimal
25 hour decimal
26 minute decimal
27 second decimal
28 ? ? millisecond
What i cannot seem to be able to determine is the GPS encoding, and this is where i would like your assistance if possible.
I will attach twofull gps0 dumps from 5 minutes clips (one with GPS information and one without) and also the location files generated by the native application.
In the future, the best case scenario is to be able to use exiftool to extract this information, it would also be where it has the most probability of being used.
Sorry for the long post, if there is any missing information, please post here.
Best Regards
José
Any chance you could send me a sample MOV file somehow? My email is philharvey66 at gmail.com
I'll take a look at this tomorrow if you can send me a sample.
- Phil
Hmmm. This looks suspiciously identical to the GPS written by the DuDuBell M1 dashcam (see this post (https://exiftool.org/forum/index.php/topic,9946.0.html)).
- Phil
Hi José,
I can decode all of this except for a few things I don't understand:
1. The date/time in the csv file doesn't match what I see in the data. And the speed/elevation don't match exactly either.
2. I don't see the "ms" values in the CSV anywhere. Perhaps it is in some other unknown tag? What is the exiftool -v3 dump output for all Unknown tags in this video?
3. I don't see the "Trip" values. Perhaps these are calculated.
The lat/lon are IEEE double-precision values in the format DDDMM.MMMMM, and I think the bearing is byte 28 * 2. I don't know what bytes 29-31 are.
- Phil
Hi Phil,
The date,time,speed and elevation are in hexadecimal, when converted to decimal, they map to the values i get in the application.
Regarding the ms, you are right, i was misled by another test i did, it is only 1 byte, it can't be milliseconds.
The application does not show the trip, probably it is not used.
Let me check your bearing ideia.
I guess that the bytes 29-31 are status, i'll approach the vendor with this information to see if they are more friendly in sharing the necessary information.
I've sent to your email a link to two complete 1 minute movies.
Hi, the pre release you created in the https://exiftool.org/forum/index.php?topic=9946.msg51737#msg51737 (https://exiftool.org/forum/index.php?topic=9946.msg51737#msg51737) works perfectly.
Thanks for the help.
Just one question, you said that you found some differences in the data from my analisys, can you point them out to me?
I've tried looking in github, but the code is not there yet.
Thanks again
José Araújo
Hi José,
The code is all in the lib directory of the distribution.
You generated that CSV? That would explain the differences. I'm pretty sure my date/time decoding is correct, and I'm fairly confident about the speed/heading.
I was hoping to decode the accelerometer data too, but I don't have a sample with this.
- Phil
Ok, now i understand.
Yes the csv was converted from the kml that the application exports, probably it introduced some errors.
Regarding the accelerometer data, unfortunately, the application only displays it, it does not record, but i've however recorded the screen as it is playing the videos and placed the resulting flv on the same google drive where the videos are.
It can be used also to check the speed and heading as they are also displayed.
Hope this helps.
José Araújo
I think i cracked the GPS data, it seems really simple.
It has 3 channels, x, y and z in that order with 1 byte each, with 5 groups per second using signed notation multiplied by 0.0625 to get the acceleration.
Just not completly suse on the 5 times per second,as it appears that the last second only has 4 groups.
Hope this helps.
José Araújo
Hi José,
Thanks for the hint. I'll download the new file on Monday and take a look at this then.
- Phil
Hi José,
I checked my mail and can't find a mail from you with a link to the google drive.
- Phil
I forgot to place the drive link in the email :-).
You should have it now.
José
Hi José,
Great. I can now decode the accelerometer data too. ExifTool 11.32 will have this ability.
- Phil
Quote from: jose_araujo on March 11, 2019, 07:50:55 AM
I forgot to place the drive link in the email :-).
Been there... done that... too many times to count
:D