Photography

B-Insta360-ACE-Pro-2-Programmer-Setup

📅 2026-05-12 ✍ Yahya Nazer
B-Insta360-ACE-Pro-2-Programmer-Setup

B-Insta360-ACE-Pro-2-Programmer-Setup

Author

Yahya

Published

May 12, 2026

Insta360 ACE Pro 2 — Professional Programmer Setup Guide

Camera: Insta360 Ace Pro 2
Audience: Developers integrating the camera into software workflows, automation pipelines, or custom applications
Last updated: May 2026


Table of Contents

  1. Hardware Overview
  2. First-Time Activation
  3. MicroSD Card Setup
  4. Connectivity Options
  5. File Access and Transfer
  6. Camera Control via OSC (Open Spherical Camera API)
  7. Insta360 SDK Access
  8. Webcam / Virtual Camera Mode
  9. Firmware Updates (Programmatic)
  10. Key Technical Specs Reference
  11. Developer Tips and Known Quirks
  12. Useful Links

1. Hardware Overview

Item Detail
Sensor 1/1.3” CMOS, up to 8K30fps, 50MP photos
Chip Dual AI chip (5nm AI chip + dedicated imaging chip)
Lens Leica SUMMARIT, F2.6 aperture, 13mm equiv.
Display 2.5” rear flip screen (440 x 696 px, 329 PPI)
USB Type-C, USB 3.0
Wi-Fi 2.4 GHz / 5 GHz, 802.11 a/b/g/n/ac
Bluetooth BLE 5.2
Wi-Fi range ~50 m (open environment)
Storage MicroSD only (no built-in), up to 1 TB
Battery 1880 mAh, ~180 min (Endurance Mode, 1080p24)
Fast charge 80% in 18 min via 30W USB-C PD
Waterproofing Camera body: 12 m; with Dive Case: 60 m
OS support Windows, macOS, Linux, Android 10+, iOS (iPhone 15+)

2. First-Time Activation

Activation is mandatory before the camera can be used programmatically.

  1. Insert a charged battery and a formatted MicroSD card.
  2. Power on by holding the Power Button.
  3. Download the Insta360 App (iOS / Android) and create or log in to an Insta360 account.
  4. In the app: tap the camera icon -> select Insta360 Ace Pro 2 XXXXXX from the device list.
  5. Confirm the connection on the camera touchscreen when prompted.
  6. Follow the in-app wizard to complete activation and install any available firmware update.

Note: The camera’s default Wi-Fi SSID is Insta360 Ace Pro 2 XXXXXX where XXXXXX = last six digits of the serial number printed on the box.


3. MicroSD Card Setup

Choosing the wrong card causes corrupted clips.

Requirement Value
Speed class UHS-I, V30 or higher
Capacity Up to 1 TB
File system exFAT
Avoid UHS-II, UHS-III, or cards over 1 TB

Format from the camera (not from a computer):

Camera screen -> Swipe down -> Settings (gear icon) -> Storage -> Format SD Card

Formatting from the camera ensures the correct cluster size and avoids recording errors.


4. Connectivity Options

4.1 USB (Wired) Connection

Connect the camera to your computer using the included USB-C to USB-C cable.

On the camera, a pop-up offers three USB modes:

Mode Use case
U-Disk Mode Camera appears as a USB mass storage device; access DCIM folder directly
Webcam Mode Camera streams live video as a standard UVC webcam
Charge Only No data, only charges the battery

U-Disk Mode is the recommended mode for scripted file access on all platforms (Windows, macOS, Linux). Transfer speed is USB 3.0.

# Linux / macOS: mount point appears automatically, e.g.
ls /Volumes/Untitled/DCIM/          # macOS
ls /media/$USER/Untitled/DCIM/      # Linux

# Windows: drive letter assigned automatically (e.g., E:\DCIM\)

4.2 Wi-Fi Connection

The camera hosts its own Wi-Fi access point.

Step 1 — Find credentials:

Swipe down (camera screen) -> Settings (gear) -> Wi-Fi Settings

Note the SSID and the randomly generated password.

Step 2 — Connect your computer:

# macOS / Linux: connect via standard network manager or nmcli
nmcli dev wifi connect "Insta360 Ace Pro 2 XXXXXX" password "YOUR_PASSWORD"

Step 3 — Camera IP address:

Once connected, the camera is reachable at:

http://192.168.42.1

This is the base URL for all HTTP API commands (see Section 6).

Range: approximately 50 m line-of-sight. The camera can only connect to one Wi-Fi client at a time.

4.3 Bluetooth (BLE)

BLE 5.2 is used primarily for:

  • Initial device discovery / pairing from the Insta360 App
  • Wake-on-BLE (waking camera from standby without full Wi-Fi)
  • Remote shutter trigger via Bluetooth accessories

BLE is not suitable for bulk file transfer or high-throughput control — use Wi-Fi or USB for those tasks.


5. File Access and Transfer

Via USB (U-Disk Mode)

The DCIM folder structure:

DCIM/
  Camera01/
    VID_YYYYMMDD_HHmmss_XX.mp4       (video clips)
    IMG_YYYYMMDD_HHmmss_XX.jpg       (JPEG photos)
    IMG_YYYYMMDD_HHmmss_XX.dng       (RAW photos, if enabled)
    LRV_YYYYMMDD_HHmmss_XX.lrv       (low-res proxy video)
    THM_YYYYMMDD_HHmmss_XX.thm       (thumbnail)

LRV files (Low Resolution Video) are proxy files for fast preview — they are not full-quality footage. THM files are JPEG thumbnails.

Python example — list all MP4 files from a mounted card:

import sys
sys.stdout.reconfigure(encoding='utf-8')

import os

DCIM_PATH = r"E:\DCIM\Camera01"   # Adjust to your mount point

for root, dirs, files in os.walk(DCIM_PATH):
    for fname in sorted(files):
        if fname.lower().endswith(".mp4"):
            full = os.path.join(root, fname)
            size_mb = os.path.getsize(full) / (1024 * 1024)
            print(f"{fname}  ->  {size_mb:.1f} MB")

Via Wi-Fi (HTTP File Listing)

When connected over Wi-Fi, you can query available files:

GET http://192.168.42.1/osc/commands/execute
Content-Type: application/json

{
  "name": "camera.listFiles",
  "parameters": {
    "fileType": "all",
    "startPosition": 0,
    "entryCount": 20,
    "maxThumbSize": 0
  }
}

6. Camera Control via OSC

The ACE Pro 2 supports OSC (Open Spherical Camera API) for HTTP-based camera control when connected via Wi-Fi.

Base URL: http://192.168.42.1
Protocol: HTTP/1.1, JSON body

Common OSC Endpoints

Endpoint Method Description
/osc/info GET Camera info (model, firmware, API level)
/osc/state POST Current camera state
/osc/checkForUpdates POST Poll for state changes
/osc/commands/execute POST Execute a command
/osc/commands/status POST Check async command status

Example: Get Camera Info

import sys
sys.stdout.reconfigure(encoding='utf-8')

import requests
import json

BASE_URL = "http://192.168.42.1"

def osc_info():
    r = requests.get(f"{BASE_URL}/osc/info", timeout=5)
    r.raise_for_status()
    return r.json()

info = osc_info()
print(json.dumps(info, indent=2))

Example: Take a Photo

import sys
sys.stdout.reconfigure(encoding='utf-8')

import requests
import json

BASE_URL = "http://192.168.42.1"

def take_photo():
    payload = {"name": "camera.takePicture"}
    r = requests.post(
        f"{BASE_URL}/osc/commands/execute",
        json=payload,
        headers={"Content-Type": "application/json"},
        timeout=10
    )
    r.raise_for_status()
    return r.json()

result = take_photo()
print(json.dumps(result, indent=2))

Example: Start / Stop Video Recording

def start_recording():
    payload = {"name": "camera.startCapture"}
    r = requests.post(f"{BASE_URL}/osc/commands/execute", json=payload, timeout=10)
    return r.json()

def stop_recording():
    payload = {"name": "camera.stopCapture"}
    r = requests.post(f"{BASE_URL}/osc/commands/execute", json=payload, timeout=10)
    return r.json()

Checking Async Command Status

Some commands are asynchronous. Poll with:

def check_status(command_id):
    payload = {"id": command_id}
    r = requests.post(f"{BASE_URL}/osc/commands/status", json=payload, timeout=5)
    return r.json()

7. Insta360 SDK Access

For deeper integration (preview streaming, stitching, media processing), Insta360 provides a formal SDK. The ACE Pro 2 is an action camera; SDK access targets primarily the panoramic camera lines (X4, X5, etc.), but the Desktop SDK and Camera SDK-Cpp are worth evaluating for your use case.

SDK Options

SDK Platform Use case
Camera SDK (C++) Windows, Linux Camera control, capture, parameter settings
Media SDK (C++) Windows, Linux Stitching, stabilization, chromatic calibration
Mobile SDK iOS, Android Camera control and media management from mobile apps

How to Apply

  1. Visit: https://www.insta360.com/sdk/apply
  2. Fill in company/developer information and intended use case.
  3. Approval via email within approximately 3 business days.
  4. The download link provided is permanent and always delivers the latest version.

Note: SDK approval is required — there is no public open download. For the Pro/Pro2/Titan series specifically, the HTTP-based ProCameraApi is publicly available on GitHub at https://github.com/Insta360Develop/ProCameraApi.


8. Webcam / Virtual Camera Mode

The camera can act as a standard UVC webcam over USB — no drivers required on modern operating systems.

Steps:

  1. Connect via USB-C cable.
  2. On the camera screen, select Webcam Mode from the USB pop-up.
  3. The camera appears as Insta360 Ace in your system’s camera/video device list.

Tested applications:

  • Zoom, Microsoft Teams, Google Meet, BlueJeans, Lark, DingTalk, Tencent Meeting

Python / OpenCV access:

import sys
sys.stdout.reconfigure(encoding='utf-8')

import cv2

cap = cv2.VideoCapture(0)  # Adjust index if multiple cameras present
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)

while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow("Insta360 Ace Pro 2 Webcam", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

9. Firmware Updates

Firmware updates are handled through the Insta360 app. For a programmatic check and update flow:

  1. Connect the camera via Wi-Fi or USB.
  2. Open the Insta360 app -> Camera Settings -> Firmware.
  3. The app will detect and download any available update.

Requirement: Battery must be at least 20% before initiating an update.
Tip: Keep firmware current; new releases regularly fix Wi-Fi stability and OSC API behavior.


10. Key Technical Specs Reference

Parameter Value
Max video resolution 8K (7680 x 4320) @ 30fps
4K Active HDR 4K @ 60fps
Photo resolution 50 MP
Log profile I-Log (for professional color grading)
Bitrate modes Standard / High
Stabilization FlowState + 360 Horizon Lock
Gyroscope 6-axis
USB protocol USB 3.0 (Type-C)
Wi-Fi 2.4 / 5 GHz, 802.11 a/b/g/n/ac
Bluetooth BLE 5.2
Operating temp. -20 deg C to 45 deg C
Timecode sync Yes (multi-device sync support)
Reverse charge Yes (camera can charge other devices via USB-C)
Dive case depth 60 m

11. Developer Tips and Known Quirks

  • Path separators on Windows: When building file paths from the DCIM directory programmatically on Windows, use os.path.join() rather than hardcoding / to avoid backslash-related bugs.
  • U-Disk Mode is the safest for scripted access: Unlike Android Mode (used by the Insta360 App), U-Disk Mode mounts as a standard drive and requires no ADB or special protocols.
  • LRV proxy files: Always filter out .lrv and .thm files when enumerating footage unless you specifically need proxy resolution.
  • Wi-Fi is single-client: Only one device can be connected to the camera’s hotspot at a time. Disconnect from the hotspot before switching to USB.
  • exFAT formatting: Always format the card from within the camera, not from Windows Explorer or macOS Disk Utility, to prevent cluster-size mismatches.
  • I-Log for post-processing: Enable I-Log mode for maximum dynamic range when footage will be processed by Python/FFmpeg pipelines for color grading.
  • Timecode sync: Useful for multi-camera setups — the Timecode Sync feature (accessible via the Insta360 app) aligns media timestamps across devices for editing.
  • QuickCapture: The camera supports immediate recording on power-on without navigating menus — useful for automated trigger scenarios.
  • OSC API compatibility: The ACE Pro 2 supports a subset of the OSC v2.1 API. Not all OSC commands are available; test each endpoint on your specific firmware version.

Inst360 ACE Pro 2
← Back to Blog