Stitch Insta360 Video From Recovered .insv Files

Updated by XAppSet Team

To stitch Insta360 video successfully after a recovery, you need two files and one set of numbers. The files are the per-lens .insv pair; the numbers are the lens geometry the camera records alongside them. When both survive, stitching is a normal import. When the geometry is gone, the pair can often still be stitched from a reference clip, and the result is close to indistinguishable from the original export.

The order of operations is what decides the outcome. Do not open a stitching tool first, do not export anything until the pair is verified, and do not delete the .insv files after a successful export.

What a stitch actually needs from the camera

What a 360 stitch actually needs from the camera

Stitching is the least glamorous part of 360 production and the most parameter-hungry. Producing an equirectangular frame means placing every pixel from two fisheye projections onto a common sphere, and that requires four groups of values.

Per-lens intrinsics. Focal length, principal point, the image circle radius, and the coefficients of the fisheye distortion model for each lens individually. These are properties of the optics and the sensor, and they are measured at the factory.

Extrinsics between the lenses. The distance between the two lens axes and their relative rotation. A few tenths of a millimeter of error here shows up as a visible seam offset in the final frame.

Temporal data. Inertial measurements recorded during the take, which stabilization and horizontal leveling rely on. This is separate from the stitching geometry and is handled on the gyro metadata recovery page.

The output definition. Where the seam is placed, the output resolution, and the projection, which are your choices rather than the camera’s.

On current X-series cameras the first three groups are written into the .insv files themselves. That is convenient while the files are intact and is the reason a partially damaged file can break stitching even when the video stream is perfect.

Three tiers of loss, and what each allows

Recovery results fall into three practical tiers, and the correct method differs for each.

Recovered stateStitching parametersMethodResult quality
Both lenses, metadata intactCompleteImport into the camera’s own studio app and exportIdentical to an original export
Both lenses, metadata block damagedMissingReference calibration from another clip of the same camera and lens guardVery close; slight softness along the seam
Both lenses, streams intact but wrapper damagedMissingRebuild the wrapper, then treat as the row aboveDepends on the wrapper rebuild
One lens onlyNot applicableExtract the fisheye stream and reproject to flatFlat, wide field of view, no 360 reframing
Neither lensNot applicableNothing to stitchNo output

The second row is the one worth understanding, because it is where recovery either succeeds or fails on a technicality rather than on data loss. If the video payload is complete but the parameter block is not, the geometry is recoverable from any other clip shot on the same camera, since lens spacing and orientation are fixed by the housing rather than by the shot.

That last clause has one exception that catches people out. Interchangeable lens guards, such as the officially supported guards for the X3 and X4, change the optical path and therefore change the calibration. The camera and its app ask which guard is fitted precisely because the numbers differ. A reference clip recorded with a different guard is a reference clip with the wrong intrinsics, and the resulting stitch will drift toward the seam. Match the guard as well as the model.

Re-pairing and re-importing the two files

Before any stitching happens, the two files have to be recognized as a pair. This is the step where recovered footage most often gets abandoned for the wrong reason: the recovering application renamed the files to avoid collisions on the destination drive, and the stitching tool identifies the two lenses by file name rather than by content. The mechanism is described in detail on the Insta360 recovery overview.

Restoring the pairing takes three steps.

  1. Recover the directory listing with the files. A scan that reports original file names gives you the naming pattern for free. Where the names are lost, the .insv extraction workflow covers what a good recovery report contains.
  2. Match the halves by recording time and size. The two files of a pair begin at the same instant and run for the same duration, so their sizes should agree to within a few percent. Sort by modification time and pair from the top.
  3. Rename both halves back to the camera’s convention. Keep the folder structure the camera used, preserve any date and sequence numbers in the name, and never give the two halves of one pair different base names.

Confirm the pair before importing by extracting a single frame from each file and looking at it. The two halves of a clip should show the same scene from opposite directions; a mismatch here means two clips have been paired and the stitch will then produce a nonsense result. For the wider checking routine, see the recovered file verification page.

Stitching with a reference calibration

With the pair restored and the metadata gone, the practical route is to let the stitcher use calibration from a known-good clip rather than from the recovered one.

Record a short reference clip on the same camera body, with the same lens guard fitted, in the same capture mode and resolution you are trying to restore. Then apply that clip’s parameters when rendering the recovered pair, either through the studio application’s advanced settings or through a third-party stitcher that accepts an external calibration profile. If neither offers that, a third option is to export a still frame from the reference clip and from the recovered clip at the same orientation and compare the seam position and edge curvature.

Two expectations are worth setting before you start. First, a stitched result built on reference calibration will typically show a slightly softer or slightly doubled edge along the seam, most visibly on objects close to the camera. Second, the poles are the least forgiving region of any equirectangular render, so check the top and bottom of the frame.

Producing flat video from a single lens

When only one lens file survives, the goal changes from stitching to reprojection. There is one fisheye view, roughly a hemisphere wide, and it can be mapped to a flat frame with a far wider field of view than any phone camera. That output is not 360 and cannot be reframed after the fact, but it is usable footage, and for many shots it contains the entire subject.

ffmpeg’s v360 filter does this without any proprietary tools. To convert one recovered fisheye stream to a flat 110-degree frame:

“bash ffmpeg -i lens1.insv -vf "v360=input=dfisheye:ih_fov=200:iv_fov=200:output=flat:h_fov=110:v_fov=70" -c:v libx264 -crf 18 flat_110.mp4 “

To produce a half-sphere equirectangular file instead, which is useful if the output is going into a 360-aware editor or a headset:

“bash ffmpeg -i lens1.insv -vf "v360=input=dfisheye:ih_fov=200:iv_fov=200:output=e" half_sphere.mp4 “

Here is the counterintuitive part, and it is a common source of wasted hours: reprojection is the easy half. v360 maps one projection onto another and stops there. It does not know that a second fisheye exists, it does not find the seam, and it does not blend the overlap between the two views. Stitching two lenses properly means reprojecting each to a common sphere and then combining them with a spatial mask that fades one into the other across the overlap, and the quality of that mask is what separates a clean 360 frame from one with a visible vertical scar. That is why a genuine two-lens stitch still belongs in a stitcher, whether that is the camera’s own application or a professional tool, and why an ffmpeg-only pipeline is best reserved for single-lens fallbacks and for extraction.

Long takes, chapters, and the order of the join

Long takes, chapters, and the order of the 360 join

Long 360 recordings are split into segments, and each segment is a pair of .insv files rather than one file. The joining order matters, and it is not the order most people try first.

Stitch each pair separately, then join the stitched outputs. Do not concatenate the raw .insv files and stitch the result, because each segment carries its own parameter block and a concatenation of two segments hands the stitcher a single file with two conflicting parameter sets. The same logic applies to chaptered action-camera footage, which is covered on the GoPro chapter reassembly page.

If you are on Windows and the card is still detected by a computer, a purpose-built recovery tool such as XRecovery (xappset.com) can scan SD, microSD, and other memory cards for deleted or formatted photos and videos. As with any recovery tool, stop writing to the card first and always save recovered files to a different drive.

Frequently Asked Questions

Can I stitch a recovered .insv pair without the original calibration?

Yes, in most cases. Lens spacing and orientation are fixed by the camera housing, so a reference clip from the same model, firmware, and lens guard supplies usable parameters. Expect a slightly softer seam than an original export.

Why will Insta360 Studio not import my recovered files?

Because it pairs the two lenses by file name, and recovery tools often rename files. Restore the camera’s original naming pattern for both halves of each pair, then import again.

Should I delete the .insv files after exporting a stitched MP4?

No. The stitched MP4 is a render with a locked field of view, and it cannot be reframed or re-projected. The .insv pair is the master, and any future edit should be made from it.

Can I get usable footage from one lens only?

Yes. The surviving file is a complete fisheye stream covering about half the sphere, and reprojecting it to a flat frame with a field of view of around 100 to 120 degrees produces a usable wide-angle clip. What you lose is 360 delivery and any post-shoot reframing.

Privacy Overview
XAppSet

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful. Learn more

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.