This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
underwater_videography_with_gopro [2025/05/07 22:44] – include percent sign qlyoung | underwater_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, | + | 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 " |
+ | |||
+ | Diving is a slow sport, | ||
## ISO | ## ISO | ||
Line 86: | Line 88: | ||
GoPro publishes a firmware called [Labs](https:// | GoPro publishes a firmware called [Labs](https:// | ||
- | ## 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:// | ||
+ | |||
+ | 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, | ||
+ | |||
+ | ## 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 " | ||
+ | |||
+ | 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' | ||
+ | |||
+ | 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:// |
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: | ||
{{: | {{: | ||
- | During shooting I just hold the camera itself. I have tried handles, including | + | During shooting I hold the camera itself. I have tried the floaty |
## 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 |
- | + | ||
- | Virtually all EIS systems assume air is the shooting medium | + | |
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): | ||
+ | |||
+ | {{: | ||
+ | |||
### 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' | GoPro is well known for its implementation of EIS which it calls Hypersmooth. Hypersmooth is pretty good as it goes but there' | ||
- | - It produces " | + | - It produces " |
- 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; | - It does not know what will happen in the future and cannot benefit from the additional information; | ||
+ | - 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 251: | 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 Telemetry Overlay rely on it to function, so you want to keep this track. | + | 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:// |
## Denoising | ## Denoising |