Code Monkey home page Code Monkey logo

insta360_osc's People

Contributors

le-insta360 avatar nibtod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

insta360_osc's Issues

Waking up camera from stand-by over wifi

Model: ONE R
Firmware: v1.2.16

Use-case:
Trigger photo remotely over Wifi

Issue:
There is no method to wake-up camera from the standby before taking a photo

Steps:
We send /osc/info to camera first => response ok. Camera firmware does not respond at all to /osc/state command, even camera is not in the sleep mode.

Error:
{
"name": "camera.takePicture",
"state": "error",
"error": {
"code": "disabledCommand",
"message": "Currently camera is not working in image mode"
}

Proposal:
Implement API call to camera wake-up before we sending take a photo command or implement it as part of the /osc/state, which currently does not work.

Thanks!

X3不支持机内拼接

固件版本v1.0.23
{"name":"camera.getOptions","state":"done","results":{"options":{"iso":0,"isoSupport":[0,100,125,160,200,250,320,400,500,640,800,1000,1250,1600,2000,2500,3200,4000,5000,6400],"hdrSupport":["off","hdr"],"hdr":"off","totalSpace":63248007168,"remainingSpace":62845616128,"photoStitchingSupport":["none"],"photoStitching":"none"}}}
不支持机内拼接

camera.getMetadata returns empty xmp data

It is impossible to get a photo's gryro data to perform stitching due to both the JPEG's exif missing the gyro data, and camera.getMetadata also returning no xmp/gyro data.

Thoughts?

On-device stitching support for ONE R API

Model: ONE R
Firmware: v1.2.16

Use-case:
Stitching when taking a photo

Issue:
Firmware does not support stitching

API:
{
"name": "camera.setOptions",
"parameters": {
"options": {
"hdr": "hdr",
"photoStitching": "ondevice"
}
}
}

Proposal:
Add stitching support for ONE R API.

Thanks!

offDelay sleepDelay on setOptions not working.

Hi,
The sleep and of delay options not working on Insta360 X3 not working.
firmwareVersion: "v1.0.69"

When I send:
{ "name":"camera.setOptions", "parameters": { "options": { "offDelay": 300, "sleepDelay": 20 } } }

I get :
{ "name": "camera.setOptions", "state": "done" }

But actually settings are not updated on the camera, the same result when I send 65535 as a value.
To get options
{ "name":"camera.getOptions", "parameters": { "optionNames": [ "offDelay", "sleepDelay", "offDelaySupport", "sleepDelaySupport" ] } }

Response:
{ "name": "camera.getOptions", "state": "done", "results": { "options": { "offDelay": 65535, "sleepDelay": 65535, "offDelaySupport": [ 300, 65535 ], "sleepDelaySupport": [ 20, 65535 ] } } }

But on the camera the value 65535 not working, camera still turns off.

Arduino implementation of Insta360 library?

Hi,

Before I attempt to make it myself: is there an existing Arduino implementation of the Insta360 camera control api?

What i'd like to do is use the arduino in my existing handlebar buttons on my motorcycle to stop/start the Insta360 x3 recording.

thx!

Setup 360/Single lens, resolution etc through API.

We're developing an app to be able to view 360videos in VR. The problem is that the app always remembers the last used setup and we can't change it using the API.
Are there any SDK commands to switch between 360/Single lens modes, and the resolution?

OSC Commands freeze the camera - One X2

The following commands cause the entire camera to freeze (it stops receiving commands and the screen does not respond to touches)

  • camera.delete --> completely freezes the camera
  • (not a command) /osc/info --> freezes the OSC api, and it stops accepting HTTP requests.

I'm using the Insta360 One X2, firmware version v1.0.41

Unable to connect to server under 192.168.42.1

On both android and macos my Insta is not responding under address referenced in documentation. Same call on ip of Theta V is working on both platforms. I would be glad for any tips
Zrzut ekranu 2023-05-30 o 11 01 58

How to get Insta360 One X 2 WiFi address and password?

This documentation assumes a user is already connected to the camera's WiFi. However, the X2 does not let you obtain the camera's IP nor it's password via the built-in screen.

Is there any documentation on how to obtain the above info via blue tooth? Or are there any pre-defined hardcoded values for each camera that can be used?

Thanks.

OSC for capturing timelapse video not working for Insta360 One X2

Using the following CURL commands:

curl http://192.168.42.1/osc/info

returns:

{"manufacturer":"Arashi Vision",
"model":"Insta360 ONE X2",
"serialNumber":"IXSE28CN8SS4QS",
"firmwareVersion":"v1.0.62",
"supportUrl":"https://www.insta360.com/product/insta360-onex2/",
"endpoints":{"httpPort":80,"httpUpdatesPort":10080},
"gps":true,"gyro":true,"uptime":56,
"api":["/osc/info","/osc/state","/osc/checkForUpdates","/osc/commands/execute","/osc/commands/status"],
"apiLevel":[2],"_sensorModuleType":"Dual_Fisheye","_vendorVersion":"v1.1_build1"}%
curl -X POST 'http://192.168.42.1/osc/state' \
    -H "Content-Type:application/json;charset=utf-8" \
    -H "Accept:application/json" \
    -H "X-XSRF-Protected:1" \
    -d ""
    
returns:
    
{"fingerprint":"FPR_145057",
"state":{"_cardState":"pass","batteryLevel":0.230000,
"storageUri":"http://192.168.42.1:80/DCIM/Camera01/"}}% 
curl -X POST 'http://192.168.42.1/osc/commands/execute' \
    -H "Content-Type:application/json;charset=utf-8" \
    -H "Accept:application/json" \
    -H "X-XSRF-Protected:1" \
    -d '{"name": "camera.setOptions", "parameters": {"options": {"captureMode": "video", "_videoType": "timelapse", "_timelapseInterval": 1000}}}'
    
returns:

{"name":"camera.setOptions","state":"done"}% 

and the camera was put into timelapse mode, however after

curl -X POST 'http://192.168.42.1/osc/commands/execute' \
    -H "Content-Type:application/json;charset=utf-8" \
    -H "Accept:application/json" \
    -H "X-XSRF-Protected:1" \
    -d '{"name": "camera.startCapture"}'

return:

{"name":"camera.startCapture","state":"done"}%   

expected the camera to start recording and return filenames, but subsequent calls to camera.startCapture returns:

{"name":"camera.startCapture","state":"error","error":{"code":"disabledCommand","message":"Currently camera is not in video mode"}}%    

camera.startCapture is working in video mode without the timelapse commands

curl -X POST 'http://192.168.42.1/osc/commands/execute' \
    -H "Content-Type:application/json;charset=utf-8" \
    -H "Accept:application/json" \
    -H "X-XSRF-Protected:1" \
    -d '{"name": "camera.setOptions", "parameters": {"options": {"captureMode": "video"}}}'

and 

curl -X POST 'http://192.168.42.1/osc/commands/execute' \
    -H "Content-Type:application/json;charset=utf-8" \
    -H "Accept:application/json" \
    -H "X-XSRF-Protected:1" \
    -d '{"name": "camera.startCapture"}'

camera starts recording

How can I get a panorama when HDR is off ?

{
"name": "camera.setOptions",
"parameters": {
"options": {
"captureMode":"image",
"hdr": "off",
"photoStitching": "ondevice"
}
}
}

When I set this options, I get the fisheye image instead of the panorama.
How can I get a panorama when HDR is off.
insta360 one x2

Setting FileFormat with SetOptions doesn't work

### Description:

I have tried now in several different ways to set the file format of a standard video recording using OSC without success. I have tried both the Insta360 One RS 360 edition and the Insta360 One X2, both with the latest available firmware versions. I believe this to be either a bug or maybe there is something I am missing.

Please clarify if I am setting the Resolution for the recording correctly or confirm that it is a bug with the cameras?

Steps to reproduce:

Note: Every command has a 1 sec delay between them.

  1. First execute Get command osc/info and then /osc/state
  2. Execute setOptions with following options
    { "name": "camera.setOptions", "parameters": { "options": { "captureMode":"video", } } }
  3. Execute setOptions with following options
    { "name": "camera.setOptions", "parameters": { "options": { "sleepDelay": 65535, "exposureCompensation": 0.0, "exposureProgram": 1, "iso": 0, "whiteBalance": "auto", "offDelay": 65535, } } }
  4. Execute setOptions with following options, note for the One X2 I set the frameRate to 30 and for the One RS 360 24 frameRate. The SetOptions command will return 200 ok status code.
    { "name": "camera.setOptions", "parameters": { "options": { "fileFormat": { "type": "mp4", "width": 3840, "height": 1920, "frameRate": 24, }, } } }
  5. Execute getOptions with following options
    { "name":"camera.getOptions", "parameters": { "optionNames": [ "fileFormat", ] } }
    Get Result, which does not seem to indicate it applied the fileformat:
    { "name": "camera.getOptions", "state": "done", "results": { "options": { "fileFormat": { "type": "insv", "width": 2880, "height": 2880, "framerate": 30 }, } } }
  6. Execute command startCapture, and record a video for a couple of seconds
  7. Execute command stopCapture
  8. Execute command listFiles with following parameters
    { "name": "camera.listFiles", "parameters": { "options": { "fileType": "video", "entryCount": 3, "maxThumbSize": 0 } } }
  9. Look in List files result and see result has the wrong width and height
    { "name": "camera.listFiles", "state": "done", "results": { "entries": [{ "name": "LRV_20230929_161351_11_044.mp4", "fileUrl": "http://192.168.42.1:80/DCIM/Camera01/LRV_20230929_161351_11_044.mp4", "_localFileUrl": "/DCIM/Camera01/LRV_20230929_161351_11_044.mp4", "size": 21423906, "width": 6080, "height": 3040, "dateTimeZone": "", "_dateTime": "2023:09:29 16:13:50+02:00", "thumbnail": "", "isProcessed": true, "previewUrl": "" }, { "name": "VID_20230929_161351_10_044.mp4", "fileUrl": "http://192.168.42.1:80/DCIM/Camera01/VID_20230929_161351_10_044.mp4", "_localFileUrl": "/DCIM/Camera01/VID_20230929_161351_10_044.mp4", "size": 146800640, "width": 6080, "height": 3040, "dateTimeZone": "", "_dateTime": "2023:09:29 16:13:50+02:00", "thumbnail": "", "isProcessed": true, "previewUrl": "" }, { "name": "VID_20230929_161351_00_044.mp4", "fileUrl": "http://192.168.42.1:80/DCIM/Camera01/VID_20230929_161351_00_044.mp4", "_localFileUrl": "/DCIM/Camera01/VID_20230929_161351_00_044.mp4", "size": 148563858, "width": 6080, "height": 3040, "dateTimeZone": "", "_dateTime": "2023:09:29 16:13:50+02:00", "thumbnail": "", "isProcessed": true, "previewUrl": "" }], "totalEntries": 3 } }
  10. If you then look on the simcard, and right click the video and view the mp4 properties. Then the video has width and height of 2880 and 30 fps. Which is not what I set it to in the setOptions Command.

Expected behavior:

Setting the fileFormat through the setOptions should set the video recording resolution and FPS.

Actual behavior:

It doesn't seem to apply the fileFormat options I set. Even though I got a '200 ok' status back from my setOptions call.

It also seems that the camera is recording the selected Resolution and FPS chosen on the camera. So if I manually switch the resolution on the camera, the recorded video will output that.
However, with the One RS 360, if I manually on the camera choose any other resolution than 5,7k the camera will crash when I execute the 'stopCapture' command.

Additional information:

  • Device: Insta360 One RS 360 edition
  • Firmware: v2.0.8
  • Device: Insta360 One X2
  • Firmware: v1.0.62

Insta360 X3 connection unstable in iOS devices

Hi! We've been using the Insta360 OSC for a while to connect our app with the 360 cameras.
We are willing to integrate the 360 X3 camera to our app.
It seems to be working fine for android and some older iOS devices, but we are facing some serious connection issues between the camera and an iPhone 13 Pro with iOS 16, the camera seems to disconnect from the phone unexpectedly.
Could this have anything to do on how newest iOS devices handle the connection with other networks?
Any clues?

Thank you in advance.

How to get insp type image?

Hi.
I'm making a code to take an image on insta360 rs 1 inch.

I changing to OSC mode because MediaSDK is ARM platform not supported.
However, only jpg is created in camera.takePicture command.

Please advise what option or command to use to get insp.

step 1. set insp file format

curl -X POST -H "Content-Type: application/json" -d '{
"name": "camera.setOptions",
"parameters": {
"options": {
"fileFormat": "insp"
}
}
}' http://192.168.42.1/osc/commands/execute

response is OK.
{"name":"camera.setOptions","state":"done"}

step2 . check format option.

curl -X POST -H "Content-Type: application/json" -d '{
"name":"camera.getOptions",
"parameters": {
"optionNames": [
"fileFormat"
]
}
}' http://192.168.42.1/osc/commands/execute

The fileFormat option is fixed to jpg.
{"name":"camera.getOptions","state":"done","results":{"options":{"fileFormat":{"type":"jpg","width":6080,"height":3040}}}}

How can I save as insp?

thanks.

I have Insta 360 One R cams. I want to enhance basic functionality.

I'm a newbie! I have Insta 360 One R cams. I want to enhance basic functionality. I have SDK and OSC from Insta and the Android api. The camera is controlled by an app on my phone, from Insta. I want to use the SDK to develop the enhancements. How do I start? Any help much appreciated

set images to 'raw'

Is it possible to set the camera to shoot 'raw' or 'jpg + raw' with an option? I've been unsuccessful so far using 'fileFormat'. Query to 'fileFormatSupport' seems not supported

PhotoStitching for Insta One X

Hi,

When I can calling getOptions API.

The photoStitchingSupport will only return ["none"]. Is this by design or on-device photo stitching for insta One X will be exposed in the future?

Thanks

OSC mode not working on Insta360 RS 1 inch

tested using CURL as below.

curl -X POST
-H "Content-Type: application/json;charset=utf-8"
-H "Accept: application/json"
-H "Content-Length: 84"
-H "X-XSRF-Protected: 1"
-d '{
"name": "camera.setOptions",
"parameters": {
"options": {
"captureMode":"video"
}
}
}'
http://192.168.42.1/osc/commands/execute

Only the info command works.

curl -X GET http://192.168.42.1/osc/info
{"manufacturer":"Arashi Vision","model":"Insta360 OneRS","serialNumber":"IRBEN2208DN7QS","firmwareVersion":"v2.0.8","supportUrl":"https://www.insta360.com/product/insta360-oners/","endpoints":{"httpPort":80,"httpUpdatesPort":10080},"gps":true,"gyro":true,"uptime":72,"api":["/osc/info","/osc/state","/osc/checkForUpdates","/osc/commands/execute","/osc/commands/status"],"apiLevel":[2],"_sensorModuleType":"Leica_Fisheye","_vendorVersion":"v1.1_build1"}

How does this work?

OSC Take_picture API for One X2

Device: Insta OneX2
Firmware: 1.0.43 Build 1
Behaviour:

By calling take_picture command, OneX2 camera will generate 2 files a .dng file (~40MB) and a .jpg file(~5MB).

The option we set is as below

    String options = "\"captureMode\":\"image\"," +
      "\"hdr\": \"off\"," +
      "\"photoStitching\": \"none\"";

Is there any way to disable the .dng RAW file generation?

Thanks

Insta360_OSC for Insta360 GO

Is Insta360 GO 2 supported Insta360 OSC/Google OSC? Can I use the Insta360 OSC on the Insta360 GO 2 camera? Anyone tried before?

Thumbnail support

Business requirement we have is to be able to pull down scaled down thumbnail for the image that camera holds, so that we can render previews for multiple images quickly without pulling the whole image down.

Since ondevice stitching is available now on Insta One X and Insta One X2 and we can assume image is ready and stored on the device, can we add the support for thumbnails?

Proposal is: when client is trying to pull URL which represents an image add optional ?thumb=true parameter to the query which triggers scaling down the image for some specific size, like 1024x512. Or add specific ?width=... parameter and calculate height according to aspect ratio on the camera before scaling it down.

VideoCapture corrupted output files

When i start the recording though OSC and end it though OSC, the camera save a .insv file + a .mp4 (instead of 2 .insv). This .MP4 file correspond to the other lense. Of course, i can't upload it to insta360 studio.

When i start the recording though OSC and end it though the shutter button, the camera save both .insv like expected.
So it seems that there is something wrong with the videoCapture function.
Have you any clue ?

Thanks,

Insta One X2 does not support captureStatus option

Tested on both 1.0.9 and 1.0.25 firmware.

captureStatusSupport reports correct values:

{
  "name": "camera.getOptions",
  "parameters": {
    "optionNames": [
      "captureStatusSupport"
    ]
  }
}
{
  "name": "camera.getOptions",
  "state": "done",
  "results": {
    "options": {
      "captureStatusSupport": [
        "idle",
        "shooting"
      ]
    }
  }
}

But captureStatus does not return anything, no matter whether camera is currently recording or not:

{
  "name": "camera.getOptions",
  "parameters": {
    "optionNames": [
      "captureStatus"
    ]
  }
}
{
  "name": "camera.getOptions",
  "state": "done",
  "results": {
    "options": {}
  }
}

Exposure delay is not available

SDK v 1.3.10. Is it possible to provide exposure delay before taking a shot? We need arbitrary delay to be added after camera acknowledged command to take a picture and before actually taking the picture.

ONE x2 freeze if deleting photos just finishing taking

Situation: Use the OSC api to take a photo successfully, Then try to remove it using the api, The camera itself can still operate but the OSC api is frozen. The Removal api can be executed smoothly if the camera is restarted.

Pano auto-straightening

Demo app for SDK v1.3.10 is able to straighten pano after capture from Insta One X (enterprise firmware v1.18.48), but this is not working for OSC HDR capture. Resulting pano looks very bad. Is it possible to handle auto-straightening via OSC?

Force 360 capture with OSC API?

When the camera is in selfie mode and you request an image with the OSC API, it returns a single fish-eye image. Is it possible to force a dual fish eye image?

When in panorama mode, the camera correctly switches to 360 automatically.

Add support for EXIF GPS data in the takePicture method

Model: ONE R
Firmware: v1.2.16

Use-case:
We would like to write image EXIF data coming from external accurate GPS location (cm level accuracy). The camera API could have a support to write EXIF data with given GPS coordinates delivered via optional fields in "camera.takePicture" API method.

Improvement proposal:
{
"name":"camera.takePicture",
"coordinates":
{
"GPSAltitude": "zzz",
"GPSLatitude": "xxx",
"GPSLongitude": "yyy",
"GPSLatitudeRef": "N"
"GPSLongitudeRef": "E"
}

}

Thanks

Image stitching doesn't always work

I'm shooting a tour, the parameters on the camera do not change during the shooting of the tour. Sometimes stitching does not occur and the image is saved as DualFisheye without stitching. I checked all the parameters, but did not find a pattern why this happens. Has anyone encountered something similar?

Below are all the requests

Camera: Insta360 X3
Firmware 1.0.83

Request: {"parameters":{"optionNames":["hdrSupport","photoStitchingSupport"]},"name":"camera.getOptions"}
Response: {"name":"camera.getOptions","state":"done","results":{"options":{"hdrSupport":["off","hdr"],"photoStitchingSupport":["none","ondevice"]}}}

Request: {"name":"camera.setOptions","parameters":{"options":{"hdr":"hdr","photoStitching":"ondevice","captureMode":"image"}}}
Response: {"name":"camera.setOptions","state":"done"}

Request: {"name":"camera.takePicture"}
Response: {"id":"010628","state":"inProgress","name":"camera.takePicture","progress":{"completion":0}}

Request: {"id":"010628"}
Response: {"id":"010628","state":"inProgress","name":"camera.takePicture","progress":{"completion":0.5}}

Request: {"id":"010628"}
Response: {"id":"010628","state":"inProgress","name":"camera.takePicture","progress":{"completion":0.5}}

Request: {"id":"010628"}
Response: {"name":"camera.takePicture","state":"done","results":{"_localFileGroup":["/DCIM/Camera01/IMG_20231127_160425_00_069.jpg"],"fileUrl":"http://192.168.42.1:80/DCIM/Camera01/IMG_20231127_160425_00_069.jpg","_fileGroup":["http://192.168.42.1:80/DCIM/Camera01/IMG_20231127_160425_00_069.jpg"]}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.