Thursday, May 10, 2012

Livestreaming Google+ Hangouts

One of my responsibilities at Google Ventures is to plan the growing number of workshops that we offer to our portfolio companies. In the last several months, we’ve offered workshops on a variety of topics, including SEO, AdWords, latency, technical recruiting and candidate sourcing, A/B testing, and business development. With each new workshop announcement earlier this year, I received several replies from portfolio company employees outside the Bay Area: “What about us?!” It was a fair complaint: as we ramped up the pace of Startup Lab workshops in Mountain View, the unfortunate reality was that they required you to physically be in the Startup Lab to participate.

Starting in March, we began using Google+ Hangouts to extend the audience beyond the Startup Lab, but quickly ran into our next hurdle: Hangouts support a maximum of 10 participants, and demand for our broadcasts almost immediately exceeded that number.

This week the Google+ team announced that Hangouts on Air allow for unlimited viewers, and are now available to everyone. However, Hangouts on Air require the broadcasts to be public, which ends up not supporting our use case at Google Ventures: our broadcasts are available to anyone at our portfolio companies, but generally not to the public. As a result, we had to look at a way to leverage the early success of using Hangouts to enable interaction between remote attendees and presenters, while also retaining control over who could see the live broadcast.

When I started digging in on the best way to extend live broadcasts of our Hangouts, I was surprised to find few sites documenting the best ways to accomplish what we wanted. Since many people expressed interest in what I ended up doing (not to mention the many Startup Lab occupants who put up with me testing things out at the Startup Lab in the last few weeks!), I figured it was worth a summary of what we’re now using in the current Startup Lab.

Hangouts remain our platform for presenters to speak to the remote attendees, present slides, and screenshare their browser when showing specific sites, tools, etc. Remote attendees are invited into the private Hangout a few minutes ahead of the workshop, and can ask questions at any point throughout. In the Startup Lab, we run the Hangout from a Mac Mini, which has a Logitech C910 HD webcam pointed at the presenter. We use a Blue Snowball USB mic to capture audio in the room, and have a set of powered speakers plugged into the Mac Mini’s headphone jack.

For the livestream, we’re using Ustream. I liked Ustream’s featureset – we have the ability to embed the stream on our site, remove our channel from Ustream’s site altogether, brand the video stream with our logo, password protect the stream so only authorized viewers can watch, and remove ads (we pay for some of these features). Running the Ustream production is a dedicated iMac – I went with a 27” 3.4 GHz quad core iMac so that I’d have the fastest machine possible handling the CPU load associated with live streaming.

Remote attendees had pointed out that they had trouble following along with workshops when questions were asked in person in the Startup Lab – so we added a second camera (the upgraded Logitech C920 HD webcam) mounted on a tripod that’s pointed at the audience. When someone in the audience starts talking, we can switch to that camera so remote viewers can see the person who’s speaking and hear their question (which also avoids us having to have the presenter repeat the question).

Controlling the livestream is Ustream Producer Pro, an app that lets you manage multiple “shots” in a livestream and select which is the active shot seen by the livestream viewers. (Note: Producer is a free app, but I paid for the ‘Pro’ version to get the ability to stream in HD.) In addition to the audience webcam, we need the Hangout to be one of our shots; to get that, I’m routing the Mac Mini’s audio and video out via the Mac Mini’s HDMI port into a Blackmagic Intensity Extreme Thunderbolt video capture box. That plugs into the iMac via Thunderbolt, where Producer Pro sees it as one of its video signals.

Running the actual livestream is pretty straightforward: log into Ustream via Producer Pro on the iMac, select the active shot (the Mac Mini) and sit back. When questions are asked in the audience, switch to the audience camera in Producer Pro so livestream viewers can see/hear them, then switch back to the presenter shot when the question’s done.

In the planning stages, I drew out a diagram that actually comes close to representing the final setup:

Couple final notes on the setup:

  • In the Startup Lab I wanted to hear audio from the Hangout directly from the Mac Mini instead of through the livestream. There’s a couple second delay from live to the livestream, and the interaction on the Hangout would start to feel very awkward if the presenter took several seconds of waiting before they heard the question asked in the Hangout. When I plugged the speakers into the Mac Mini, the Mac routed audio to the speakers (and not the HDMI signal). To get audio to both the speakers and the HDMI signal (so that the Hangout audio would be included in the livestream), I created an “aggregate device” in the Mac Mini’s Audio Devices (Utilities | Audio MIDI Setup | + | Create Aggregate Device), and in the Hangout set the audio output to the aggregate device.
  • It’s much simpler if presenters use the Mac Mini for the Hangout, but there are times when what they’re presenting is only available on their laptop. For those cases, I got an HDMI switcher and a display port to HDMI cable. When needed, I can plug them into the HDMI switcher, and the signal on the iMac via the Blackmagic Intensity capture device will be their laptop instead of the Mac Mini.
  • Facilitating questions from the livestream remains a work in progress. We’ll be incorporating Google Moderator to collect questions and let the audience vote on which questions they’re most interested in. We will likely be embedding the Moderator questions directly on the livestream page on our site, but are still evaluating the easiest way to do this that’s also visible to folks in the Hangout so we avoid forking conversations.
  • This setup does result in two video feeds: the Hangout and the Ustream broadcast of the Hangout. I’m going to keep an eye on things to figure out whether this becomes too confusing; if so, we may shift to having all attendees watch the livestream, and have presenters in the Hangout.

In the course of building this setup, I reached out to a number of folks for guidance. Big thanks to the TWiT crew (Leo Laporte, Denise Howell, Alex Lindsay) and the Ustream guys (Brad Hunstable, Alden Fertig, Andy Francis) for answering every question I threw at them, and of course the Hangouts team for building such a great product.