- Overview -#
Insta360 cameras, consumer as well as professional cameras, do not only use / provide standard file types like .mp4 but also some own file types (.insv/.insp) as well as some special files created by the cameras. Related to 360° recordings the view of the individual lenses is saved in an unstitched way and therefor the files have to be processed with the mobile app or Studio2021 to get the stitched view for further usage.
The most common you will face are the .insv and .insp files. As the file extension suggested those are used for video (.insv) and images (.insp). But along the folders containing the content holding files mentioned before the consumer cameras (OneX/R/X2 and Go2) save a kind of index/list file inside the /DCIM/ directory at the same level as the CameraXY directories.
Related to different recording types a different number of files is created. Important to know, in 5.7k 360° recording the cameras create two main video (.insv) files. The OneR/X2 also create a third file with the LRV_ prefix. That file is used as a helper file to speed up preview in the app while editing, especially via a WiFi connection. More to that later on.
So based on that you most likely will see these kind of files on your micro SD card:
Video files: 5.7k 360° VID_20220110_121609_00_657.insv VID_20220110_121609_10_657.insv LRV_20220110_121609_11_657.insv (only OneX2/R) <=4k 360° VID_20220110_121609_00_657.insv LRV_20220110_121609_11_657.insv (only OneX2/R) SteadyCam (one lens) mode OneX2, OneR with single lens module, Go2 "Basic" VID_20220101_094420_00_013.mp4 (inner lens used) LRV_20220101_094420_01_013.mp4 (helper file for inner lens) VID_20220101_094420_10_013.mp4 (outer lens used) LRV_20220101_094420_11_013.mp4 (helper file for outer lens) "Pro" PRO_VID_20220109_144034_00_023.mp4 PRO_LRV_20220109_144034_01_023.mp4 PRO_VID_20220109_144034_10_023.mp4 PRO_LRV_20220109_144034_11_023.mp4 Image files: IMG_20211109_172328_00_005.insp IMG_20211109_172328_00_005.dng
- List file -#
The "list file" is named fileinfo_list.list and can be found on the camera internal storage / micro SD card in the /DCIM/ directory. The file itself is a binary coded file, even so it can be displayed by a normal text editor because of the clear text strings it contains. But at best - if you are interested - use a tool like HxD, Notepad++ or UltraEdit.
Normally you will not interact with that file because it's only for internal use of the camera in combination with the app or other tools using the related API to query a list of content files stored at the camera.
Basically this file can be seen as a helper file to speed up the display of files in the apps album section by providing basic information about each individual content file. Those information include
- complete storage path together with
- file name
- camera serial numer
- firmware running at the camera at time of recording
- a kind zero point calibration data for the gyro (the same data can be found inside the referred content file)
- helper data for the stitcher routines (the same data can be found inside the referred content file)
- value pair reflecting the video/image dimensions, e.g. "6080_3040"
The fileinfo_list.list file is created by the camera. In case it it is missing the camera will walk through the stored content and rebuild the file. Normally only updates are written to the top (oldest entry at the bottom) after a recording is done.
There is only one time where you interact with that file. In case your app does not populate the album section - even on a pull down gesture to force an update - it can help to delete the list file from the micro SD card. So the way to go would be:
- connect camera to a desktop / use micro SD card in a card reader
- access the micro SDcard to go into the DCIM/ folder
- delete filinfo_list.list file
- restart/start the camera with the micro SDcard inserted
- connect your mobile device to the camera
- start the app
- be patient while the album section loads
At the last step the newly created fileinfo_list.list file is downloaded and thumbnails from the content at the camera are generated and downloaded to the apps cache. Depending on the number of files on the SDcard that may take a few seconds.
- Filename syntax -#
The file names used by Insta360 consumer cameras for saved content encode a set of information at one glance. Along with the type of content the file holds, you get a DateTime string, a lens index and an up counting index number. And at last there is the file extension (.insv/.insp/.dng/.mp4).
VID_20220110_121609_00_657.insv | | | | | | | | | | | └ file extension => ins(ta360)v(ideo), ins(ta360)p(icture) | | | | | | | | | └ upcounting index number between 001 and 999 per CameraXY directory | | | | | | | └ lens index number for 5.7k video | | | | | └ 24h timecode string (hhmmss) => 12:16:09 | | | └ date string (yyyymmdd) => 2022-01-10 | └ type of file content
Type of file content#
VID_ => Video IMG_ => Image LRV_ => LowResolutionVideo PRO_ => PRO mode SteadyCam one lens mode related
Combinations of those prefixes are possible. For example a PRO_VID_ defines that the file contains the video recorded in PRO Mode with the SteadyCam mode which records the view of only one lens. Connected to that PRO_LRV_ marks the LowResolutionVideo helper files for the above SteadyCam recording.
The date and time a recording is done is encoded in the file names name by a two part numeric string with an underscore as divider between the date and the time. Using a datetime syntax it would use the placeholder of yyyymmdd_hhmmss. By this the string in the above example
breaks up into 20220110 for the date, which translates to 2022-01-10, and 121609 for the time which translates to 12:16:09.
Please keep in mind that Insta360 consumer cameras seem to only have one timezone for each country in their internals. That leads to a little offset on the time especially around the timezone switches (summer/winter time).
Please note also that there is a difference between the datetime in the file name and the datetime saved in the exif tags EXIF:DateTimeOriginal and EXIF:DateTimeDigitized. For more about timestamps see an extra section.
Lens index number#
_00_ => for 5.7k recording lens index for the inner lens (display side) _10_ => for 5.7k recording lens index for the outer lens (non display side) _11_ => helper file lens index for outer lens SteadyCam & 360° recordings _01_ => helper file lens index for inner lens SteadyCam
Recordings with a lower resolution than 5.7k only produces one *.insv file. That file - for example in 4K 360° - contains the view of both lenses in their fisheye style in one file. That fact is not visualized by a special lens index.
File index number#
The file index number is up counted starting with 001 and the last value used in one folder will be 999. With that number in mind we have to look at the organization structure on the storage. All content files are stored in folders named CameraXY where XY is a two digit number starting with 01. If the file index number reaches 999 an new CameraXY folder is created with its number raised by one. Because of this you can find the following on your cameras storage
/DCIM/ /DCIM/fileinfo_list.list /DCIM/Camera01/ /DCIM/Camera01/*_001.insv . . . /DCIM/Camera01/*_999.insp /DCIM/Camera02/ /DCIM/Camera02/*_001.insp . . .
As mentioned before each file has a file type postfix by which the operating system and/or tools can fast detect what file it has to deal with if they do not look at the binary identifier at the start of each file. So these -also human readable - file type postfixes can be of
.insv => Insta360 video file type postfix, derived from ins(ta360)v(ideo) .insp => Insta360 image file type postfix, derived from ins(ta360)p(icture) .dng => standard postfix for Digital Negative (DNG) raw image files .mp4 => standard postfix for a digital multimedia container, containing mostly MPEG-4 encoded media streams
As a short note, if you have a .mp4 file with no PRO prefix, you can play and use that directly in any editor without the need to parse and export it through the app or Studio2021. Having no PRO_ at the start of the file name indicates it was recorded in Basic mode with a fixed display aspect ratio and a somehow reduced image stabilization which is done on recording time. Due to that it is ready for use.
Clustering of images#
Depending on the capture mode, multiple files are grouped together. This clustering is done by sharing the same base file name incl. the lens index and only incrementing the sequential number at the end. There is one exception from that rule, if you enable to take DNGs as well - for example by enabling PureShot - parallel to each .insp a .dng is saved. On those two files only the file extension differs, the filename itself is equal. This clustering is done for images only.
This clustering is done for
- 2 files if DNG / PureShot is enabled
- 3 to 9 bracket images plus the corresponding DNG if enabled
- n images depending on interval setting and duration plus n*DNG if enabled
- 9 images + 9 DNG if enabled
- 9 images + 9 DNG if enabled
Not all cameras support all modes. The number of images grouped together depend on the mode and the settings of that mode. The following is an example of a NightShot with DNG enabled:
26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_756.dng 26.02.2022 16:33 3.872.713 IMG_20220226_163328_00_756.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_757.dng 26.02.2022 16:33 3.753.925 IMG_20220226_163328_00_757.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_758.dng 26.02.2022 16:33 3.764.633 IMG_20220226_163328_00_758.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_759.dng 26.02.2022 16:33 3.778.628 IMG_20220226_163328_00_759.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_760.dng 26.02.2022 16:34 3.787.272 IMG_20220226_163328_00_760.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_761.dng 26.02.2022 16:34 3.803.229 IMG_20220226_163328_00_761.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_762.dng 26.02.2022 16:34 3.817.436 IMG_20220226_163328_00_762.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_763.dng 26.02.2022 16:34 3.828.624 IMG_20220226_163328_00_763.insp 26.02.2022 16:33 37.070.171 IMG_20220226_163328_00_764.dng 26.02.2022 16:34 1.227.135 IMG_20220226_163328_00_764.insp 18 Datei(en), 365.265.134 Bytes
Only by the filenames in such a cluster you get no hint which mode was used. Therefor you need to load all of those files into Studio2021/2022.
- Video files -#
As mentioned at the beginning, Insta360 uses its own format for video files as well. First of all, we have to distinguish between the .insv and the - apparently normal - .mp4 files. There are also two types of the latter, the mp4 files.
But let's stay with the insv files for now. Most programs won't recognize these files directly as video files, but some - like VLC Player or MediaInfo - can handle them if you drag and drop them into these programs.
This is because insv files are based on the same container structure as normal MP4 files. Like MP4 (MPEG-4 Part 14), an insv file is also based on the ISO/IEC 14496-12:2004 standard, and this standard is in turn an extension of the QuickTime file format specification. As you can see from the extension ":2004", the original standardization was formulated in 2004 and went through some changes until today, which were transferred into ISO/IEC 14496-12:2022 (https://www.iso.org/standard/83102.html). If you want to dive deeper into the structure https://docs.fileformat.com/video/mp4/ gives you a good hint.
Because of this relationship, any program that can read mp4 files - and not only detects them on their file extension but on their byte code - can also read insv files. The question is whether you want to use what it then brings to the view.
This example is taken from a 4K 360° video recording. A 5.7k - as mentioned above - results in two insv files each holding one of those circles representing the view of each lens. It is also an example of what can be seen in an unprocessed image file, although there the spacing of the two circles is a little larger.
And because of that you need to process the files with the mobile app or Studio2021 and export them to stitched view which gives you the equirectangular projection with a 2:1 display aspect ratio together with the needed metadata to have tools detect those exports as 360° media.
Using other tools then Insta360 mobile app, Studio2021 or its PremierePro import plugin will ignore additional extended Insta360 processing related metadata. This includes, among other things, the gyroscope data, as well as auxiliary information for optimizing the stitching.
Basic & Pro mode - single lens recording#
Coming back to the beginning, Insta360 consumer cameras not only save video in .insv files but also in .mp4 files. What makes this worth mentioning is the fact that a distinction is made here between recordings in Basic and Pro mode.
Basic mode recorded mp4 files are fixed in terms of selected display aspect ratio, stabilization, field of view and distortion correction. You have to set those parameters before recording. The advantage is you can use those mp4 directly in other tools or upload them to whatever platform you like without the need to export them with Insta360 mobile app or Studio2021.
Pro mode recorded mp4 files have the advantage that you can change all the above mentioned parameter during editing in Insta360 mobile app or Studio2021. You can - using the app - also shift the view spot a little bit because like with 360° recording the whole view of the used lens is saved in the mp4. But because of that you need to export those files to transform them in the kind of mp4 any other tool can use.
In Pro mode mp4 the camera also stores GPS data - if enabled in the app or GPS Smart Remote was used - as well as the full set of gyroscope data. This allows to use a much more sophisticated stabilization as with Basic mode recorded files.
But there is one exception. Up to now (2021-03) Go2 does not record GPS data, neither by using the app or with GPS Smart Remote.
The video stream inside those insv and mp4 files is done by standard video stream either encoded with H.264 (AVC, Advanced Video Codec) or H.265 (HEVC, High Efficiency Video Coding). Depending on the camera different Main Profiles and Levels might be used.
|H.264 (AVC)||Main, Level 5.1||Main, Level 5.2||Main, Level 5.2||Main, Level 5.2|
|H.265 (HEVC)||✖||Main, Level 5.1||Main, Level 5.1||✖|
You can rename *.insv files even if they belong to a 5.7k recording. The important thing is to keep a lens index ( _00_ / _10_ ) attached at the end of the filename. For example:
Original files: VID_20220110_121609_00_657.insv VID_20220110_121609_10_657.insv Renamed files: 2022-01-10_Video_5.7k_00_.insv 2022-01-10_Video_5.7k_10_.insv
Make sure the lens index keeps it trailing underscore and both files are in the same folder then Studio2021 will recognize them as one recording and load them without problems.
In terms of limitations mostly the length of one uncut recording is meant. This means how much time of a recording session can be stored inside of one file / file set before the recording either stops or a new file / file set is created. This continuous recording by creating a new file / file set will result in a small time gap in the stored recording.
The following table - in its basics - is taken from the OneX related FAQ entry but in charge for OneX/R/X2. In addition the times for OneX2 SteadyCam mode were added.
|Shooting Mode||Resolution & Frame Rate||Length of Recording Time|
|5.7K - 30fps||30 min|
|4K - 50fps||30 min|
|Standard Video||4K - 30fps||90 min|
|3K - 100fps||30 min|
|Bullet Time||3K - 100fps||30 min|
|Time-Lapse||5.7K - 30fps||30 min*1|
|HDR Video||5.7K - 25fps||30 min|
|SteadyCam video (OneX2)|
|all resolution - 50 fps||30 min|
|all resolution - 30 fps||no limit*2|
*1 max length of final time-lapse video; not the length of recording time *2 limit only by storage space on the micro SDcard
As you see, if you need above 30 minutes of continuous recording time without a gap in the final result you should go with 4K 30fps which gives you 90 minutes in one file.
The recording limit is enforced by the iOS version of the app. While recording with the Android version you will see a message on the recording screen during the switch to another set of files but the recording will continue. Based on that the following table shows the status related to continuous recording:
|Recording Method||Continuous Recording|
|GPS Smart Remote or equal||✔|
- Image files -#
The file type used for images is .insp in general. You also will find .dng image files as Insta360 consumer cameras use that file type for saving RAW images to preserve the maximum of sensor data. In general you use DNG to get more details, a better dynamic range and data for colour correction.
Like for video files, we talked about the relationship to mp4. With the image files it doesn't look much different, here the relationship goes back to the jpeg/jpg files (https://docs.fileformat.com/image/jpeg/) and the file extension used for image file is *.insp.
As already mentioned, programs that do not only look at the file binding can load and display an insp file. In insp format, the 360° image - consisting of one view of each lens - is stored in two fisheye-like representations next to each other, equivalent to the video file. The only similarity to the JPEG file is the display aspect ratio of 2:1.
360° by definition#
If you look in these files for information that defines the image inside as a 360° image, you won't find anything like that. At least not in the way other programs would expect. Unstichted insp files, as well as dng files, contain Insta360 own kind of additional information by which they are detected and helping data is given to the stitching tools. Those information binary encoded look similar to what you find in the above mentioned fileinfo_list.list file.
To give you an example about that, the first image shows the raw visual of an insp. The views of each lens is saved as the mentioned circular fisheye view and both parts are unstitched. The second image is the result of the stitching process done for exporting the image in equirectangular projection type.
The XMP:GPano information - and this is what all 360° processing tools look for - is written into the resulting JPEG files only after stitching during export. The following is an example for those GPano tags based on an image taken with the OneX.
XMP Toolkit : XMP Core 4.4.0-Exiv2 Use Panorama Viewer : True Projection Type : equirectangular Cropped Area Image Width Pixels : 6080 Cropped Area Image Height Pixels: 3040 Full Pano Width Pixels : 6080 Full Pano Height Pixels : 3040 Cropped Area Left Pixels : 0 Cropped Area Top Pixels : 0 Initial View Vertical FOV Degrees: 95 Capture Software : insta360 one x Stitching Software : Insta360 Studio 2019 3.4.2 Initial Horizontal FOV Degrees : 100 Image Width : 6080 Image Height : 3040
Basically only two tags are improtant
- Use Panorama Viewer
- Projection Type
The first defines that a tools should not display the image as a normal flat image but with the help of a panorama viewer which bends all edges together. The second defines in which way those edges have to be connected. This is because the here seen "equirectangular" is not the only projection type which can be used for 360° images. Remember, there is no real standardized 360° image file format. But a standardized way to contain 360° images in standard image formats.
Therefor the following projection types are defined
- Cube Map
- Equi-Angular Cubemap (EAC)
- Pyramid format
But just to mentioned those. Within all Insta360 tools the export of the two circular fisheye views use the equirectangular projection type. If you want to play around with those other types have a look at PanoPainter. It can convert from one projection type to another as well as generate empty 360° images in which you can "paint".