Extensions and Other Smaller Additions
After the release of the the first Labs firmware for HERO8, we heard the feedback and added features wherever possible. Some of the more major features got their own page, the rest are documented in this collection.
Miscellaneous Metadata controls.
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:
- 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
- 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.
- LAPS=1 turns on the burn-in laptime, a hackathon designed for live-streaming auto races. LAPS=0 will disable it. HERO8/9 only
- BRNP=”xx” this the burnin position TL, TR, BL, BR (default) - T-Top L-Left B-Bottom R-Right, e.g. oMBRNP=”TR”
- LFIN=latt,long GPS location for the Lap Line (finish line), used to compute the lap times. e.g. !MLFIN=36.586221,-121.756818 The finish line at Laguna Seca. You need a high degree of GPS precision for this to work correctly.
- LSRT=”hh:mm” - Lap times starting at time HH:MM, so you can put in the race start time.
- LDVR=”Driver Name” - displays “Driver”, with the name you provide
- LRDR=”Rider Name” - displays “Rider”, with the name you provide
- LRUN=”Runner Name” - displays “Runner”, with the name you provide
- LLTZ=latt,long,timezone for those want to use Sunset/Sunrise timelapse without waiting for GPS lock, 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.
HERO8/9/10 only - 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 limitation: only works 4Kp30 or lower res/fps.)
- LBAR=1 - enable a small luma sweep for video tools evaluation (HERO10 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 limitation: only works 4Kp30 or lower res/fps.)
HERO8/9/10 and Bones cameras - Extensions latest Labs firmware
- HSTO=x - minutes NEW - controlling the length of the Hindsight timeout, changing from the default for 15 minutes. e.g. !MHSTO=60 for a 60 minute Hindsight timeout.
- SPED=x - SD Card Speed Test. ‘x’ is the number of runs, each run is around 10 seconds. Data rates should have minimums above 120Mb/s is you want to reliably capture the high bitrate modes.
- TCAL=milliseconds NEW - 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 only) Same as WAKE=1, expect it will ignore any pending actions, and wake of any power addition. This is useful with combined with a boot command.
HERO9/10 and Bones cameras - 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.
HERO10 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.
- 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.
- 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.
- DLRV=1 - Disable LRV, all videos will have an MP4 old. This is not good idea for Quik uses, as the LRV video helps in video preview. Application: very high bit-rate drones video.
- 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. 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.
- TONE=0 - using the cameras default
- TONE=1 - use GTM only
- TONE=2 - use GTM+LTM
- TONE=3 - disable all tone-mapping
HERO10 only - Advanced features
- IWFR=1 NEW - 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.
- PRXY=1 NEW - Store LRV files as Adobe Premiere Pro™ style proxy files. Normally a camera will encode and LRV (Low Res Video) for every MP4 using this standard directory structure:
When Proxies are enabled, the LRV files will be created with name naming that is ready for Premiere Pro’s Attach Proxies function, greatly speeding up a professional workflows. The new folder structure is:
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.
- TUSB=1 NEW - 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.
Metadata Four CC: e.g. BIAS, HIST etc.
Metadata Value(s): e.g. 2.0 or “Joe Blogg”, strings in quotes, numbers comma separated.
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: July 1, 2022
Learn more on QR Control