Blog Post

Microsoft Teams Blog
2 MIN READ

Introducing the broadcast development kit for Microsoft Teams

alinne's avatar
alinne
Icon for Microsoft rankMicrosoft
Jul 21, 2021

Microsoft Teams has built and delivered solutions to enrich virtual experience across the spectrum of communication needs, from 1:1 meetings and calls, to webinars and broadcasts. Last year we introduced NDI-Out for Teams, enabling production companies around the world to harness the power of Teams—bringing guests sitting at home directly into nationwide broadcasts like the NBA, NFL, the Voice, and more.

 

We know that every production is unique with its own distinct workflows and requirements, from storage to processing to streaming. As media production workflows increasingly move to the cloud, broadcasters are reaping the benefits of cloud technology, from collaborative production to agile content delivery and global distribution.

 

Today, we are announcing the introduction of the broadcast development kit for Teams. It’s an open-source project that enables you to flexibly integrate Teams directly into your cloud production workflows running on Microsoft Azure.

1 - Sample BDK Meeting Extension

 

The broadcast development kit gives you the tools to extract the audio and video content of a Teams meeting or call directly from the Microsoft Cloud and send it to your online cloud studio. No roundtrip to your desktop client is needed, so you can experience the superior streaming quality and minimal latency that comes from a cloud-native approach. From there, you can stream out to your chosen endpoint with Real-Time Messaging Protocol (RTMP)—or with Secure Reliable Transport (SRT) for sub-second latency streaming over the Internet.

 

In addition, you can use the broadcast development kit to send SRT and RTMP feeds from your online cloud studio directly into your Teams meeting, so you can share your live stream with your attendees on Teams.

2 - Sample BDK Web UI

 

Features of the broadcast development kit

The broadcast development kit includes open-source code for you to start connecting your Teams calls and meetings directly into your online studio hosted on Microsoft Azure:

  • Audio/video in and out via SRT
  • Audio/video in and out via RTMP
  • Sample web portal to manage the feeds
  • Sample meeting extension to manage the feeds as a line-of-business app

How it works

The broadcast development kit requires an Azure virtual machine (VM). The VM will pull the audio and video feeds your Teams meetings directly from the Microsoft Cloud. It then converts those audio and video streams into a streaming feed that can be sent out to your chosen endpoint via SRT or RTMP.

 

The VM can also ingest any RTMP or SRT feed and push it into your Teams meeting. Content sent to the meeting will be powered by a bot.

3 - Signal Flow for BDK

 

Start powering your cloud studio with Teams today

We’re excited to make this feature set available via an open-source project on GitHub, available now. You can learn more at the following GitHub projects, complete with robust documentation here:

To learn more about delivering virtual events in Microsoft Teams, visit our website. Bookmark the Microsoft Teams blog to keep up with our innovations on Microsoft Teams.

Updated Jul 21, 2021
Version 1.0
  • Well, if I understood it correctly, this kit accesses the individual feeds at the (Teams Cloud) CORE instead of grabbing it at the edge (as an participant). So it is not limited by whatever the client is limited to like max. number of individual video feeds or so.

    Drinking directly from the firehose simply opens up much more possibilities IF you are smart enough to code it.

  • SteveUlrichTE's avatar
    SteveUlrichTE
    Brass Contributor

    Before we go down a rabbit hole with this, I'm wondering about the web portal that manages the feeds. Is it user friendly, or do I need to learn a bunch of IT jargon to figure it out?

     

    Currently we use 2 computers to start NDI feeds, that can be picked up by our Wirecast or OBS software on a third machine. We can then create a nice grid of speakers, and push that out via NDI as a program feed. Would this dev kit make it easier for us?

  • Andrew King's avatar
    Andrew King
    Copper Contributor

    In layman's terms, with this solution, assuming I am using OBS studio... is my understanding correct.

     

    Essentially we setup a VM in Azure, that will have OBS studio installed (or vMIx, or some other production software).

    When a teams meeting starts, I assume the bot joins the call as a participant, and as noted converts the different streams into SRT streams.  I assume this a parallel to NDI (same concept)... that each stream in the teams meeting is then exposed.

    The bot allows the SRT streams from that teams call to be captured by your VM in Azure. 

    In a use case for training with a host (in LA) and two remote experts (in Pittsburgh and Orlando), all three might join a teams call with their video on, and each would have a SRT video stream that is captured and sent to the production software.

    The production software would be set to ingest those three streams as sources. With OBS, it looks like the software wants a URL to ingest a SRT stream.

     

     

     

     

    A fourth participant, the producer might create different layouts from the VPC in Azure, where all three experts are together, or separate layouts, and output the composted signal from the production software (OBS or other), via the BOT to the teams meeting (as a participant).

    The bot can be spotlighted, so that is what everyone else who joins the same teams meeting sees.

     

    Through the call, the remote producer could be changing the scenes as the different experts and moderators and talking/presenting.

     

    The remote callers/presenters audio/video feeds are all going up to the Azure cloud, and the solution for the remote producer would be low latency because it is being done on a central VPC, and fed back into teams at the source, and broadcast back down to the remote endpoints (teams connections).

     

    The remote producer would have their production studio running on the remote VPC (in Azure), regardless of where the producer was located, the production is happening at the best possible location in the Azure cloud.

     

    Am I understanding this correctly?

  • It's correct you can't pull more than 9 from a single computer in a single meeting with NDI. This should though change how many total streams you can access in a given meeting. If you need to bring more people on screen at once, you might want to look into using Together Mode or Large Gallery to get the single feed of all the participants in one meeting. Or yes, look into this kit to access those feeds. 

  • ricardocosta's avatar
    ricardocosta
    Copper Contributor

    Hello,

     

    First of all, thank you so much for this news!

     

    I wonder if it is possible, with this technology, to get more than 9 NDI output at the same meeting?

     

    I normally use NDI Output, in live events, but currently I can only get up to 9 ndi sources at the same time!

    With this solution what is the maximum limit of ndi sources?

     

    Thanks in advance.