Processing Insta360 footage and uploading to Youtube as 360° video.

I recently got a 360° camera for filming when I paraglide or do other adventures. Because a lot of the time in these activities you are occupied with the task at hand, it's hard to also frame the video - a 360° camera allows you to crop the footage later to make stable video of the activity.

But some services like Youtube also now support playback of the original 360° footage. This is pretty fun, as you can scroll around the video in real time. Allegedly you can also play back the video on a VR headset, although I haven't yet had the opportunity to try this.

Because this is a fairly new feature, the workflows for working with 360° footage are pretty painful. Additionally, Youtube's documentation is decidedly lacking. Somehow the world has decided that instead of clearly written instructions, we should move to awkward Youtube tutorials interspersed with begging to like and subscribe. Because of this, coming up with a good workflow is a bit of a pain, and requires some research. I assume that, as this becomes a more popular style of filming, the tools will improve, but for now, here are my workflows (and learnings) for taking footage from an Insta360 camera and uploading as 360° footage to Youtube.

Using the App

The easiest way to process footage off the camera is to use the Insta360 app to export as a file. There is a specific Youtube export target, which picks the right rectilinear format etc, and generates the appropriate file. If you upload this file straight to Youtube however, it won't be recognized as 360° footage - you need to manually add metadata using a tool.

Honestly, this is a pretty appalling workflow, and I expect that at some point the Youtube team will be forced to add this as a step to their regular uploader, but for now, you need to take the exported footage from the app, transfer it to your computer and run this tool on it.

After doing this, you should be able to upload to Youtube regularly, and after a ridiculously long processing time, the footage should work.

From a file.

Insta360 uses .insv files to store video off the camera. It's annoying they feel the need to make a proprietary format, but at the moment, luckily, it seems that these files are just .mp4 files with proprietary trailer metadata. There are some open source attempts to reverse engineer this data, so hopefully we will soon end up with an open source workflow for processing these files, but if you are happy to ignore the metadata, you can simply rename as .mp4 and import the files to whatever video editor you use.

The other inconvenience is that these files contain the 360 degree footage in dual fisheye format, whereas most other software and services including Youtube expect the data to be equirectangular.

Sadly it seems that some of the 360 tooling has been bought up and abandoned by GoPro so some existing instructions are outdated. I also never want to deal with anything Adobe make ever again, so processing these videos with Premier or similar is not an option for me.

The other easy choice would be the Insta360 studio desktop app, but the privacy policy is a little worrying so I also ruled this out.

Unfortunately this leaves very few options. It's certainly early days for this type of video, but parasitic behaviour from the camera manufacturers means that there isn't an easy solution here.

I've been investigating workflows using ffmpeg and similar - my research is here: github.com/peterbraden/insv-to-yt