How To Hold Large Virtual Meetings During a Pandemic

Ken Robbins
CloudPegboard
Published in
13 min readMar 13, 2020

--

A practical guide for organizers who need to quickly adapt

Social distance empties seats, but we can still share ideas remotely. Photo by Waldemar Brandt on Unsplash

No doubt that COVID-19 is causing substantial disruptions to our daily personal and work lives. To do the right thing and avoid gatherings of large groups of people which risks spreading the disease further, many major and minor events are being canceled. Sure this is a challenge, but that doesn’t mean that all activities have to stop altogether. Instead we can adapt.

I’m involved with the leadership of a Meetup group (specifically, The Boston Amazon Web Services Meetup Group) that gets engineers together to network and learn from each other on various cloud technology topics. While it’s a great opportunity to get engineers away from their screens for a bit and to interact with others, the very concept of a meetup group conflicts with our current needs to avoid large social gatherings (our meetings range from between 50 and 200 participants depending on venue size).

We’re technologists and problem solvers, so we can adapt and use tech to get much of the benefit of our in-person meetings, and maybe we’ll even discover some advantages (not the least of which will be the ability to accommodate much larger audiences than our typical venues allow).

In this post, I’ll provide a tutorial for how to setup and use Twitch to broadcast a meeting that is mostly a presentation-style event. The goal is to help others quickly get up to speed for your own events so that we can collectively adapt. If you’re a Gen Zer, then you can probably skip this and go help some boomer like me figure it out. I relied heavily on guidance from my son to save me from lots of Googling and experimenting. Finally, I can extract some value out of my kids’ endless hours of online gaming and broadcasting!

Tool requirements and choice

There are numerous services to host meetings of all sorts. I did not do a deep survey as I would typically do. Instead, I biased to action to pick something that seems reasonable. For now, urgency was is more important than optimizing. We can always try something else a week later if we decide that Twitch is not cutting it. If you have suggestions, please leave a comment!

Our primary criterium was that we need to be able to reach a large audience. While our in-person meetings may only have less than 200 participants, we always have a waitlist from among our 7500 members. Moreover, since no travel is required for an online event, we can expect even higher attendance online. The large audience count requirement reduces our tool choices significantly.

Cost is also a factor, this is a free community gathering, so the service also needs to be free.

Mostly, events are presentation style. An event will consist of one or more talks by individual presenters, each with an accompanying PowerPoint deck.

Finally, an important part of an event is the half hour or so of networking before the event. This is hard to replicate with any sort of conferencing tool, but we are working on ideas to facilitate smaller remote virtual networking. I’ll cover that in a separate post after we get some experience.

Since Twitch is a free service that broadcasts live to an unlimited number of participants, it seems like a good enough match for our needs to try it out. The rest of this post will walk you through setting up Twitch so that you can use it to broadcast your own virtual events.

Getting started

Let’s get to it. I’ll focus on getting you to the right steps and help you find things. The idea is to provide a specific roadmap to save you from figuring out everything from scratch.

Twitch viewing interface showing our “Video Player Banner”

Set up Twitch

Twitch is a service that live broadcasts your stream to your audience.

  1. Sign up for a Twitch account
  • https://www.twitch.tv/
  • Decide if it’s best to sign up as an individual, or as in my case, pick a name that reflects the organization.
  • Hint: If you use an email service that supports aliasing (gmail does) use an address such as myNormalEmail+twitch@example.com (e.g, janedoe+bostonawstwitch@gmail.com).
  • In a separate tab, browse to https://www.twitch.tv/<YourChannelName> and bookmark it. For example, for me this is: https://www.twitch.tv/AWSBostonMeetup. Note that the other way to get to your channel is click on your profile icon on the upper right and select Channel.

2. Security settings

  • Click the profile icon on top right > Settings > Security and Privacy > scroll to Security > “Enable two-factor authentication”
  • Scroll to Privacy > Enable “Block whispers from strangers”

3. Profile

  • Click the Profile tab
  • Set a profile picture and banner if you like
  • Change the capitalization of the display name (you can’t change the name, so pick wisely when you start, this step only allows you to change to CamelCase if necessary).
  • Enter a description in the “bio” section

4. Channels and videos

  • Click the Channels and videos tab (I recommend that you control/command click to open in a new tab)
  • Copy the “Primary Stream key.” You’ll need this in just a little bit.
  • Enable “Store past broadcasts.” This is only 14 days of storage. If you want to save an event past then, you’ll need to upload the recording to YouTube.
  • Select Low Latency mode
  • If you are in a group or organization like mine and expect others besides you to broadcast, then under Permissions click on “People who can stream to your channel” and invite them
  • Under Video Player Banner, create and upload an image to display on your channel when off the air

5. Broadcast Options

  • Go back to your Twitch channel either by using the bookmark from above or click your profile icon on the upper right and select Channel
  • On the bottom right of the preview of your Video Player Banner, click the pencil icon to set the Broadcast Options for the channel
  • Enter a Title. You will likely change this periodically. For our event-centric use case, you likely will change it to the time and schedule for the upcoming event.
  • Change the Go Live Notification. Probably just convert the name to a more readable version.
  • Set a category. For non-gamers, the categories list is a bit hard to find appropriate standard categories. For my case, I picked Science & Technology.
  • Click Done

Set up Open Broadcaster Software (OBS)

OBS is a free software download for video recording and live streaming. You use OBS to capture input from your screen, your microphone, your camera, and other sources to create a composite stream that is sent to Twitch which in turns broadcasts it to your audience.

  1. Download OBS from https://obsproject.com/
  2. A wizard will help automatically configure for your PC
  3. Open OBS and open the Settings screen (button is on bottom right of screen)
  4. Select Stream
  • Service: Twitch
  • Server: Auto
  • Stream Key: Enter the key that you copied from Twitch above in the “Channels and videos” step
  • Click OK

5. Select Output

  • On a Mac, you should change the recording format to mp4 of mov since the default flv format is not natively supported on a Mac. You don’t actually need to record anything locally for streaming, but it’s useful for testing as we’ll see below.

6. Select OK to save all changes

Broadcast a simple text message

At this point you should be in good shape and ready to broadcast. The above is pretty simple, but a bit harder when looking at lots of pages and settings and trying to decide which are important and which can be ignored. Hopefully, the recipe above helps you get going very fast and without many detours.

Now let’s start with a very basic test where we’ll broadcast a simple static text message to our Twitch channel.

Default OBS layout showing a Text source. What you see is what will be broadcast.
  1. Browse to your Twitch channel (using your bookmark or by clicking your profile icon in the upper right of your Twitch home page and selecting Channel) in a separate window off the the side so that you can monitor what you are broadcasting
  2. In OBS, find the Audio Mixer panel in the bottom center of the screen. Click the speaker icon to mute your microphone. For some odd reason, the default is to have a live mic even though explicit action is required for other sources. Nothing is actually broadcast until you click Start Streaming, but you’ll want to mute this now for obvious reasons.
  3. Now find the Source panel on the bottom left
  4. Click the plus sign and select “Text (Free Type 2)”
  • Enter a title. This name will appear in a list of “sources” (meaning source content) that you can broadcast. So, pick a meaningful name like “Intro title.”
  • The “Make source visible” checkbox can be left checked for this test. In other cases, you might uncheck it and enable it later. This controls whether the source’s content appears (by default) in the stream or not.
  • Click OK, then enter some text on the next screen and click OK again.
  • You can now select and move/resize the text on the screen
  • Notice that the text source that you just created is now listed in the Source panel

5. To broadcast our exciting text message, double check that you are still muted (I don’t want to be responsible for any hot mic incidents) and click Start Streaming in the Control panel on the bottom right.

6. After a short delay, you should see your text live (with latency) in your Twitch window for your channel.

7. Click Stop Streaming to end the stream and end the broadcast

7. To clean up, go to the Twitch window and click on “Videos” on the top center of the screen. Click on the video you just made. One the bottom right, click the three dots to open the menu and pick “delete.”

Congratulations, you are now crawling! Now let’s walk. In the next section, I’ll walk you through setting up a full presentation, building on what you can do now.

Broadcast a presentation with slides

To create a real broadcast now, all we need to do is incorporate some additional content sources and then orchestrate the presentation.

For this configuration, our goal is to start the presentation showing a video stream of you on most of the screen on top of a title for the event. Then after some introductory remarks, you’ll switch to a scene where a PowerPoint presentation takes up most of the screen and the video of you is just in the corner. After getting this running, you’ll be familiar enough to create different or more complex (or simpler) configurations.

“Intro” scene is selected. Camera and text sources are shown
  1. In the Scenes panel on the bottom left, right click on the default Scene and rename it to “Intro.” A scene is a configuration of multiple content sources and how they will appear in the broadcast.
  2. Create another Text source as above and make the text be the title of your event. You could also just rename the old source (otherwise you should delete the old one using the minus sign). Lets title it “Event title.” Make sure that this text source is visible by clicking on the eye icon if necessary. Move and resize the text to cover the bottom of the screen.
  3. Click on the plus sign again and select “Video Capture Device” to set up your camera as a source
  4. Move and resize the video window to fill most of the screen
  5. That completes our Intro scene
  6. In the Scenes panel, click the plus sign to create a new scene and label it “Slides with PIP”
  7. Repeat the process of adding a Video Capture Device so that the camera is part of this scene as well
  8. Move and resize the new video window to the upper right of the screen
“Slides with PIP” scene has 2 sources: camera and a PowerPoint show

Setting up PowerPoint

Setting up PowerPoint is a little more intricate, but the same general approach applies.

  1. Open your presentation in PowerPoint
  2. Select Slide Show and then Set Up Slide Show
  3. For Show Type, pick “Browsed by an individual (window)” and pick OK
  4. Click “Play from start”
  5. Resize the resulting window to be as large as possible
  6. In the OBS Sources panel (while still having “Slides with PIP” as the selected scene) click the plus sign and pick Window Capture as the source.
  7. In the pick list in the resulting window, select “[Microsoft PowerPoint] PowerPoint Slide Show — [<name of your ppt file>]”
  8. Now you’ll need to drag and resize to get the slide view to fill most of the broadcast screen. Sometimes this takes some work since the initial size can be far from where it needs to be.
  9. Note that you can reorder which source is on top of others by selecting the source in the Sources panel and then using the up and down arrows to make sure that the video is on top.

We’re almost there!

Test recording

If you want, you can test a broadcast by recording locally and not steaming anything to Twitch.

  1. Click on the “Intro” scene in Scenes
  2. Now you may unmute in the Audio Mixer panel
  3. Click Start Recording on the bottom right
  4. Practice your introductory comments and be mindful of the audio level, mic placement, camera positioning, and background that will be broadcast to the planet (in case you sometimes write your social security number on the whiteboard behind you).
  5. You can switch to your “Slides with PIP” scene by just clicking on the scene title in the Scenes panel. Pretty neat, huh?
  6. In your PowerPoint window, switch slides and provide a little bit of test narration.
  7. When done, click Stop Recording
  8. Mute your mic (you’d think that I had a bad experience with this and there’s an interesting story to tell; is there?)
  9. To view the recording you just made, go to the OBS File menu and select Show Recordings. Find the recording file and play it to see your results.
  10. Remember to delete the recording
“Slides with PIP” scene is selected. Camera and PowerPoint (Window Capture) sources shown

Live broadcast test

  1. To broadcast live, use the exact same procedure as you did for the test recording. Remember to set the initial scene back to Intro and unmute your mic.
  2. The only difference between a recording and a broadcast is that to start the broadcast, click Start Streaming instead of Start Recording
  3. For testing, you can watch yourself in the Twitch window for your channel. However, for an actual broadcast, close the Twitch window since it’s distracting due to the latency and it will consume more PC resources and network bandwidth (that you might need).
  4. Which brings me to a few other live broadcast tips
  • Do not let anyone in your house use the microwave during your broadcast unless you are using a wired Ethernet connection
  • Limit all other Internet use that might suck up bandwidth during your broadcast. If you have kids in the house who can’t live without streaming something (in other words, if you have kids), find an old paperback book and ask them to see if they can figure out what it is and what to do with it.

Now you’re ready! This all seems like a lot of steps, but once you get it set up, it’s pretty simple. Broadcasting a live event is no different from the steps for the above live test. The only difference is that if you want to see the live text chat, you’ll need to have your Twitch window open, notwithstanding what I said before. To avoid the distraction and incremental resource/bandwidth consumption, press pause on the stream playback though.

How to handle a guest speaker

Let’s say that you want to organize an event, but you are not the speaker. One option, one with no social distance, but at least a limited number of people, is to broadcast from a common location with your speakers. This way, one person can orchestrate the broadcast, and presenters can just focus on presenting.

Another option is to forward this post to your presenters and ask them to install OBS. Depending on the situation, this seems a bit onerous.

The final option to consider, and probably the best for most situations, is that you establish a web conference with one or more guest presenters. Then create a source (like we did for PowerPoint), but pick either “Browser,” “Display Capture,” or “Window Capture” depending on how you are viewing the web conference. This way, you are just relaying your presenter to a broader audience.

Conclusion

This is an excellent solution to engage with a large audience and do our part to “flatten the curve” and help reduce the spread of COVID-19 while still carrying on as much as possible.

There are two obvious limitations so far. There is no way to have an audio (or video) question from the audience as we would for an in-person conference or even via a “raise hand” option as is found in commercial conferencing solutions. Twitch does have a chat room that the presenter or moderator can read and recite on behalf of the questioner. It’s notable that text chat questions enable the more shy participants to ask questions when might not in an in-person setting.

The other drawback is that this is complicated compared to the two or three clicks it takes to use most conferencing solutions. However, most of those solutions have a maximum capacity of a dozen or two participants.

It’s early and I’ll post updates as we learn from experience. Moreover, I’m no expert, I’m writing this as I learn since I think that it will be useful. There are literally thousands upon thousands of people who know more about this than me. So, if you can suggest different solutions or improve what I’ve documented so far here, please comment.

If you are interested in hearing about our virtual networking experiments, follow me to catch future posts.

About Cloud Pegboard

Cloud Pegboard helps AWS practitioners be highly effective and efficient even in the face of the tremendous complexity and rate of change of AWS services. We want to keep AWS fun and feel more like dancing in a sprinkler on a hot summer day and less like being blasted with a firehose. We make the AWS information you need amazingly easy to access, and with personalization features, we help you stay up to date on the AWS services and capabilities that are important to you and your specific projects.

Sign up free a CloudPegboard.com

--

--

Ken Robbins
CloudPegboard

I’m the founder of CloudPegboard.com a powerful tool for any AWS practitioner trying to keep up with the complexity and rate of change of AWS services.