I'm trying to write a video player for clips from Roadhawk dash cams that shows a speedometer and map. I've got the basics covered, it plays the video and sound and extracts the raw metadata from the video.
This raw metadata includes speed, GPS coordinates and G-force. My first target is a Roadhawk DC2. Roadhawk provides software for doing this already but it is closed source. http://www.roadhawk.co.uk/roadhawk-dc2-software I may be able to reverse engineer the software, or even the camera firmware, but I wanted to know if there was a better way.
The metadata is stored in a subtitle stream in the video file. I've played a one minute file through my software and dumped all the raw data out and have looked at the same file in the existing software to get the decoded values for the first frame. (It's awkward to determine more than the first frame because of the seek resolution in the existing software. This is one reason for writing my own.)
It all appears to be printable ASCII characters (presumably a constraint of the qt-text subtitle encoding system).
When looking at all of the data, I can see that in the last third of the data frames, some of the text remains mostly constant. In the last third of the video, the car is waiting at a set of lights, this could be the gforce data. This is as far as I got with my investigation.
The frame for which I know the decoding looks like this:
And decodes like this:
Gforce X = +0.108 Y = +0.036 Lat = 53.99020 Long = -1.10792 Speed = 2.0mph
Full list of captured frames is here: http://bitofahack.com/stuff/capture
I don't recognise this as any particular method of encoding. It may even have some kind of compression, although I doubt that when I consider that the frames are longer than all the data simply printed as one long string.
What should I do to further my investigation?