HomeHow to live stream on YouTube with Insta360 ONE X2

How to live stream on YouTube with Insta360 ONE X2

Stream Insta360 footage to YouTube via OBS

As much as I love Insta360 ONE X2 (review) it’s not perfect. The biggest disappointment wasn’t the camera hardware but weird software quirks that made my experience with 360 videos less fun. One of the biggest challenges that I had to solve in a pinch was learning how to Livestream on YouTube with Insta360 ONE X2. It’s harder than you think is.

More than one YouTube account?

The most obvious option would be to use the “Livestream” option in the Insta360 app right? There are issues with that. For some weird reasons, Insta360 will only work in the AP mode, so streaming using a wireless connection with your phone will cost your data plan dearly. The solution to this is to use a USB-C cable and hardwire the camera to your phone. This way, you can stream the data via a WiFi connection to your router instead.

Unfortunately, the link via USB-C cable can be temperamental, and for this to work, it required several attempts of plugging the cable in and powering the camera. The approach that works for me is to open the Insta360 app on the phone, turn on the Insta360 ONE X2 camera and then connect both of them with a cable. Just don’t forget to change the USB mode of the camera to Android. If you are on iPhone, you are out of luck.

Insta360 ONE X2 has a YouTube problem

At the time of writing, the Insta360 app had no support for Google accounts with more than one YouTube account linked to it. Even though YouTube allows you to set a default YouTube account for devices that do struggle with multiple accounts, the app ignores it and if you have more than one YouTube account associated with your email address – there is no way about it. I had reported this as a bug, but so far, there are no fixes to address this.

Error 10003

Another bug is an Error -10003 – something I came across on my Xiaomi Mi 11 (review) despite streaming from that phone earlier. Something I’m yet to fix, as even uninstalling the app didn’t work. I know this is a compatibility issue as RTMP works correctly from another phone. I sent a bug report, so if you come across this yourself, you are out of luck.

Insta360 ONE X2 and OBS

Thankfully, there is a workaround to the YouTube account drama. It’s not a simple one I’m afraid but if you are intending on streaming in 360, then you will have to use this workaround. One of the really cool features of Insta360 is the ability to stream to RTMP servers. I tried to use the raw YouTube RTMP data, but there is no way to authenticate the stream so you cannot do this directly. You can use this option to send the stream to OBS – the king of open-source streaming.

Raspberry PI or Windows 10 to the rescue

Raspberry Pi 4 8GB RAM

Do you remember the “not simple workaround” part? You will have to spin up your RTMP server yourself. You can do this either on a Windows computer or have a dedicated server hosted by Raspberry Pi 4. You could get away with a Raspberry Pi 3, but as these cost almost the same nowadays, an SBC with a Gigabit Ethernet would be best. It’s not a complex process, takes little CPU resources of your SBC.

I split the server part into 2 guides, one for Windows and one for Raspberry Pi – feel free to use either of them to set up the server.

nginx and Windows

Download nginx 1.7.11.3 Gryphon and unpack the folder. You will have to create a configuration file and save it in the conf directory as nginx.conf:

user nobody;
worker_processes 1; events { worker_connections 1024; } rtmp { server { listen 1935; chunk_size 4096;

            application live {
                    live on;
                    record off;
            }
    }
}

Then you can either start nginx.exe (it won’t show you any new windows) or create .bat files to start and stop the server at will.

start.bat

NGINX.exe

stop.bat

NGINX -S STOP

and save both files in the main folder (where the nginx.exe is located). You can use these to start/stop server at will.

nginx and Raspberry Pi

I will assume you are already set and connected to the Raspberry Pi board. If not, I have a guide that will help you out. I would advise you to use the Ethernet port rather than WiFi on the Raspberry Pi board as it’s faster.

Update repository and install:

sudo apt-get update
sudo apt-get install nginx libnginx-mod-rtmp -y

For nginx configuration open

sudo nano rtmp.conf

and add the configuration JSON to the end of the file

rtmp {
  server {
    listen 1935;
    chunk_size 4096;
    application live {
      live on;
      record off;
    }
  }
}

Save the file (Ctrl+X, Y, Enter) and then restart Nginx with:

include /etc/nginx/rtmp.conf;

Then exit the file (Ctrl+X, Y, Enter) and save the changes. You are all set. You can check the configuration with:

sudo nginx -t

and restart the server to apply the new settings:

sudo nginx -s reload

That’s it, you are all set. It’s time to configure OBS

Insta360 ONE X2 and OBS

Now that the server is running, we can set up Insta360 ONE X2 and OBS for it. OBS uses media source to display the network stream. It’s somewhat counterintuitive at first, but it works. In the input field provide the stream address and the path.

rtmp://<Raspberry_Pi IP or Hostname>/live/insta

You can get the Raspberry Pi IP using ifconfig command in the terminal or the internet properties for Windows machine. The path is a custom stream path that starts with /live. Each stream should have each own “key” which in this example is /insta, but you can make up your own.

To get the best bang for your money, use USB cable to connect to your Insta360 camera. This way, you can use WiFi from your phone to stream the footage to Raspberry Pi server. In the stream settings select the RTMP option and provide the URL of the server.

rtmp://<Raspberry_Pi IP or Hostname>/live/insta

Setting up YouTube with Insta360 ONE X2

We are not done, just yet. Create a Livestream in YouTube, enable the 360 option and in the Stream Key options, create a new stream. In the manual settings select 4K (13Mbps – 30Mbps) and save the stream data. Select this option from a dropdown menu and copy the stream key.

Use this stream key to authorise OBS to provide the video to your YouTube Livestream – you will find the option for this in OBS settings -> Stream. While you are there, select the Output tab and use the following values to increase the quality of the stream:

Streaming:

  • Encoder: nVidia NCVENC H.264 (if supported)
  • Rescale Output – YES (3840x 2160)
  • Rate Control CBR
  • Bitrate 20000 Kbps
  • Preset Quality
  • Profile High

Note that 360 streams are very bandwidth consuming. While at any given time a viewer is really watching a framed stream, the streamed resolution has to suffice for the entire 360 streams. At the moment the highest stream quality that Insta360 ONE X2 is able to provide is 1280p which doesn’t look that impressive when you open the stream on YouTube. For best 360 experience, pre-recorded content streamed at high quality is the best.

Battery considerations

In the USB-C mode, the phone will attempt to charge the camera, you can look into settings limiting this, or use Wireless charging to keep your phone topped up. My Livestream lasted about 1h20min before my battery went red. I could consider a powered hub, but it’s something I haven’t tested just yet.

Final Thoughts

Streaming to YouTube from Insta360 ONE X2 is a bit of a pain. The YouTube account management sucks and should be fixed as soon as possible. The 360 streams give the viewer a unique ability to look behind the camera and explore the environment around them freely. I will definitely share some 360 content in the feature especially on my 2nd YouTube channel, but when it comes to live streams I think we can all agree that the resolution beats the ability to pan around, after all, I can be only at one place at the time. What do you think? Let me know in this Reddit thread.

PayPal

Nothing says "Thank you" better than keeping my coffee jar topped up!

Patreon

Support me on Patreon and get an early access to tutorial files and videos.

image/svg+xml

Bitcoin (BTC)

Use this QR to keep me caffeinated with BTC: 1FwFqqh71mUTENcRe9q4s9AWFgoc8BA9ZU

Smart Ideas with

Automate your space in with these ecosystems and integrate it with other automation services

client-image
client-image
client-image
client-image
client-image
client-image
client-image
client-image
client-image

Learn NodeRED

NodeRED for beginners: 1. Why do you need a NodeRED server?

0
To server or not to server? That's a very silly question!

Best Automation Projects

Tuya SDK for beginners: Intro to Tuya Cloud API

0
Working with Tuya Cloud API. A guide to Cloud automation for beginners, get started with REST!

NEST your old thermostat under $5

0
Nest-ing up your older thermostat under $5

Sonoff Zigbee Bridge – review

0
Sonoff line up will soon include Sonoff Zigbee Bridge and more Zigbee sensors - here is the first look

Nora – Google Assistant in NodeRED

0
Integrate Google Assistant with NodeRED thanks to Nora - NodeRED home automation

DIY Smart Washing Machine – for about 15 bucks!

0
Learn how to add washing machine notifications to your Google Home on the cheap

Smart Home

I damaged the cheapest Smart Socket with power metering for you

0
Sonoff S60 has an exeptional price for a smart socket with a power meter - I decided to check it out and see how flashable it is

The end of Tasmota? Sonoff SwitchMan M5 Matter

0
These are one of the least expensive Matter devices to automate your lights. Will Sonoff SwitchMan M5 Matter put an end to Tasmota?

Meros TRV to the rescue?

0
I got my hands on another TRV - this time from Meross. I heard good things about the brand so I wanted to see if Meross TRV would be good to manage smart heating.

Aqara brings Thread sensors but…

0
Aqara brings new Thread sensors to their ecosystem. First sensors to support Matter this way are Aqara Motion and Light Sensor P2 and Aqara Contact Sensor P2

Multi-lights for your ceiling from Aqara

0
This is the biggest light I held in my hands so far. It's ZigBee and it comes from Aqara - meet Aqara Ceiling Light T1M