Dive Video Data Overlay

Please register or login

Welcome to ScubaBoard, the world's largest scuba diving community. Registration is not required to read the forums, but we encourage you to join. Joining has its benefits and enables you to participate in the discussions.

Benefits of registering include

  • Ability to post and comment on topics and discussions.
  • A Free photo gallery to share your dive photos with the world.
  • You can make this box go away

Joining is quick and easy. Log in or Register now!

I have made a few advancements that may help streamline the process.

After much reading and experimenting, I have created an XML Schema file in instruct Excel how to read the XML data exported by Subsurface. You will find the links below.

And I have created an Excel Template based on the XML Schema. Once Excel knows where to locate your .xsd file, it should allow automatic data mapping when the data is imported via the Developer Tab>Import>select XML file. It is included below "Dive Data Overlay Template.xltx"

The template has two pages, XML Data and CSV Output. You will do all of your importing, formatting, and filling of data on the XML page while the CSV page is referencing the data, allowing you to quickly and easily save the second sheet as a .csv file.

My steps:
  • Open Excel and load the Subsurface Data Overlay Template
  • In the Developer Tab*, XML section, click Import and select your XML data file.
  • Use Find and Replace to eliminate any annotations in the data (i.e. " m", " C") and ":00" for the RBT column.
  • Use Fill functions (Fill from above or Fill>Series>Trend)
  • Check the CSV sheet. If all looks good, go ahead and save as CSV. Excel will pop a dialog box warning that only one page can be saved as CSV, click OK to save the active sheet as CSV.
  • Move on to DashWare.
*Show the developer tab by: File>Options>Customize Ribbon, under Main Tabs, select Developer check box.

I hope this helps to smooth the process a bit. If anyone has any issues, questions, comments, or improvements, please don't be shy!

filehosting.org | Download | Dive Data Overlay Template.zip

filehosting.org | Download | Subsurface XML Schema.xsd

Edit: Added dropbox download link

Dropbox - Dive Overlay Files - Simplify your life
 
hai , i am on way to develop a complete software for video overlay with dive data. the software will also have a option to create a software report out of it . This application will include option to automate the process of embodying the telemetry data as well as the video together.

please contact me if you would like to know about the applcation
sharunkk@eyerov.com
 
Hello! I am using DashWare for a different application (baseball), but I am running into a problem. My Internet sleuthing brought me to your tutorial and final product (awesome by the way!), and you don't seem to have the same problem that I do. I was wondering if you could help.

For me, DashWare is interpolating values between time-stamped data entries.

Hypothetical data:
Time,Value
0,2000.5
4,2100.7
7,2170.9

I am using a custom built gauge. For the above table, Dashware will not display 2000.5 for 4 seconds and then update to 2100.7 at the 4 second mark. At 0 seconds, the displayed value will indeed be 2000.5 and at 4 seconds, the displayed value will be 2100.7. But only at exactly those times. At all times in between 0 and 4 (i.e. 0.001, 1.124, 3.444, etc.), DashWare interpolates the representative value and displays numbers between 2000.5 and 2100.7 according to the time. These values are not in my data set, and I only want the exact values in my data file to be displayed.

Was wondering if you had this same problem. Thanks!
 
Did that using GIMP for the overlays:
 
Hello! I am using DashWare for a different application (baseball), but I am running into a problem. My Internet sleuthing brought me to your tutorial and final product (awesome by the way!), and you don't seem to have the same problem that I do. I was wondering if you could help.

For me, DashWare is interpolating values between time-stamped data entries.

Hypothetical data:
Time,Value
0,2000.5
4,2100.7
7,2170.9

I am using a custom built gauge. For the above table, Dashware will not display 2000.5 for 4 seconds and then update to 2100.7 at the 4 second mark. At 0 seconds, the displayed value will indeed be 2000.5 and at 4 seconds, the displayed value will be 2100.7. But only at exactly those times. At all times in between 0 and 4 (i.e. 0.001, 1.124, 3.444, etc.), DashWare interpolates the representative value and displays numbers between 2000.5 and 2100.7 according to the time. These values are not in my data set, and I only want the exact values in my data file to be displayed.

Was wondering if you had this same problem. Thanks!

As I understand your issue, the "time" gaps are being calculated and displayed between the values in your data-set, is that correct? If so, it might be best to set that as a Text field as opposed to an actual Time field...

I am not at all associated with DashWare, but if you'd like, you can email me a small sample of the data set along with the Gauge Export and I can explore more options and test it myself. I will send you a PM.

Edit: Alternatively, you can Fill the Time Value into the gaps using Excel or any other spreadsheet software. Here's a screenshot of my data fields using the Data Viewer in DW. As you can see, I chose to fill the Dive Time field (in whole minutes). This way, DashWare will only display the actual value from the set instead of DW trying to be smart.... haha.

DashWare Screenshot.jpg
 
All good for a video sequence that is linear from start time to finish. But I find that this seldom make for great video edits and my UW videos tend to have clips randomly arranged based on my creative process during the edit. Then the readings jumping timestamps forwards and backwards makes no sense. Specially for the case where one just wants to show pretty fish and marine life UW.

But thanks for the extensive effort in documenting this for us. Good for other scenarios like the progression of a cave dive I guess.
 
DashWare:

Available for download here: DashWare - Telemetry Data Overlay on Your Videos

DashWare is a free Telemetry Data Overlay software designed to interpret and sync data as a display within video footage. It was developed with Racing and Action Sports (Mountain biking, skiing, skydiving, aviation) in mind and is now owned by GoPro. DashWare uses “Gauges” which can be placed anywhere in the space of a video, resized, and transparency added. We will cover how to create a custom Gauge (overlay), how to import and sync the data to the video, and finally how to export.

A Major note: Currently, DashWare may have some trouble rendering video files which were imported in 2k and 4k resolutions. Apparently, this has been solved in a Windows 10 environment, but I am running Windows 7…

By now you realize that creating an overlay like this, updating in real time, is quite time consuming. The good news is that once you’ve done it a couple times, the process really does speed up. Working with DashWare is no exception; once you’ve created a Gauge (overlay), the process should move much faster in the future.

Before we get into the topic of creating gauges, importing video and data, and syncing the data to the video, we should ask ourselves “How will this impact my editing?” I will share my suggestions, but feel free to experiment on your own. Most of the time, underwater video footage will require some sort of post-processing beyond simple cutting and arranging of clips; color correction and stabilization come to mind immediately.

There are a few potential workflow routes available here:
1. We could compile our raw, untouched clips into a long sequence, render that, add the overlay, then proceed to color correction, stabilization, and cuts & transitions, but our gauge overlay will be impacted by color correction.​
2. We could color correct and stabilize our uncut video, render that into a single, long, video then add our overlay before going back to video software to do cuts & transitions, without impacting our new overlay.​
3. We could color correct, stabilize, and cut our videos, add the overlay, then do transitions between clips. But this is not much different than option 2.​
4. OR we could utilize Chroma Key…. I have not yet tried this method (actually it was a lightbulb discovery while doing this tutorial LOL), but theoretically, we could import (nearly any) video into DashWare, create our overlay, then use a “Green Screen” behind the gauge, over the video, which could be rendered then imported as a layer to your favorite Video Editing software (i.e. Premiere Pro, Final Cut, After Effects, or whatever). As far as flexibility I believe this could be the most practical route for those more experienced with video editing software. (Side note regarding Chroma Key, Blue or Green may not be the best colors for this considering our underwater videos are likely to have much of both. Perhaps something odd, like bright orange will have a lesser impact on any colors we may have in our video.)​
The decision is yours but decide beforehand how you will integrate the overlay into your workflow process. I can tell you from experience, I have started, scrapped, and restarted many projects multiple times in trying to develop workflow. Until now, I have yet to compose a full-length video project using overlays, only small the occasional clip. Based on what I’ve learned just from doing this write up, I will be attempting to make a full (but likely boring LOL) video of a full dive with overlay utilizing the Chroma Key technique. I believe that method has the greatest potential for our application.

Creating Gauges:
As mentioned above, DashWare refers to the displays as Gauges. There are several stock gauges available for all sorts of applications, including diving, but if you’re like me, you’ll want to display the information your way. It could be as simple as few lines of text with data or you could go so far as to recreate your dive computer. In this section I will recreate the Shearwater Perdix in OC Recreational mode. Creating the artistic portion of the gauge is fairly simple once you understand how the interface works, but when it comes to linking the displays to data fields organization is key!

Create a new Gauge:
1. In the Gauge Tool box, click New Gauge and Name it​
2. Use Insert New Component to add any feature to the gauge, from static shapes, text, or data value display functions. Interestingly, there is no Line component available, so use filled rectangle sized appropriately to make lines. Cloning components is your friend; use it to create multiple fields of text, boxes, and lines.​
3. Try to do all the artistic stuff first to keep things more organized in the Components Tree on the righthand side.​
4. Text fields which change to represent data are Dynamic fields within DashWare’s organization.​
5. Be sure to assign Gauge Inputs to each Dynamic field, whether bar graph, number, or text values. Play around a bit and you’ll get it. But remember, your Gauge Inputs will have to match your Data Set headings for the data to map correctly.​

In all, it took me about 2 hours to create this Shearwater Perdix gauge with fully dynamic Depth, Safety Stop, Time, NDL, GTR (Gas Time Remaining), Pressure, and Dynamic Tank Graphic.
View attachment 514980
In the picture you can see the Gauge Inputs section (DEPTH FT, SAFETY STOP, DIVE TIME, etc.) that are assigned to their corresponding Dynamic Text field in the Components section. Your data headings with need to match these names in order for DashWare to correctly map the data fields.

Importing Video and Data to DashWare:
In the Project tab of DashWare, you will add your Video and Data Files in Input Settings Box. When importing the data file, it is important to choose the correct Data Profile after adding your data file then Edit Profiles. After clicking on Edit Profiles, you will see something like this:
View attachment 514981

  • Ensure that DashWare is reading your CSV correctly and that the Column Mappings data fields match the column headers in your CSV file. Depending on how you created your CSV, you may have to change the Separator Settings.
  • Click “Test File/View Data”. You will see a window popup showing that all data is organized nicely into their appropriate columns. Good, close that.
  • Click OK on the Profile Editor.
  • Reselect the correct Data Profile in the Add Data File prompt box, then Add.
  • From the Gauge Toolbox, drag and drop your gauge into the video box.
  • In the Synchronization Tab, you can now “play” your data file and ensure that all data fields in the gauge are displaying the correct data at the correct time. If not, you may have to review your CSV file (outside of DashWare) or the Data Field Mapping (within Dashware).
    • If you wish to have some sort of Intro to your video before displaying your data, you have the option to sync the data at a later timestamp corresponding to the video.
    • Check the Box “Sync with Video” and you should be good to go.
Once everything looks good in DashWare, you are now ready to export (render) your newly overlayed video via File>Create Video. Select the settings appropriate for your project and Create Video. Depending on the length of your video, it may take some time to render.

Depending on your workflow, you either have a finished product or are ready to proceed to your favorite video editing software for further video processing.


Good luck, and I hope you've learned a little something here. Please feel free to chime in with any shortcuts or tips.
so many more steps not mentioned with dashware when trying to create a new dive computer
 
so many more steps not mentioned with dashware when trying to create a new dive computer
There are guides on their website which cover creating custom "gauges" and mapping the source data to particular display fields. I apologize for not going deeper into that portion, but would have also made the guide much longer.

If you've recreated a dive computer in DashWare, it would be great if you could share a screenshot. (No need to post the functional component, unless you want to)
 
https://www.shearwater.com/products/peregrine/

Back
Top Bottom