GoPro Max upload from 360 Time Lapse Video?

I have just obtained a GoPro Max and have done some preliminary capture to 360 photos with the recommended Time Lapse / 2 second interval settings.

However I see a similar 360 time lapse video at a 0.5 second interval. Is it feasible to extract the images and upload to Mapillary with the processing scripts? The resolution appears to be a bit lower than the in-camera stitching, but should be usable. I would think it would be better to use the 0.5 second interval on bicycle for example.

I did some experimenting with the 360 video/time lapse at 0.5 second interval. I was able to convert the video to equirectangular format with the GoPro app, then extract the images, GPX, and insert EXIF information to match the 360 photo/time lapse mode.

I don’t know the advantages or disadvantages of this mode yet, but it’s interesting to see that the GoPro app export has an option to perform horizon leveling.

Can you share the exact timelapse settings you used?

Was this timewarp or timelapse?

The setting was to start with the exact same mode as above: 360 Time Lapse, format = photo.

Then change the format to video and it will allow selecting 0.5s interval under time lapse.

I’m guessing that it can perform faster and achieve 0.5s because it doesn’t have to do in-camera stitching. I’m also guessing that the later conversion to a standard H.264 format with the GoPro app might lose a bit of resolution (5760x2880 to 4096x2048). I haven’t been able to do tests with a bike yet, but I’m hoping that the side view has minimal resolution loss from motion blur.

I’d suggest converting the interim jpg photos back to H264 video is going to lower the image quality too. Video codecs rely on the brain integrating multiple images, so they can afford to be of less quality to reduce filesize.

The 360 Timelapse / Video @ 0.5sec produces a GoPro format .360 video file, which I couldn’t get FFMPEG to recognize directly and create the proper spherical image files extract. So it was the .360 video file that I was converting to H.264 format video. That may work in the future if someone integrates the GoPro codec logic into FFMPEG.

I finally have a processing chain for the time lapse video. It’s very clumsy and I was too lazy to write part of it in Python so it includes a Windows executable in DotNet. In a quick test, I didn’t have a proper mount - just a tripod in a backpack so the whole sequence was tilted. I prefer the video because of the built in horizon leveling if nothing else.

Time lapse photo:

Time lapse video:

The image quality of the video is quite a bit worse than the photos.

In the photos I can pretty much read the shop sign behind the black and white cars. It’s something like ‘Mi Paeblito’ which would be useful for OpenStreetMap. But in the video images all I can tell is that there’s probably letters there and it’s all down to the compression artifacts. Is there a video setting that can be tweaked to increase quality (e.g. bitrate).

Good observation - I didn’t have time to run a good parallel test, but the crossover position is a good comparison. Now I can see that also; the reduction in quality is enough to make the mode useless for reading signs.

I think it would work if I can find a way to directly extract the full resolution frames from the .360 video. I went back and looked at a still frame from the 360 video on the GoPro app, and the letters match the still photo. So the information is in the video but the resolution conversion to something that FFMPEG recognizes makes it useless after all. So I’ll be concentrating on foot and slow bike for now for 360 sequences.

1 Like

After thinking this through, I revisited the processing and I arrived something that I think will work since it produces the equivalent legibility.

GoPro App: Convert .360 time lapse to CineForm 5.6K. Then I also had to add parameters to FFMPEG to retain full quality in the extracted image frames. After that change, the text readability is very close. I’ll have to run a more controlled test while walking to compare this later.

1 Like

It is a shame about the 2 second interval on the GoPro Max for the 360 camera, however it seems to be the only way to get the top quality results. I also have set up a method of syncing to Mapillary directly from the GoPro cloud (so effectively just connect the gopro to the wifi, and the rest will happen automatically), which would be harder with video.

I finally got a chance to get out and capture a comparison sequence by bicycle. I think I have a close approximation this time:

.5 sec Video time lapse sequence:

2 second photo time lapse:

Not terribly scientific, but at this point the speeds were similar (10-14 mph), and it was within 5 minutes of the other.

My conclusion: The 2 second interval is not too bad until you get into higher bike speeds such as over 15 mph. It is no problem walking.

But the thing I really like about the video timelapse though is the horizon leveling. I captured about 15 miles of photo timelapse footage by bike in addition to this, however I’m going to discard that and retake it all by video timelapse to make use of the horizon leveling. I’ll even use video timelapse while walking for the same reason - although I could increase the interval in that case.

It could also be more interesting by car, but many cases need higher resolution and performance than the GoPro Max to read house numbers and business names for example.

I have a Max too.

Photos extracted from video seems way better in term of quality than video timelapse.

Have you tried to extract a sequence from a video ?

That’s interesting - it’s possible that they put most of their development efforts into sharp video, and not so much still photographs in timelapse mode. In your tests, were both sets of extracted photos taken from a camera in motion?

Yes, only walking.
Unfortunately, I’m not able to extract spherical images from a video. I’m on linux and I can’t use Gopro’s software to have a mp4 video.