Extensions and Other Additions
Metadata Features
These new features are stored in your camera’s metadata, this metadata is helpful for detemining what features are used per clip. The metadata, and the features it enables, can be extracted with this page.
All metadata QR commands are written in the form oMwxzy=value(s) or !Mwxzy=value(s) – where the four character code (4CC) wxzy is under your control, along with the data it stores. The !M version will permanently store the metadata, and the oM will store it for only this power-on session. Metadata is available to flag your files for special uses, or just to label the camera owner. Some particular 4CCs will also change camera behavior and/or enable features. Here is a list of additional metadata driven controls:
HERO12/11/Mini cameras
- WIDE=1 This offers a color gamut like setting white balance to Native (wider gamut), while enabling auto whitebalance, or user controlled whitebalance. With WIDE off (0 - the default), the camera saturates color to the Rec709 gamut (basically sRGB), so some extreme real-world color saturations are clipped by the gamut. With WIDE=1, the gamut is sensor native, not Rec709, not Rec2020, just what the sensor sees.
- WBLK=1 This is an auto lock for balance, it auto white balances until the capture starts. The feature was added for scuba users, as fixed white balance are computed for above water, and while the auto works great in dive scenarios, some prefer a fix white balance per clip.
- MTRX=a,b,c,d,e,f,g,h,i This is the RGB to YUV matrix, new ways to mess up your video. e.g. For an B/W effect in camera try oMMTRX=50,175,25,0,0,0,0,0,0
- GCMP=1 Disables gyro compensated exposure. This is users not concerned about Hypersmooth stabilization, and would prefer the auto exposure to use a longer shutter, rather than more sensor gain. Longer shutters are worse for stabilization, so the HERO11 is smart, as will shorted the shutter if it detects the camera’s movement. GCMP=1 disables this feature.
- 64BT=32000 HERO11/12 cameras default to 12GB chapters when using 64GB card (or larger media), but you can use the 64BT command to specify even larger chapters like 32GB or even 64GB. There has been very limited testing, so experiment first before committing to super large chapters.
- PRXY=x Normally a camera will encode a LRV (Low Res Video) for every MP4, this extension stores LRVs as Proxy files. 1 - moves LRVs as Adobe Premiere Pro™ style, 2 - moves THMs, 3 moves both into the proxies folder, 4 - uses DaVinci Resolve™ style proxies folder.
When PRXY=1 is enabled, you get. Use Premiere Pro’s Attach Proxies function, greatly speeding up a professional workflows.
DCIM/100GOPRO/GX013784.MP4
DCIM/100GOPRO/GX013785.MP4
DCIM/100GOPRO/Proxies/GX013784_Proxy.MP4
DCIM/100GOPRO/Proxies/GX013785_Proxy.MP4
When PRXY=4 is enabled, the LRV files will be created with name naming that is ready for DaVinci Resolve, greatly speeding up a professional workflows. The new folder structure is:
DCIM/100GOPRO/GX013784.MP4
DCIM/100GOPRO/GX013785.MP4
DCIM/100GOPRO/Proxy/GX013784.MP4
DCIM/100GOPRO/Proxy/GX013785.MP4
Note: When this feature is enabled, the lack of LRVs will mean the Quik App will not be able to preview video on the camera. However, this will not prevent the full resolution transfers, or on camera playback. - GUID=aspect,aspect,… - Displays an on-scene shooting guide for different aspect ratios, independent from the camera’s current video mode.
Up to 8 guides supported at once. e.g. GUID=1.777 will enable a 16:9 guide. GUID=2.35,0.5625 will add guides for Cinemascope and 9:16 social.
- GUIC=level,level,… - The shooting guides default to white at 255, but you can select their luma level. e.g. GUIC=255,0, will be white for the first guide and black the for second.
- EXPS=1 - Display the current ISO and shutter speed being used during preview and capture. For 11-Mini EXPS=num,
the number relates to how often the record time or shooting mode is displayed.
- EXPX=x and EXPN=n - exposure shutter speed mi(n) and ma(x). e.g. oMEXPX=48 (for 1/48) and oMEXPN=500 (for 1/500)
- HSTP=x,z,size - Used with HIST=1, this sets the size (40-100) and position (x,y as 1-100) of the histogram.
A negative x-value will place the histograme on the front screen. e.g. oMHSTP=1,83,67 or oMHSTP=-3,55,87.
- LEVL=size - Add a spirit level to the rear LCD, where the size can be 1-9. e.g. oMLEVL=6
- LOGB=logbase,offset - Super experimental, alter the log encoding for more dynamic range, or for a closer match with other camera’s log curves.
i.e design your own flat profile. Ideal for use with 10-bit, and the existing flat color setting.
e.g. oMLOGB=400 for a little push in dynamic range or oMLOGB=200,-128 for a crude Fuji F-Log emulation.
Note: As the pixel size isn’t changing, that increasing the logbase (flatness) may not significantly increase the dynamic range.
GoPro Log curve designer - NR01=x - Noise Reduction control, which should be combined with the LOGB control. e.g. oMNR01=50 range 1-100, 100 being 100% active (default), so 1 is the noisest.
When pushing the dynamic range of any camera, shadow details may be suppress by noise reduction.
Increasing the logbase will enhance the shadows, but will also reveal noise reduction artifacts tuned for a different encoding curve (the more consumer friendly Rec709.)
You can back-off the noise reduction to restore shadow details, with the downside being a noiser image (protentially requiring noise reduction in post.)
Also a noiser image will need a higher-bitrate to store the additional information (so BITR, NR01 and LOGB are all related.) - BYPS=1 - Bypass common pop-ups, such as resetting the time and date. Remember to set time and date if you remove the battery.
- BERS=x - 1 - Bypass ERS compensation. 2 - Bypass ERS only with stablization disabled. Not commonly used.
- IWFR=1 - Increased Write FRequency to support for higher precision file recoveries (this is also defaulted on with !MBITR=x bitrate changes). If you have ever had a big crash that ejects the battery, you may have noticed the file recovery will miss 5-15 seconds of your video. Missing even the lead up to the great moment. This hack increases the rate in which video data is flushed to the SD Card, improving the recoverability for footage. With this enabled, battery ejects will not lose more than 1-2 seconds of footage. Great for FPV users. Not commonly used.
- TUSB=1 - Trust USB power. Some USB power sources may report less than they are capable. This modification assumes the USB Power source is 2A minimum, and disables the testing. This can help with some USB power sources that the camera can reject, but are otherwise sufficient to run all camera operations. If you use TUSB with an inadequate power source, expect capture failures.
Note: the scripting has had a significant update in the March ‘23 firmware. See section Assignments, Variables and Math
HERO12/11/10 and Bones cameras - Advanced features
- 24HZ=1 - enable film standard 24.0 frame, rather than the default broadcast standard 23.976. The existing 24p mode(s) will have the new frame rate when this is enabled, all other video modes are unaffected.
- AUDS=1 display the approximate audio levels in dB SPL.
- BITH=3 - set the compression in Mb/s for the H264 encodes. Normally this would be for LRVs at around 4Mb/s. No guaranteed capture reliability using this feature. Input range in Mb/s from 1 to 100.
- BITR=120 - set the compression in Mb/s for the Protune High Bitrate setting (HEVC only). Normally this would be around 100Mb/s, however higher (or lower) rates may be achieved with newer SD Cards. No guaranteed capture reliability using this feature. Input range in Mb/s from 2 to 200. Counterintuitively, lower frame rates like 24/25/30fps can use higher bitrates than faster frame rates. e.g. A camera that is reliable doing 180Mb/s at 24fps, will likely need to drop to 150Mb/s for 120fps. Most GP2 cameras can do 150Mb/s for all video modes, but your testing is still required. Use at your own risk.
- DAMP=0.1 to 1000 - Control over the auto-exposure damping. When moving a camera through dramatically changing lighting, like biking through a forest, in and out of sunlight, or flying a drone through a short tunnel, the exposure will adjust automatically, correctly in most scenarios, but sometimes not optimal for some rapidly changing light levels. The camera’s auto-exposure currently takes about one second to adjust from sunlight to indoor conditions, but if you are flying a drone through indoors for only a few seconds, the camera would over-expose on exit. In this scenario using an exposure lock might be preferable, maintaining an outdoor exposure throwout, but exposure lock is risky for shooting under variable lighting conditions. Changing the damping might be what you need. Setting the DAMP=1 is the default, so setting to 10 would slow the camera’s exposure adjustments 10X. Now shooting into dark for moment will not cause much over-exposure (if any). Setting DAMP=60 will take a minute for exposure changes. Setting DAMP lower than 1, like 0.2, would make it adjust faster. There is no perfect setting, this is just more control.
- DAUD=1 - Disable audio, all video created video files will have no audio. Application: high bit-rate drones video. (not supported on HERO12)
- DLRV=1 - Disable LRV, all videos will have an MP4 only. This is not good idea for Quik uses, as the LRV video helps in video preview. Note: There is currently a bug in this feature (HERO10 as requires a restart after two captures.) (not supported on H12)
- EVBS=x Global EV comp bias for all video modes that also works with Live-Stream and web-cam, and can be changed during capture if QRDR=1 is set. As this is global offset, it will add to EV comp settings with your presets. So if EVBS=-1 and a preset has EV set to -0.5, the effective EV will be -1.5.
- FRNT=1 For front screen equipped cameras, display most LCD Labs message on the front screen. Practicular useful for FPV useful not using the touchscreen. e.g. !MFRNT=1!MEXPS=1 will display the ISO and shutter speed on the front LCD.
- TONE=0,1,2 or 3 - Tone-mapping controls. Tone-mapping is the in-camera contrast control, dynamically adjusting the video to look good under a range of lighting conditions.
HERO10 adds LTM - Local Tone-Mapping, enabling you to see details in leaves and grass textures, way better than all previous GoPro’s. HERO9 and earlier, used GTM, Global
Tone-Mapping which adjusts the contrast curve for the image automatically. If you wanted to do these in post, you could use Protune Flat, where all in-camera tone-mapping is
disabled and a log curve is applied (do not use these control with Flat, can be weird results.) For a more developed Rec709 video, by shooting GoPro Color or Natural modes,
but you wanted to do your own tone-mapping in post–you can now do that. Note: HERO11 is a tad odd with TONE=3, as it tends to under-expose. Always experiment before using an feature.
- TONE=0 - using the cameras default
- TONE=1 - use GTM only
- TONE=2 - use GTM+LTM
- TONE=3 - disable all tone-mapping
Miscellaneous controls for most Labs cameras.
- BOOT=!Lscript - A command to run automatically at boot. For safety, this should only be a load script command, so that the command is dependent on the SD card presence. e.g. !MBOOT=”!Lboot” Then you can place whatever command you need in the boot script with !SAVEboot=”your command here”. See an example in IMU Triggers for Drones
- An inventive use of oMBOOT=”command”, ‘oM’ commands do not survive power cycles, so this is not a “boot” command, but this style of command will run as a subroutine.
- e.g. !10:00NoMBOOT=”!SM3D4H5!R” <- Wake at 10am, then motion capture continuously.
- vs !10:00N!SM3D4H5!R <- which will wake at 10am, but only motion capture once a day.
- DSPC=value, this sets that contrast for which messages are displayed. Contrast is from 0 - transparent text background, to 6 - opaque black background
- DSPL=time, this will control the amount of time messages are displayed. For users who want there own information displayed longer. The default is 1 second. DSPL=1 thru 9 is in seconds. DSPL = 10 thru 9999 is in milliseconds. So for much faster messages set DSPL to 100. Set this before setting the owner information, as metadata commands are processed in the order they are stored.
- HNDL=x, where x is 1 to 31, setting the camera ID for a camera. This is for rare scenarios where multiple cameras see the same QR Code, and you only want particular cameras to respond. This combined with hZ command where Z is the bit mask for which cameras will follow the command.
- e.g. h6mP!S ← this command will only run on cameras with IDs 2 and 3.
- e.g. h1mVh2mPB ← set camera 1 to mode Video and camera 2 to Photo Burst.
- HIST=x - Displays a histogram with contrast from 1 to 11. e.g. try setting HIST to 5. HIST=0 will disable it. On 11-Mini the number is a display duratrion.
- HSTO=x - minutes - controlling the length of the Hindsight timeout, changing from the default for 15 minutes. e.g. !MHSTO=60 for a 60 minute Hindsight timeout.
- LLTZ=latt,long,timezone for those want to use Sunset/Sunrise timelapse without GPS, or for when you are shooting a sunset timelapse from indoors. The metadata is used to store your GPS Location and timezone e.g. !MLLTZ=33.126,-117.327,-8.0 In this case you must used the !M command, permanent storage, as solar event timers will shutdown the camera.
- QRDR=1 - detect QR Codes while recording. Normally this feature is disabled to ensure the lowest computing load impact, so not enabling this is the safest. However, it is needed for some cool ideas, like changing a video burnin message in the middle of a live-stream, or changing its exposure with BIAS (see below.) This also allows you to end a capture via a QR Code (command: !E). oMQRDR=0 will disable it.
- SPED=1 - SD Card Speed Test, only really useful on older cameras (HERO9 or older.) GP2 cameras are faster and generally require faster SD cards anyway. It still works on newer cameras, but the results are misleading, are often way higher than what the encoder can support (i.e. don’t set BITR to 200 because you card writes at 500Mb/s.)
- TCAL=milliseconds - Timecode CALibration, help to increase the precision of setting timecode via QR Code. The milliseconds can be positive or negative as needed.
- WAKE=1 - This will make the camera wake on any power addition, but only if there is a delay action pending (determined by a delay.txt file in the MISC folder, created automatically with wake timer events.) Inserting a battery or the connection of USB power, will boot up the camera to continue a script after a power failure. With some experimentation, this may be used to improve very long time-lapse reliability, by cycling USB power every 24 hours – reseting the camera to restart scripts.
- WAKE=2 - (HERO8/10/11/12 only) Same as WAKE=1, except it will ignore any pending actions, and wake of any power addition. This is useful with combined with a boot command.
HERO12/11/10/9 & 8 - Overlay extensions
- BRNT=0.5 - The overlays or burn-in display time in seconds. e.g. BRNT=0.016 will display the logo or text overlays only on the first frame (1/60th of a second.)
- BRNX=x,y - This is an upgrade to BRNO (Burn-ins Offset), allowing you to offset the burn-ins with X,Y pixel coordinates. e.g. BRNX=120,40
- CBAR=1 - enable a small 75% saturated color bars for video tools evaluation (HERO10/11/12 limitation: only works 4Kp30 or lower res/fps.)
- LBAR=1 - enable a small luma sweep for video tools evaluation (HERO10/11 limitation: only works 4Kp30 or lower res/fps.)
- LOGO=”filename.png” - overlay a small logo or icon on the encoded video. The logo must be stored on the SD card in the MISC folder. The alpha channel is supported. The PNG files must be less than 64kBytes with fewer than 64k pixels, e.g. Logo overlay of 400x100 works, but 400x200 will not. The smaller the better for demanding video modes like 4K60 and 1080p240. (HERO10/11 limitation: only works 4Kp30 or lower res/fps.)
HERO12/11/10 and 9 - Audio and MediaMod extensions
- GAIN=dB - Digitally gain up the audio. e.g. oMGAIN=12, increase audio by 12dB. Will likely reduce the dynamic range.-
- HDMI=0,1 or 2 - Media Mod users can change the output default from Gallery (0) to clean monitoring with no overlays (1), or monitoring live video with overlays (2).
- MUTE=mask - Mute one or more channels of audio (microphones). For HERO9 cameras, there are four channels, although three microphones. The mask is binary mask for channels 4321. e.g. oMMUTE=15 mute all channels (15 = 1111B), oMMUTE=8 mute the fourth channel (8 = 1000B), oMMUTE=7 mutes the first 3 channels (7 = 0111B).
- SOLO=channel - Use only one channel of audio. e.g. oMSOLO=1 use only channel 1, oMSOLO=4 only use the fourth channel.
Metadata Four CC: e.g. BIAS, HIST etc.
Metadata Value(s): e.g. 2.0 or “Joe Blogg”, strings in quotes, numbers comma separated.
GoProQR:
Share this QR Code as a URL:
Alternative Exposure Controls.
-
EV adjustments. While you can just see an EV value you can now use x++ to increase from the current EV and x- - to decrease. This might be useful for dive application, as you can’t change EV while under water
-
White Balance adjustments, with w++ and w- - will increase or decrease white balance. Again for dive users.
updated: Sept 13, 2023
Learn more on QR Control