How to use OBS Studio as a virtual webcam source in Teams and Live Event with NDI Tools

Hi All,

one of the most frequent questions about Teams Live Event is about how to use OBS Studio as an External Encoder in Public Live Event.

The official answer is: “it’s not possible to use an External Encoder” in Public Live Events, only in Private Live Event.

In this article we’ll see how it’s possible, with the help of NewTek NDI Free Tools, to inject the OBS Studio Output as a virtual webcam source into Microsoft Teams and Public Live Events, avoiding the “External Encoder” block.

Overview

With NDI Plug-In for OBS Studio is it possible to acquire any source from other PC (with NDI Tools installed and NDI Scan Converter running) like audio, desktop and video devices connect to that PC.
It’s also possible to acquire and use the video source from Professional PTZ Camera (like the Panasonic PTZ Camera Systems) directly via LAN.

NDI Plug-In for OBS Studio could send the OBS Output (Production and/or Preview) to other NDI devices.

With NDI Virtual Input on the same PC where OBS Studio is ruinning or on a different PC, you can acquire the OBS Output and inject it into Teams as a virtual webcam and use it in Teams Meeting and into Teams Live Event even the Public ones!

What we need:

  1. A PC with dual monitor as Producer
  2. Microsoft Teams with an Enteprise License for Live Event
  3. OBS Studio (https://obsproject.com/)
  4. NDI Plug-In for OBS Studio (https://github.com/Palakis/obs-ndi)
  5. NewTek NDI Tools (https://ndi.tv/tools/)
  6. Two or more webcam
  7. Optional: more PC with NDI Tools

Producer PC Setup

The Producer PC is where OBS Studio is running.
In a simple configuration on this PC will also run Microsoft Teams.
In a more complex scenario, OBS Studio and Teams could run on different PCs, both running NDI Tools.

  1. Download and install the latest version of OBS Studio

2. Download and install the latest version of NewTek NDI Tools

3. Download the latest version of NDI Plug-In for OBS Studio (.zip Version) from https://github.com/Palakis/obs-ndi/releases

4. Extract the .zip content into OBS Studio Setup folder and overwrite if asked.

5. Run OBS Studio, click on Tools in the menu bar, check if “NDI Output settings” option is present. If it’s non present, you have to check the steps behind.

How to use

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

3. Prepare your scene adding sources.
Note that with NDI Plug-In installed you will have a new NDI Source option.
You can use it to acquire remote source from othe PCs with NDI Tools running or othe NDI native devices

For more details on how to manage source and create your scene, read my previous article on OBS Setup

4. Open Microsoft Teams (on the same PC as OBS Studio or on a different, dedicated PC) and run NDI Virtual Input

5. You will find NDI Virtual Input running in the Systray.
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.

Test with Microsoft Teams

To check if everything is ok, launch a Meet Now in Teams and go to Device Settings to select the Camera source: NewTek NDI Video

As you can see in this example below the OBS Output is directly injected to Teams as a virtual camera

Tips: if you have to take audio from OBS too and not just the video, select NewTek NDI Audio as Microphone source

Test with a Public Live Event

In Teams Calendar, create a new Live Event

Set it as “Public”, the “An external app or device” will become unavailable, that’s normal because external encoders are not supported in Public Live Event, but we will use NDI Tools to stream OBS as a Virtual Camera, that’s why this solution works!

Join the Teams Live Event, check the virtual camera from OBS Studio, set it in the Preview then go live!

In conclusion, this article solve a very long issue with Public Live Events and External Encoders like OBS Studio, enjoy this new opportunity!

As always, I hope this could help some of you.
Best. Luca

25 thoughts on “How to use OBS Studio as a virtual webcam source in Teams and Live Event with NDI Tools

Add yours

  1. We’ve been able to do this forever. What we need is the ability to create ndi sources from teams so we don’t need to rely on screen capture. Skype already has this feature, and yet microsoft just can’t seem to get it going. This is incredibly frustrating considering the Rona is making this an essential tool.

    Like

  2. I tested both solutions :
    – NDI (both Audio & Video)
    – Virtual Cam (Video)
    and faced some audio and video lag with NDI (almost none with Virtual Cam) and sync issue between Audio & Video
    Any advice you can provide ?

    Like

    1. In May 2021, this issue still exists here, the audio from NDI virtual input lags behind the video, and on the same PC, the solution is to use the audio from the audio interface (which directly feeds into OBS).

      Like

  3. Hi Luca.
    I had follow your guide but I have an issue with cam.
    In Teams, when I select the NekTek NDI Video cam, I see the screen black.
    My webcam works fine, I think there’s something wrong.
    Any idea?
    Thank you for your help!

    Ciao.
    Andrea

    Like

  4. Hi Luca, what about Audio coming from OBS?
    How could we integrate:
    – gaming from a Graphic Capture card?
    – Skype call?
    – Team call?
    – other?

    Like

  5. Hi Luca, i have this issue: the meeting is in Teams Live Events. All the guests are inside that reunion. I take the NDI signal of each one and put it into OBS. I put graphics and stuff and then go back to the Teams Live Events reunion by the virtual cam in OBS. i see a horrific audio lag (delay) as the original audio is inside the Teams reunion (and obviously cannot mute them) and i don’t know how to fix it! 😕 Please help!

    Like

    1. Hi,
      in this case the solution is to use a separated Teams Meeting for the speakers, take the video, preprocess it in OBS and then inject it in a Teams Live Event, this will solve the audio sync issue, but raise the complexity of the event management.

      Like

  6. Hello, I have a Mac and a company account in Microsoft Teams, the administrator allowed NDI Tools. I would like to use the screen from OBS via NDI Camera (/ Video) for my meetings, but there is no other option then the internal webcamera in the camera part. (Even though NDI audio is an option in the microphone settings.) What can I do? Thanks a lot in advance!

    Like

    1. Hi Eszter,
      I’m sorry but your question is not very clear, please provide more details.
      Meanwhile I suggest to follow the article to correctly setup the environment.
      Best. Luca

      Like

  7. Hi Luca, thanks a lot for your article! Quick question, when I share OBS Virtual Cam, audio is not automatically connected. Besides the NDI tool, any thought on how to integrate audio with the use of OBS Virtual Cam’s in live meetings?

    Like

    1. Hi Josine, if you use OBS Virtual Cam (natively available sice OBS 26), you can send to Teams LE only video, not audio. To send also audio you have to use NDI Tools as explained in this article, you will be able to manage both audio and video.

      Like

  8. Hi Luca, One of the NDI Streams is for Active Speaker. If I select that as the source, would that only present the person talking (similar to joining a Teams meeting via a browser). We currently stream meetings via live events by sharing a browser joined to the meeting. Microsoft are making changes to the browser to make it more like the client so this wont be an option in a little while

    Liked by 1 person

    1. Hi Andy,
      Correct, the Active Speaker is the video feed of the speaking user, the name of the feed do not change so you can safely use it in OBS.

      Like

  9. Hi,
    my NDI Webcam Input doesn’t see OBS although in OBS settings I’ve got NDI Output settings set to main output (obs). I don’t know how to fix it. Do you have any ideas?
    Regards!

    Like

    1. Hi Mateusz,
      In this case it could be useful to use the NDI Monitor. This app will allow you to see every NDI stream in your PC or network, if you see the stream from OBS then the issue is on the NDI Virtual Input, otherwise it’s on OBS. Let me know. Best. Luca

      Like

      1. Hi Luca,

        thank you very much for your answer. I’ve just used NDI Studio Monitor but the result it’s quite similar to NDI Webcam Input. There’s no OBS, only Remote Connection 1. Regards.

        Like

  10. So if you suggest the issue is on the OBS side, do you know how to fix it in OBS? It will be great. Regards.

    Like

  11. Is it possible to have use this method to show the webcam feeds from remote multiple speakers all at once (ie. gallery view) in a Teams Live Event? I understand that Teams Live Event can only support a single webcam feed from any one speaker at a time and we would like to show two or more simultaneously during a Q&A.

    Like

Leave a comment

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

Create a free website or blog at WordPress.com.

Up ↑