Complex streaming scenarios with OBS, NDI and Teams

Hi All,

in this article I’ll try to show you how to go further the basic OBS Studio, NDI and Teams integration.
In this more complex example scenario we have:

Input:
a SmartPhone camera with OBS.Ninja via WiFi
multiple NDI streams from a Teams meeting
a Professional PTZ Camera with NDI support

Output:
Teams Live Event
local disk recording with up to 6 indipendent audio tracks
multiple concurrent streams with restream.io

with OBS Studio in the middle to manage and mix everything.

Base prerequisites

A clean OBS Studio
  • A very good PC with at least two monitor.
    Use cable connection instead of WiFi when possible.
  • Latest version of OBS Studio and NDI Tools installed.
    Please refer to this previous article on how to do that.
  • Microsoft Teams NDI Support enabled.
    Please refer to this previous article on how to do that.

Input

Mobile Camera with OBS.ninja

OBS.Ninja is an incredible free software that allow video from your smartphone (Android and iOS) and computer directly into your OBS video stream.
The source (smartphone or PC) could be local or remote, if local the A/V stream will be direct, peer-to-peer between source and destination with very low latency and no traffic over Internet.

To use OBS.Ninja you just need to visit the website at https://obs.ninja (I love it just for the .ninja TLD!) there are a lot of interesting features, we’ll see just the basic streaming from a smartphone to OBS.

In this example I’ll use the Electron-Capture Portable App to receive the stream, althought it’s not strictly necessary, I’ve found it more easy to use compared to a standard browser. Download and run it on your PC.

On your mobile, open Safari on iOS or Chrome on Android and go to https://obs.ninja
Click on “Add your Camera to OBS”

Allow OBS.Ninja to access your Mic and Camera

Choose Front or Rear Camera then click START

You will get a Case Sensitive Stream Code (srMNPJr in this example).
We will need it later

Come back to OBS.Ninja Electron-Capture Portable App and enter the Stream Code from previous step.
You will start to see the video stream from your mobile

The last step is to add the OBS.Ninja App to OBS, to do that open OBS, click on the + (1) or RMB on Source free and choose Windows Capture

In Window select [OBSN.exe]: OBSN 1 as source.
Note that you can enable or disable the cursor capture to adjust to your needs.

That’s all, now you have the mobile a/v stream on your OBS.

Multiple NDI streams from a Teams meeting

Maybe not everyone know that enabling NDI Broadcast (refer to this previous article on how to do it) on a Teams Meeting allow you to see every participant separate video stream, plus the Active Speaker stream and the desktop sharing stream.

Unfortunately, the audio stream is only one, pre-mixed by Teams, that means that you cannot isolate the audio of a specific speaker, only the video.

To check the list of NDI streams, open NDI Monitor (on the same PC or in a different PC on the same network)

If you add an NDI Source to OBS, you will get the same list.

Professional PTZ Camera with NDI support

Many professional PTZ cameras support NDI natively, a full list is available here.
This allow you to easily receive high quality streams directly via LAN, without the hassle of video cables and the cost of expensive video matrix.

In this article I use a Panasonic AW-HN38HW, a great camera with an impressive quality, available with HDMI or SDI connector, along with USB and a native NDI license.

To enable the NDI stream, go to Setup -> Basic -> Priority mode -> set it to NDI|HX

After few seconds, you will see the stream into NDI Monitor with a very useful PTZ camera control panel.

As always, you will see the same stream into OBS Studio (without the PTZ control panel)

Output

In previous steps I’ve show you how to add mobile camera, Teams participants and PTZ professional cameras to OBS, like the example below where I’m presenting our Enterprise Voice solution with Teams to Bruce Wayne, a Martian and Sam Fisher 🙂
Now we will move to the Output from OBS, like recording, Teams Live Event and restream.io service to multiply your stream to many different online streaming services.

Teams Live Event

You can send the OBS Output (audio and video) to Teams via NDI (more detailed information in this article)

  1. On the Producer PC run OBS Studio
  2. Menu bar -> Tools -> NDI Output Settings -> flag Main Output

3. Run NDI Virtual Input on the PC with Teams.
Right click on it -> you will see the list of PCs and devices that are streaming an NDI source.
You should see a line with “name of your PC” > OBS
Check it if it’s not checked yet.

4. In Teams -> Device Settings -> select NewTek NDI as Mic and Camera

Local disk recording with up to 6 indipendent audio tracks

OBS Studio allow you to stream AND RECORD your schene at the same time, very useful if you want a backup from other way of recording the event (like the one embedded with Teams and Teams Live Events).

It’s also very useful to record the streaming with OBS because you can record up to 6 indipendent audio tracks, so you can record the mixed audio in the first track and choose to record up to 5 sources to dedicated audio tracks. This could be very useful if you need to edit the audio later.

It’s important to setup the recording before you start the event, because you cannot make any changes during the streaming. Remember to disable the NDI Output if you want to change Recording settings.

Open OBS Settings -> Advanced -> Recording and set Automatically remux to mp4 (record as mkv)

Settings -> Output -> Set Output Mode to Advanced
I suggest to use these settings.
Select the number of Audio Tracks to record

To manage the Audio Tracks matrix, go to Edit -> Advanced Audio Properties

Here you can choose which source will be recorded in which Track

When you have done with Recording settings, remember to re-enable te NDI Output

Multiple concurrent streams with restream.io

Restream.io is a great online service that allow your stream to be multiplied up to 30 destinations for free.

Instead of sending only the OBS Output via NDI to Teams, you will be able to send the same stream also to Restream.io and from here to other destinations, like YouTube or LinkedIn

The dashboard is very easy to use: add Channels on the left area, then click on RTMP Settings to get the RTMP URL and Stream key you will need later in OBS

Open OBS -> Settings -> Stream to enter the value from Restream.io.
Done!

This was a quite long article to write, as always I hope this could be helpful to some of you.
Best. Luca

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blog at WordPress.com.

Up ↑

<span>%d</span> bloggers like this: