Skip to content

Releases: vulkan101/stitch360

Release list

v1.0

Choose a tag to compare

@vulkan101 vulkan101 released this 03 Aug 14:21
Immutable release. Only release title and notes can be modified.

First release.

GoPro MAX splits long recordings into ~4GB chapter files. Stitch360 joins them back into one continuous .360 — losslessly, and in a form GoPro Player still opens and renders as a proper pannable 360 view.

Install

Download Stitch360-v0.1.0-win64.zip, unzip it anywhere, run Stitch360.exe. FFmpeg is bundled; nothing else to install.

Keep Stitch360.exe and the _internal folder together. For a Desktop shortcut, right-click the .exeSend to → Desktop (create shortcut) rather than copying the .exe out on its own.

What it does

  • Drag chapter files or a whole folder onto the window
  • Chapters are grouped by recording and ordered automatically; drag to reorder if needed
  • One click joins each recording, with a real progress bar
  • Output lands beside your chapters as <recording>_stitched.360
  • Your originals are only ever read — never written, moved or renamed

Nothing is re-encoded. It's a container-level stream copy, so it's fast and doesn't touch a pixel.

What survives the join

Both fisheye video tracks, both audio tracks (compressed stereo and the raw 4-channel ambisonic track), and the GPS/gyro telemetry (GPMF).

Also — and this took the most work — the camera's own metadata block. FFmpeg keeps only the moov/udta children it recognises, so GoPro's 26KB block (LENS lens calibration, CAME camera identity, FIRM, SETT, plus a 25KB GPMF blob) was being replaced by a 33-byte stub holding FFmpeg's encoder tag. GoPro Player reads that block to know how to warp the two circular lens images into the 360 view, so without it you get flat, apparently-rotated playback of a single raw lens — even though every stream and timestamp is perfect. Stitch360 transplants it back as the final step of every join.

Two more things it guards against, both found on real footage rather than in theory:

  • At full recording scale FFmpeg can silently drop the ambisonic audio track from the mux — no error, exit code 0. Every join is verified against the streams it asked for, and anything missing is repaired automatically.
  • Chapters with gaps or mismatched formats are caught before anything is written, rather than producing a quietly corrupt file.

Known limitations

  • Windows only. Nothing is fundamentally platform-specific, but it's only been built and tested here.
  • GoPro's tmcd and fdsc auxiliary tracks are dropped. They carry no telemetry and FFmpeg cannot mux them — their codec is unresolvable even in the untouched original.
  • Tested against GoPro MAX .360 footage. Other GoPro models use the same chapter convention and will likely work, but are unverified.

License

Stitch360 is under the PolyForm Noncommercial License 1.0.0 — free for personal, hobby, research, educational and charitable use. Commercial use needs permission; open an issue and ask.

The bundled FFmpeg is separately licensed under GPL v3 and your rights to it are unaffected — see THIRD-PARTY-LICENSES.md for source links and the full text. If you'd rather not receive GPL binaries, delete the bundled _internal/ffmpeg/ folder and the app will use an FFmpeg you install yourself.