qlyoung's wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
underwater_videography_with_gopro [2025/07/27 16:30] – clean up weirdness qlyoungunderwater_videography_with_gopro [2025/09/29 19:09] (current) – link to telemetryoverlay qlyoung
Line 72: Line 72:
 ## Framerate ## Framerate
  
-Slower framerate allows for longer exposure times. Longer exposure allows more light and better picture, all else being equal. My advice is to bias towards lower framerates in water to give the camera more breathing room.+Slower framerate allows for longer exposure times. Longer exposure allows more light and better picture, all else being equal.
  
-Diving is a slow sport, so 30fps is usually plenty. Personally I find it looks better / more cinematic as well. Fast, active subjects such as bait balls might benefit from 60fps. As a rule of thumb, start at 30 unless you plan to shoot something fast or want the action cam look, then consider bumping to 60 and potentially increasing ISO max to allow the camera a little more flexibility.+However, not all else is equal. There is a tradeoff here. Slower shutters allow the camera to move further during each exposure. This produces motion blur. There is nothing inherently wrong with motion blur, it can even be desirable. However, if you digitally stabilize your footage, the camera motion will be cancelled but the motion blur produced by that movement will not be cancelled. The result is motion blur without apparent motion, producing a "vibrating" effect in the image. Read more here: https://docs.gyroflow.xyz/app/getting-started/common-filming-tips-and-issues 
 + 
 +Diving is a slow sport, and the camera is usually not moving very fast, so there is limited motion blur. In such cases I prefer to shoot with a slower shutter speed. Personally I find it looks better. Fast, active subjects such as bait balls might benefit from 60fps with added motion blur in post. As a rule of thumb, start at 30 unless you plan to shoot something fast or want the action cam look, then consider bumping to 60 and potentially increasing ISO max to allow the camera a little more flexibility.
  
 ## ISO ## ISO
Line 86: Line 88:
 GoPro publishes a firmware called [Labs](https://gopro.github.io/labs/) that unlocks a lot of power user software toggles, many of which are useful for underwater videography. Whoever is responsible for Labs does an amazing job. GoPro publishes a firmware called [Labs](https://gopro.github.io/labs/) that unlocks a lot of power user software toggles, many of which are useful for underwater videography. Whoever is responsible for Labs does an amazing job.
  
-## Basic+### A little diversion about GoPro color 
 + 
 +After first installing the Labs firmware, I spent a lot of time learning about color spaces, video grading, dynamic range etc. and subsequently shot a lot of underwater video with a custom logarithmic curve (LOGB=400) + Flat color profile for maximum dynamic range. I bought the [Leeming LUTs](https://www.leeminglutpro.com/) for these settings and applied them in Resolve. I was determined to squeeze every last drop of performance out of this tiny camera. 
 + 
 +However, at some point I realized that the time required to grade the video I shot using these advanced settings meant that I never used that footage. The small selection of footage I did grade took an enormous amount of time and ultimately was not subjectively more pleasing to me than just using the Natural color settings. I simply do not have time to grade video properly. 
 + 
 +I don't consider it to be a waste of time nor do I regret pursuing this. It was actually quite fun and informative, and I learned useful knowledge about color spaces, color correction, and so on. But I wouldn't recommend that you go this route unless you plan to make video editing a Primary Hobby. 
 + 
 +## Basic settings
  
 - Natural color - Natural color
Line 141: Line 151:
  
 # Praxis # Praxis
 +
 +## Flow & Vibe
 +
 +I find that as soon as the camera is out, it takes me out of the dive and into the camera. I dive primarily for my own enjoyment and not to produce video, so taking video is usually a net negative for my overall dive experience. Operating the camera is task load that makes more important concerns such as spatial awareness, instrument scans, buddy tracking, navigation, gas management, light communication etc more difficult. That affects my whole dive team. Since I care about my buddies enjoying their dive with me, camera time is limited, and the "harder" the dive the less time I feel comfortable using a camera.
 +
 +Aside from task loading and vibe, most of what happens on a dive is just not very interesting to watch. It's a lot of swimming. Sometimes swimming can be interesting if the environment is cool - wrecks and caves for example. But even then, on a swim dive the cave or wreck doesn't change much over the course of 2 minutes, which is a usual attention span. You can edit it to just show the highlights of course, but you end up taking away from your dive in order to shoot a lot of video that no one will see because it ultimately just isn't interesting to watch.
 +
 +The upshot is that I try to think ahead, be intentional about what I'm shooting and what result I hope to achieve, and constantly reevaluate whether the final video is going to be worth the precious dive minutes I'm losing to shoot it.
  
 ## Case ## Case
  
-I use the official GoPro case. If you dive deeper than 50m you need to use something else. I don't have any recommendations.+I use the official GoPro case. If you dive deeper than 50m you need to use something else. Golem Gear used to make the best ones, they were acquired by SubGravity in 2022 and their cases can be found here: https://sub-gravity.com/product/gopro-hero-9-case/
  
 I find it works best with a 3/4" or 1" bolt snap attached like this: I find it works best with a 3/4" or 1" bolt snap attached like this:
Line 150: Line 168:
 {{:rot.jpg?400|}} {{:rot.jpg?400|}}
  
-During shooting I just hold the camera itself. I have tried handles, including the official GoPro dive handle. I don'notice any improvement in footage and it is bulky.+During shooting I hold the camera itself. I have tried the floaty GoPro handle. It gets in the way when clipped off, doesn'really fit in a bellows pocket and it certainly doesn't fit in the smaller glue-on pockets on my wetsuits. In my experience it doesn't improve video stability compared to holding the camera body directly. Using a handle probably reduces rotational instability somewhat but with gyro-based stabilization in post this does not matter. A slightly more aggressive crop is acceptable to me in exchange for not having to manage the handle.
  
 ## Predive ## Predive
Line 164: Line 182:
 ## During dive ## During dive
  
 +### Settings
 There is a way to change settings while in the water. GoPros with the labs firmware can read QR codes. If you want, you can print out QR codes that do specific things and tape them into your wetnotes like this: There is a way to change settings while in the water. GoPros with the labs firmware can read QR codes. If you want, you can print out QR codes that do specific things and tape them into your wetnotes like this:
  
Line 171: Line 190:
  
 You do carry wetnotes, right? You do carry wetnotes, right?
 +
 +### Telemetry
 +
 +You may want to cross reference points in the video with the dive profile your computer records. The easiest way to do this is to take a clear shot of your dive computer in the video. Get into the habit of pointing your camera at your computer for a few seconds at the start of filming to establish a reference point. I highly recommend doing this even if it does not seem useful right now.
  
 # Post # Post
Line 190: Line 213:
 In order to know what transformations to apply, the EIS algorithm needs to know how a change in camera position is reflected in the image. This requires EIS to know the optical properties of the lens, which is why post-processed stabilization works best when calibrated for the specific camera model / lens being used. In order to know what transformations to apply, the EIS algorithm needs to know how a change in camera position is reflected in the image. This requires EIS to know the optical properties of the lens, which is why post-processed stabilization works best when calibrated for the specific camera model / lens being used.
  
-One of the major optical properties of a lens is its relative refractive index. Light travels at different speeds in different media. When light traveling in one medium enters a different medium, it bends (refracts) and the degree of this bend is a function of the difference in the speed of light between the first and second medium.+One of the major optical properties of a lens is its relative refractive index. Light travels at different speeds in different media. When light traveling in one medium enters a different medium, it bends (refracts) and the degree of this bend is a function of the difference in the speed of light between the first and second medium. If you know the relative refractive index between the ambient media and the lens material (glass), when characterizing the overall scene distortion you can account for the distortion introduced by refraction.
  
-If you fix the first medium, e.g. by assuming it is air, then when characterizing the distortion introduced by the second medium (e.g. a lens) you can include the distortion introduced by refraction as part of your characterization. Then you can use that characterization to calibrate algorithms such as EIS. +Virtually all EIS systems assume air is the ambient media by default. This means that when using EIS on footage shot in water, the lens distortion matrix is incorrect. It needs to be adjusted to account for the difference in relative refractive index between water and the camera lens. Gyroflow [added](https://github.com/gyroflow/gyroflow/issues/398) this option in 1.6.0 and there is a Labs setting (`DIVE=1`) to enable it for Hypersmooth on Hero 12/13.
- +
-Virtually all EIS systems assume air is the shooting medium by default. This means that when using EIS on footage shot in water, the lens distortion matrix needs to be adjusted to account for the difference in relative refractive index between water and lens. Gyroflow added this option recently and there is a Labs setting (`DIVE=1`) to enable it for Hypersmooth on Hero 12/13.+
  
 Without this adjustment stabilization will still work, just not as well. GoPro Labs docs say that without it, Hypersmooth is about 70% effective compared to shooting in air. Without this adjustment stabilization will still work, just not as well. GoPro Labs docs say that without it, Hypersmooth is about 70% effective compared to shooting in air.
 +
 +To get an idea for the difference, compare the results of distortion correction calibrated for air (left) versus water (right):
 +
 +{{:air.png?400 |}} {{:water.png?400 |}}
 +
  
 ### GoPro specifics ### GoPro specifics
Line 202: Line 228:
 GoPro is well known for its implementation of EIS which it calls Hypersmooth. Hypersmooth is pretty good as it goes but there's a few things to know about it: GoPro is well known for its implementation of EIS which it calls Hypersmooth. Hypersmooth is pretty good as it goes but there's a few things to know about it:
  
-- It produces "baked" videos; stabilization parameters cannot be changed in post and the cropped frame cannot be recovered+- It produces "baked" videos; stabilization parameters cannot be changed in post and the original, uncropped frame cannot be recovered
 - It is performed on the camera CPU in real time and thus has hard compute limits to contend with - It is performed on the camera CPU in real time and thus has hard compute limits to contend with
 - It does not know what will happen in the future and cannot benefit from the additional information; stabilization in post can view the entire gyro track and perform smoothing over a larger time window, improving results - It does not know what will happen in the future and cannot benefit from the additional information; stabilization in post can view the entire gyro track and perform smoothing over a larger time window, improving results
-- As mentioned above, distortion correction is not calibrated for water reducing stabilization quality+- As mentioned above, distortion correction is not calibrated for water by default, reducing stabilization quality
  
 For these reasons I do not use Hypersmooth when shooting underwater. For these reasons I do not use Hypersmooth when shooting underwater.
Line 252: Line 278:
 - A binary track containing gopro-specific metadata. This is where gyro, GPS and other metadata is stored. - A binary track containing gopro-specific metadata. This is where gyro, GPS and other metadata is stored.
  
-By default, GyroFlow will drop the metadata tracks when producing a stabilized output. This metadata is valuable and other tools such as Telemetr +By default, GyroFlow will drop the metadata tracks when producing a stabilized output. This metadata is valuable and other tools such as [Telemetry Overlay](https://goprotelemetryextractor.com/rely on it to function, so you want to keep this track.
-y  +
-Overlay rely on it to function, so you want to keep this track.+
  
 ## Denoising ## Denoising
Panorama theme by desbest
underwater_videography_with_gopro.1753633837.txt.gz · Last modified: by qlyoung
CC Attribution-Noncommercial-Share Alike 4.0 International Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 4.0 International