Optimal camera/recording settings for GoPro Max?

I have noticed that when recording with video, video timelapse, or timewarp, the video uploaded to Mapillary tends to be lower quality at 4096 x 2048, compared to the 5760 x 2880 I got from photo timelapse. I have also noticed that Google Maps seems to have the 5760 x 2800 resolution when recorded on video still.

I did some tests and the links for them are below.

Photo Timelapse

Video Timelapse

Video Timewarp

24 FPS Video

24 FPS Video Google Maps

I would be fine with the photo timelapse but I want the MAX to take more images about twice as frequently than this. I think the video timelapse would be the perfect speed for taking photos but I can’t take photos faster with photo timelapse. Which is what I need help with.


Side by side comparison of 24 FPS video with photo timelapse.

image
And video timelapse with 24 FPS video.

2 Likes

Yes, the Gopro Max often does not catch what I want.
But also the photographers tend to follow the road and not indent into public building areas.

Yes, I think the GoPro MAX has slightly lower resolution for video than photo (if you’re seeing higher resolution on Google that might just be upscaling). In general I think the resolution and compression hit is worth it if you are capturing in a very dense area and don’t want to miss the details. Otherwise the video or video timelapse mode provide very nice data and upload time savings.

In general our recommended GoPro MAX settings depend on the speed you’re travelling. See https://help.mapillary.com/hc/en-us/articles/360012674619-GoPro-MAX

1 Like

While this topic is old, the link that Hopen111 posted for his “Photo Timelapse” (Mapillary) looks great.

@Hopen111, do you mind sharing the GoPro Max settings you used to capture the Photo Timelapse one? When I tried it on mine, the picture just didn’t look sharp.

1 Like

I basically used the default settings, but now I record with video instead of photo timelapse in case if something crazy happens on the road.

Thanks! Do you find that the video is not as crisp as the photos?

I’m going on a trip this weekend and was planning to record. In tests, the pictures looked better than the video, but the 2s frame rate isn’t great. Also, not many web sites accept .360 files vs jpg.

Do you do the .5s frame rate or the 24fps one?

@mvexel has also nice blogpost about capturing with GoPro MAX! Capturing and uploading 360° imagery with Mapillary: 3. Front vs Side

Video is barely worse than photo timelapse. I use UL2GSV to convert the 360 files to jpg images to upload to more sites as well.

So I am trying out a new GoPro MAX for mapping - thank you Camera Grant Program 2.0!

Initially I was not too happy with the resolution of the capture. The overall 360 capture is great, but the resolution to, for example, read road signs or house numbers is pretty potato quality.

  • Read below to see what I found so far that dramatically improves image quality

  • I am interested in any advice or suggestions anyone may have to improve it further

  • This is specifically for GoPro MAX bicycle recommendations (Video TimeLapse at 0.5 sec) but I believe similar ideas could improve e.g. video captures from motor vehicles (might be best as TimeWarp at 2X/12 FPS or 5X/6FPS, which would allow using the techniques below while keeping file size smaller), and possibly also walking (photo timelapse).

You can see the problem I was having, and how much improvement I have been able to make so far, in the snips below.

[[NOTE: You’ll need to view the images below at full resolution to see what I’m talking about - you might need to download them, depending on the device you’re viewing this on. To make the difference more clear, I’ve put a smaller comparison photo first.]]

#1. Is GoPro MAX with Mapillary recommended settings (as found online here) and most everything else default (out of the box). Time Lapse Video, 0.5 second interval (taken by bicycle), uploaded via the desktop uploader.

Note that you can’t read the number on the mailbox, MANY compression artifacts in e.g. trees & signs, and generally just low resolution and beyond that, smudgy.

MAX defaults (Video Time Lapse, 0.5 seconds, taken while bicycling):


Download full resolution photo #1

#2. Is my cellphone capture, just for comparison. Obviously, not a 360 capture but note that you can easily read the numbers on the mailbox, the school crossing sign shows plenty of detail, etc. I would hope the MAX could at least do close to this in resolution.

My cell phone (4000x3000 resolution) - for comparison:


Download full resolution photo #2

#3. Is the MAX with UPDATED/Improved settings. The most important settings are not available by the usual menus - you need to install the GoPro Labs firmware and then follow the instructions to update some “secret” settings.

IMPROVED MAX quality (Video Time Lapse/0.5 seconds with GoPro Labs settings as described above, taken while bicycling):


Download full resolution photo #3

Note that the Improved version is quite a bit lighter - perhaps even overexposed somewhat - and less saturated. I think with some further tweaking it could be less overexposed and more saturated, while still maintaining the detail - more on those settings, and my next planned experiments below.

>>> Again note that you need to view the photos above at full resolution to see the difference. At low resolution they all look about the same, of course.

GOPRO MAX SETTINGS FOR IMPROVED QUALITY

So far I am finding that the BITRATE setting is the most important (BITR command - as explained here). I set the bitrate from default around 100 to 200 (!MBITR=200) and what do you know - compression artifacts gone.

Of course this makes files a LOT larger, but still the card I have will hold 10+ hours of Video Timelapse at 0.5 second interval. That is generally more than enough for my purposes.

This is a direct link to the page the generates the settings I am currently using. (It is an interesting system - you choose your settings using either a web page or phone app. This generates a QR code, which you scan with the camera. If you have the GoPro Labs firmware installed it recognizes the QR code and implements the settings - giving 3 beeps when successful. It works - only problem I had was getting the camera to recognize a QR code on my phone under the noonday sun. It was just too dim.)

Settings I have experimented with so far:

  • BITR=200 - bitrate in the video file. Default is around 100 and I raised it to 200. You might be able to use an intermediate value like 150 and still get better results than the default. Also, you will need a good quality SD card as this writes a lot more bits to disk while recording - older/weaker/low quality cards might not be able to keep up.

You can set this in the QR app (under extras - choose BITR, enter the value, and be sure the “permanent” is checked). If you use the web page to generate the QR code, then you need to enter the special code under “Additional Commands”. It looks like: !MBITR=200 (!M means this setting will be permanent, ie, persist when the device is turned off/on.)

  • Protune Color: Natural or Flat - supposedly “Vibrant/GoPro” color obscures detail. The photo below is “flat” but next I am going to try “natural” as “flat” seems quite washed out.

  • Color Depth = 10-bit - I haven’t experimented much with this, but more seems better for detail (at the expense of larger files) - also, not sure if this even works on the MAX.

  • Bit Rate: HIGH - Again not exactly sure what this does, or how it interacts with BITR=200 set above. Set to HIGH on the theory that HIGH is better. (Again, not 100% sure this setting even does anything on the MAX - the GoPro Labs documentation for MAX is a bit lacking, so there is some guesswork.)

  • ISO Min: 100, Max: 200 - supposedly this is good enough for work sunrise-sunset and even 30 mins before/after (per a user somewhere on the forums). Allowing higher ISO results in much greater noise in the image. The trade-off is lower ISO equals slower shutter speed, which could result in blurring. But per that user, setting max to 200 gives the best results sunrise-sunset +/- 30 minutes.

  • EV Compensation: +0.0 or +0.5 According to that same user, EV +0.5 or even +1.0 gives better results for our purposes - the sky may be more washed out but you don’t lose a lot of detail in shadows etc. +0.5 seems pretty light & washed out, so I am going to try 0.0 again. But +0.5 definitely keeps shadows from being too dark! (Increased color depth should help here, too - if it really is 10 bit that gives more headroom in very light & very dark areas of the image.

  • Sharpness: LOW - According to that same user, medium or high sharpness results in loss of detail - makes sense just based on what sharpening even is.

  • GPS: On - included just to be safe/ensure it’s always on.

(Most settings that are changeable via the menus I just leave “not set” - and set them via menus. But if you’re going to use the QR code every time you can include some of the key settings in the QR code. This is a good way to ensure settings don’t get inadvertently changed and you always have the same setup when you’re mapping. You can also set up handy things like auto-starting/stopping filming with your movement (under “Delayed Actions”), auto-set of date/time, and so on. I haven’t experimented with any of that yet.)

  • Also I mount the MAX sidewise, as described here. Clarity and resolution for super-wide lenses is best near the center of the view, and deteriorates some especially at the very edges. Signs and such are usually more to the side than the front at closest approach/best view.

Again the URL which has all those settings pre-set for you to try (or adapt as you like) is here:

(https://gopro.github.io/labs/control/set/?cmd=mTp2oMPRES="8,Mapillary-HighBi"mTtcNd1b1i2M1x0sLg1!MBITR=200)

And again: I would love to hear any suggestions or ideas for better quality with the GoPro MAX!

7 Likes

Thank you for such an elaborate description and tangible comparison. I generally concur with your findings.

  • Regarding the BITR=200 setting, do you capture in HEVC or H.264+HEVC mode?
  • Do you capture in 360° video mode or HERO (one sensor only) mode?

In order to free up some write throughput, I also apply DAUD=1 and DLRV=1 since audio and low resolution videos are written in tandem with the main video when recording. Though, I am not sure this really helps.
Furthermore, I think that the video timelapse mode at 2 fps is kind of mute for Mapillary because you can get far better image quality with the photo timelapse mode at the same 2 fps capture speed.

The MAX does not support HDR.

That’s right! :+1: I usually add ½ step of EV compensation too. Most digicam firmwares underexpose the sky (regardless if clear or overcast) for Mapillary, where you rather want to balance more of the available brightness bandwidth on things close to the camera than the sky. A polished and finished firmware would provide a brightness indicator that would enable you to lock exposure time (GoPro calls it “shutter speed”) to some useful value. One could then, by pointing the camera slightly towards the ground eliminate the sky from the picture, get a sensible brightness reading for things close to the camera. The built-in LCD is completely inadequate to judge the effective picture brightness. :face_with_diagonal_mouth: View finding is the best it can do.

Overall, imho the GoPro MAX is a really wired product with some surprisingly poor and unfinished firmware. But, it is what it is. :person_shrugging:

This seems like good content to update the guide.

I have a Max 2025 that came with 2.04 firmware. I successfully flashed to labs firmware (2.02.70) but I have not tested out the new settings yet. 0.5s time lapse is not supported out of the box. You can’t choose it in the settings even with the labs firmware but it does show up on the screen of you set it using the QR code.

Hello flug32,

Thank you for your message. It has been helpful (I had the same quality issue). After the firmware change and the configuration change, the quality is indeed far better. That being said, I have the same issue as you now: the colors seem very “washed” / overexposed. Did you find a solution to that before I try to play with the settings myself ?


For the record, on my side, I used these settings

mTp2oMPRES="8,Mapillary-HighBi"mTcNb1i8M1x0sLg1!MBITR=200

(which gives this QR code)

Which break down this way, according to the GoPro documentation.

mT                  > Mode Timelapse video
p2                  > (0.5s or 2Hz/2p capture)
oMPRES              > Presset
8,Mapillary-HighBi  > 8: icon, "Mapillary-HighBi": name

---

mT                  > Mode Timelapse video (not sure why it's repeated)
[t                  > ?] - You had a "t" here, but I don't see what it is in the documentation, so I just removed it on my own version
cN                  > cN - Color Natural (H10-13) - Perhaps ignored on GoPro Max, not sure.
[d1                 > Depth - 10-bit color - Likely ignored on GoPro Max, so I removed it]
b1                  > High Bitrate
i8M1                > 800 ISO Max with 100 ISO Min (I saw some people recommennding to use 800 as max)
x0                  > EV 0 (default) - Use x.5 for EV +0.5
sL                  > Sharpness = Low
g1                  > GPS = on
!M                  > Will permanently store the following metadata
BITR=200            > Metadata: bitrate = 200 (maximum possible)

Thanks again @flug32! Because of this sub‑sentence of yours I have just realized and understood what the TimeWarp video mode does. :partying_face: Yey! It simply records video at different fps speeds below the nominal fps speed, like 25 fps (for PAL) or 29.94 fps (for NTSC) etc. and stores it in a video container set to the nominal fps speed. In other words, it drops frames from the standard video feed but sets the playback speed to nominal fps. Sheesh :sweat_smile: that “TimeWarp” marketing term and the use of N× speedups in the UI are awfully misleading and difficult to understand.
Well, I guess this is GoPro style; why make things easy if you can make them overly complicated. They should have rather simply let the user choose the recording fps and the playback fps of the video container (or stream) separately. Just call it “Recording FPS” and “Playback FPS” in the UI. That’s it. Done! :laughing: But no, let’s invent a convoluted marketing term! :person_facepalming:

Aha - that would be better indeed!

I didn’t realize this until you said it, but it looks like that via the GoPro Tools firmware/QR Code thing, you can indeed choose photo time lapse FPS of 0.5 second or 1 second (in addition to 2 seconds, 5 seconds, etc).

However, when I do this - in 360° mode - it only takes 2 photos before dying. I assume something - maybe the SD card - is too slow. That is too bad because the quality is definitely much better. The resulting photo is around 3mb in size vs what I am currently uploading at the end of my conversion chain, which is jpgs in the 0.5mb to 0.8mb range.

And the quality difference is immediately apparent, as well.

I’m not sure what I might need to change to get a frequency of 0.5s or even 1s going with photo time lapse - my current SD card is a 256GB Sandisk Extreme, which has a write speed of 140MB/s.

Maybe I need to go with an Extreme Pro or whatever - looks like some of them have up to 300MB/s.

Or maybe there is some other tweak that will allow it to work. It seems to me if it is writing 2X3MB photos per second, that comes out to only 48MB/s, which should leave enough headroom even with a “mere” 140MB/s?

1 Like

I do not think the SD card is the issue. Try lowering the BITR value until you get stable results.

The main reason why image quality in photo (or JPEG) mode is so much better is because video is captured in 4:2:0 (poor quality) chroma sub‑sampling format, while JPEGs are in 4:2:2 (not perfect either but a lot less lossy). Actually, all camera makers should encode JPEGs in 4:4:4 because still image photography ain’t TV or video, for which chroma sub‑sampling formats have been originally designed and intended only. But, who I am I to point out such technical details…

In my experience, these vendor claimed SD card write speed figures are mostly silicon lottery, including from reputable brands. No wonder, they are basically pushing the very latest silicon technology to its limits. These SD cards have to write huge amounts of data over a narrow bus at very high frequencies on a tiny silicon surface. Again, no wonder things get hot quickly, deteriorate, and trigger faults. But, I guess everything these days have to be to the MAX (pun intended) and ULTRA to stay competitive. :person_shrugging:

1 Like

> Try lowering the BITR value until you get stable results.

I tried putting it down even as low as 10, still no dice - even with just 1s interval rather than 0.5s.

There might be some more settings I could try, or maybe another SD card just to roll the dice.

FWIW I have a (not perfect) comparison shot - the photo definitely is sharper/better, though the video is definitely getting 4X as many shots.

(Different days & lighting, so not a perfect comparison.)

1 Like

The two settings that seem to affect this are EV and color. When I put EV to +0.0 and color to High it looks like it did before; I’ve been shooting with Ev +0.5 and color “natural” lately and that looks to be about the best - sharper but not as washed out.

1 Like

There might be some more settings I could try, or maybe another SD card just to roll the dice.

Maybe, I cannot tell for sure.

Mapillary

Mounting the camera sideways seems to work quite well. :+1: Due to this you may want to also add a 90° offset while normalizing the image direction. :wink:

Mapillary

:slightly_frowning_face: Yeah, MAX’ 360° video quality is generally pathetic, not even just disappointing.
The discoloring is caused by a hideous bug in the firmware. No matter whether you set white balance to Auto or to some specific color temperature, it always causes a few images or frames to be completely off. In other words, the MAX does not hold white balance. And, there is nothing you can do about it. I am baffled by the fact how this glaring deficiency could have passed QA to this very day. :confused: Since in this instance your entire sequence is affected, before you capture, try setting white balance to a different value and then back to the value you want (for the capture mode you want to use next) in the UI or via the QR code to potentially reset it.

I think you mean Native. Native is not at all “natural” or what you may think to be natural toning. Native is a photo sensor’s specific or “raw” color temperature, which is determined during a sensor’s production process. Based on this, camera makers have to calibrate every sensor that comes off the production line for true color reproduction. This is usually done by the firmware on every boot up with vendor provided parameters burnt into the sensor. My recommendation is not to use it, unless you know what you are doing and you want to do your own color calibration or white balance in post. For the most part, it is best to use Auto.

1 Like

@flug32

The two settings that seem to affect this are EV and color. When I put EV to +0.0 and color to High it looks like it did before; I’ve been shooting with Ev +0.5 and color “natural” lately and that looks to be about the best - sharper but not as washed out.

Thank you, I will try EV +0.5 then !

[EDIT] Also, I suspect that GoPro Player (for macOS at least) may do something wrong / may not help. If I use some open-source software to convert EAC (Equi-Angular Cubemap) projection used in .360 videos to Equirectangular projection (like max2sphere), the quality seems better (sharper and less “washed”).