CosmoViewerNG for Windows and Insta360 cams

From Cosmostreamer Wiki
Jump to navigation Jump to search

Insta360 EVO and Insta360 X2 tested. Other models should also work, but they need to be tested and confirmed.

Insta360 EVO can be connected only with Wi-Fi. Insta360 X2 can be connected with Wi-Fi or with USB cable.

I don't use Insta360 official SDK, i disagree with license restrictions.

Insta360-cams.jpg

Video instruction



Connection to camera

Wi-Fi connection

Just connect your PC Wi-Fi to Insta360 camera Wi-Fi network. Default password for EVO is 12345678, default password for X2 is 88888888.
Note: be carefull! The password on these Insta360 cameras cannot be changed even in the official app, so any of your neighbors can access your camera and, possible, to your PC if it connected to camera Wi-Fi. Discussion on Reddit

USB connection
  1. Switch USB mode on Insta360 X2 to "Android" (Swipe from up to down on Insta360 X2 display, swipe from right to left, click gears icon, menu "General" -> "USB mode", choose "Android")
  2. Connect your Insta360 X2 to PC with a standard USB-C cable.
  3. In some cases also need to instal WinUSB driver, follow next steps
  4. Download Zadig application
  5. Run Zadig and open menu Settings -> List All Devices
    Zadig-insta360-1.png

  6. Choose "Insta360 ONE" in list and click "Install driver" or "Reinstall driver" button
    Zadig-insta360-2.png


Configuring CosmoViewerNG

  1. Download CosmoViewerNG for Windows
  2. Run CosmoViewerNG application on PC
  3. Click "Application settings" icon (3rd icon from bottom in left panel)
  4. Go to chapter "Cameras". Choose "Insta360" in list and click "Save"
    Cosmoviewerng-insta360-1.png

  5. One or more devices should be found in list (the same camera but on diffent network interfaces)
    Cosmoviewerng-insta360-2.png

  6. Click any device (better to use device with address "127.0.0.1") and you should see video if camera already connected. Settings available as "gears" icon in left panel
    Cosmoviewerng-insta360-4.png

  7. In settings change connection type (Wi-Fi or USB)
    Cosmoviewerng-insta360-5.png


Changing preview resolution

Click "Camera settings" icon, tab "Video output". Change resolution in list. Click on "Save" button is not needed

Cosmoviewerng-insta360-7.png


Real-time panorama stitching

NVidia graphics card ONLY (at current moment)

Most important feature - real-time stitching from two fisheyes into equirectangular format. It's strongly needed if you want to stream on Youtube. Unfortunately, Insta360 EVO and X2 does not support onboard stitching. Native Insta360 application can do stitching, but resolution is limited on 1280s. CosmoViewerNG can do stitching in 4K resolution (3840x1920) up to 60 FPS, but powerfull graphics card is needed for encoding stitched video in H264 codec. For example, my GTX 1650 SUPER is well fast for do 4K stitching on 30 FPS with a small latency, but in 60 FPS latency is big.

  1. Click "Camera settings" icon, tab "Stitching"
    Cosmoviewerng-insta360-6.png

  2. Check option "Enable two-fisheyes to equirectangular stitching"
  3. Other params is by default for Insta360 X2 camera, don't change it if you are not sure what you do
  4. "Resize output video" is usefull for Youtube streaming, to correct video resolution
  5. "HW acceleration" strongly recommended. At current moment only NVidia graphics cards are supported.
  6. Click "Save" and you should see video in equirectangular format
    Cosmoviewerng-insta360-8.jpg

Stitching details

I use Gstreamer glshader element to make stitching. GLSL shader from this repo https://github.com/izmhr/EquirectangularMapOnWebGL
Fragment shader file fisheye2eqrect.frag is placed in CosmoViewerNG installation directory, so you could change it if you want to do it better.
Stitching is not ideal yet, need to find better values. But it is already could be used.


RTMP live stream

For example, live stream on Youtube in 4K resolution (3840x2160).

  1. Configure Youtube live stream in Youtube Studio, create (or modify current) stream key with 4K resolution and bitrate 13-30 Mbit/s
  2. Connect Insta360 X2 or EVO to PC
  3. Run CosmoViewerNG and configure Insta360 camera connection params, as i described before
  4. Go to camera settings, tab "Stitching" and enable stitching. Use default params.
  5. Youtube don't like native video resolution with 2:1 aspect ratio, so turn on "Resize output video" option and choose resizing resolution option 3840x2160.
  6. Set output bitrate to 15000 (15 Mbit/s). You could use lower or greater value, 15000 is just for example.
  7. Enable "HW acceleration" option (only if you have Nvidia based graphics card)
    Cosmoviewerng-insta360-9.jpg

  8. In tab "Video output" set "Camera video stream format" to "3840x1920@30", disable "CosmoViewerNG app" option and enable "UDP stream", set Host 127.0.0.1 and Port 5000. Click "Save"
    Cosmoviewerng-insta360-10.jpg

  9. Now open Application settings (3rd icon from bottom in left panel), chapter "Restreaming", tab "RTMP". Fill "RTMP URL" field with RTMP url and key (rtmp://a.rtmp.youtube.com/live2/YOUR_KEY)
  10. Turn on option "Microphone enabled". Default audio capture device will be used as audio source
  11. Don't enable option "Video transcoding enabled" !
  12. Also you could enable option "Show debug" to see what's happens
    Cosmoviewerng-insta360-11.jpg

  13. Click "Save"
  14. Now you can turn on/off streaming by clicking checkbox "Enabled". Yes, not usefull, i'll add streaming panel on main screen, but later.



Hardware

Insta360 cams already supported in Cosmostreamer on Raspberry Pi and Nvidia Jetson. On Raspberry Pi stitching does not works, on Jetson - should work but not tested yet.

Back to CosmoViewerNG for Windows