Microsoft Acquires Beam, Showing the Value of WebRTC to Interactive Live Streaming

Low latency is critical for interactive live streaming.

We make it possible for streamers to involve viewers in their gameplay, no matter what game they’re playing. Want to let your viewers choose your weapon, make quests for you, or even fly a drone around your room? You can do that, all in realtime. Our SDK allows developers to create interactive experiences for existing games with as few as 25 lines of code.In the console world, there are two major players - Microsoft Xbox and Sony PlayStation. With the acquisition of Beam, Microsoft is trying to build an ecosystem of viewers around the gamers and games offered in Xbox. Will they share the SDK and platform with Sony? It is too soon to tell, especially now that Microsoft is opening up and trying to build large ecosystem around its services as opposed to its operating systems. It might just be that Microsoft is trying to become a big player in gaming in general - not just console ones but also mobile. Back to Beam and video streaming. To enable higher and richer interactions between viewers and gamers, and offer the kind of that, latency higher than a second are detrimental. This makes HLS and MPEG-DASH protocols irrelevant. Flash is on its way out the window. The only other technology that can get to a sub-second latency for real time video streaming then is WebRTC. WebRTC is exactly what Beam has been using in their "protocol" dubbed FTL. It used WebRTC to stream video to the viewers instead of the more traditional mechanism of Flash. I have been a believer in WebRTC for live streaming and broadcast for over a year now. It is just another place where WebRTC makes a lot of sense, but it will take time for us to get there. The main reason for that is that current implementations are too focused on video chat scenarios - trying to leverage the WebRTC implementation found in Chrome and hooking it up to backend media servers that are again geared towards video chat use cases. There are 4 different techniques that WebRTC can be leveraged in interactive live streaming (or streaming at all):
- Use WebRTC's data channel as a replacement for HTTP(S) to send video packets
- Theoretically, this should be faster than HTTP and enables optimization to buffering
- No one has taken that route yet as far as I can tell
- Build a kind of P2P CDN on top of WebRTC's data channel
- Think BitTorrent inside the browser
- Peer5 and a view other vendors are doing just that
- Use WebRTC in its full glory - voice and video channels opened and streamed
- Acquire the original live stream using WebRTC or some other mechanism, and then use WebRTC to connect the viewers via a VOD like architecture to the broadcast
- Probably the most wasteful of all approached
- And the one I am guessing Beam is currently employing
- Optimize on (3) to offer something akin to a Flash/HLS streamer
- Handle multiple bitrates and resolutions
- Be able to get high density of streams in a single machine


I couldn't agree more with this article Tsahi!
This is why we are hard at work on #4 from your list. We are making Red5 Pro (http://red5pro.com) into a low latency streaming platform with all the bells and whistles you get with traditional HLS and RTMP based platforms. The server-side piece is only one aspect of the solution, which is why we are spending so much time on perfecting a JavaScript SDK with an integrated player to make it easy for developers to integrate low latency streaming at scale into their sites.
A beta of the new WebRTC features will be out later this week. If you know anyone that needs this solution, please make some introductions.