About a week ago, I came across the blog post Today I Learnt: About Microsoft Teams Live Events. It runs over the basics of Microsoft Teams Live Events and how to run them.

I use Microsoft Teams at work, but I totally didn't know that it had a live-streaming platform built in. I wanted to play around with it and take it for a spin, but I'm not exactly running company-wide virtual conferences, so I settled for the next best thing: Pokémon. Could I use Teams to stream Pokemon?

I have a Nintendo Switch, and a while ago I picked up an Elgato Game Capture HD60 S on sale from EB Games, which can be used to pipe the Switch into a computer. Elgato have some neat software to deal with this, imaginatively called Elgato Game Cature HD.

So, let's try this. The first thing I need to do is, in Microsoft Teams, create a live event. To do this, we go to the Calendar tab, then select New Meeting > Live Event.

Scheduling a Live Event in Microsoft Teams

Next, it will ask us for settings for a general calendar event: name, location, date and time, summary, and who to invite. Most of these we can leave blank, but the date and time is kind of important:

Setting up a new Live Event in Microsoft Teams

Once we click on Next, Teams will ask us for settings specific to the Live Event - who can see it, and what type of event. To start, I'm just going to say that only invited people can view this, and then not invite anybody. I don't want to accidentally broadcast Pokémon to the whole company...

Selecting Live Event permissions in Microsoft Teams

Regarding event type, Teams has two kinds at the moment - one where Teams captures and mixes all of the audio and video, and one where it's done externally. For this experiment, we want to do it externally:

Selecting external production for my Pokémon Live Event

Once I'm done creating the event, I can then join it, and Teams will ask me to set it up. Here is where it gives us the most important thing we need - an RTMP streaming URL.

Setting up my new Live Event

The important value is on the lower-right, the Server ingest URL. Now, if I go back to Game Capture HD, I can add a new Live Streaming account for RTMP:

Once I click on rtmp://, I get a prompt for more information. Here I can give my account any name, I need to enter the URL from Teams, and I also need to enter a Stream Key, which acts as a password. Even though the Teams documentation says that you don't need one, it gives a HTTP 500 error without it. I just entered stream as a dummy password.

With that configured, I just clicked the Stream button, and after a few seconds, my game shows up in Teams' preview:

Technically this is now going from my computer, into the cloud, and then back to my computer. I can also see the producer view on the web, as well as what the audience can see (which seems to be a couple seconds behind):

So now that I can get a Pokémon game streaming with Microsoft Teams, what else could I do?

Could I maybe do... a Pokémon movie?

As it turns out, yes! There's a popular tool called OBS Studio that lets you do a whole bunch of crazy stuff that I haven't even begun to play around with yet, but two of the things you can do is:

  • Load a video file into the scene
  • Stream the scene to a RTMP service

Bingo, that's exactly what I need. To do this, I need to go into OBS' settings pane and in the Streaming tab, enter the RTMP information again - with the dummy stream key again as well. (Also remember to stop streaming from Game Capture.)

Configuring OBS to stream to Microsoft Teams

Next, I need to set up my scene. Here I've just added a Media Source, and added Pokemon Heros - Latios and Latias (2002) from my NAS. I've also resized it to cover most of the scene, instead of just using the top-left corner.

Pokémon Heroes in OBS

Lastly, I just need to click "Start Streaming", and the movie shows up in Microsoft Teams:

Pokémon Heroes in Microsoft Teams producer view

And again, on the web:

Pokémon Heroes in Microsoft Teams on the web

All in all, this was a fun little experiment. I've learned how to configure a Microsoft Teams live event, how to stream to it from Elgato Game Capture, how to configure a basic OBS scene and how to stream it as well.

Hopefully I can put this to proper use somehow, otherwise I might just use it to set up a game party for work colleagues at lunch some time.