insta360_osc's People
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!
camera.getLivePreview is not supported
SDK v1.3.10 is not supporting camera.getLivePreview
command. Can this be added?
Insta360 X3 API really unstable API
Requests get randomly stuck all the time for more than 30 seconds. They either do not return anything or return empty responses.
error in url description
should be /osc/commands/status
instead of
/osc/cammands/status
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
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.
Does it support video stitching?
Is it only a picture stitching function? What about videos?
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.
- First execute Get command osc/info and then /osc/state
- Execute setOptions with following options
{ "name": "camera.setOptions", "parameters": { "options": { "captureMode":"video", } } }
- Execute setOptions with following options
{ "name": "camera.setOptions", "parameters": { "options": { "sleepDelay": 65535, "exposureCompensation": 0.0, "exposureProgram": 1, "iso": 0, "whiteBalance": "auto", "offDelay": 65535, } } }
- 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, }, } } }
- 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 }, } } }
- Execute command startCapture, and record a video for a couple of seconds
- Execute command stopCapture
- Execute command listFiles with following parameters
{ "name": "camera.listFiles", "parameters": { "options": { "fileType": "video", "entryCount": 3, "maxThumbSize": 0 } } }
- 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 } }
- 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.
command `camera.getOptions` for `fileFormatSupport` returns 400
Device: Insta360 OneX2
Firmware: v1.0.35_build1
{
"name":"camera.getOptions",
"parameters": {
"optionNames": [
"fileFormatSupport"
]
}
}
POST request to osc/commands/execute
returns response code 400. Other optionNames
like isoSupport
worked fine.
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.
is the OSC compatible with the insta360 Sphere Drone ?
Hello, I was wondering if the OSC protocol was compatible with all INSTA360 cameras and particularly the Sphere camera
Thanks
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
Insta ONE X2 does not support ondevice stitching
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.