Hacking Social Video: Building a Group Live Video App Part 1

mobile multiparty OpenTok

Looking at the top charts of your favorite mobile app store you’ll find two kinds of apps, games and social apps. Without a doubt, social platforms are where you’ll spend a big chunk of your internet time.

The way we interact on these social platforms has been evolving since they first appeared on the screen. Whilst in the early days you couldn’t expect much more than simply exchanging text messages with other people, the evolution of several technologies has led to users expecting richer ways of communicating.

Audio and video communication are no longer the future of social interaction – they are the here and now of many platforms. Our recent study shows that social video is being used all over the world in many different ways and billions of minutes a month are used by these apps. New platforms and apps are being released all the time and many of them include video and audio communication as a key component. Just last month, Facebook announced a project they are working on called Bonfire to add easy multiparty video calling to their offering and recent reports suggest Amazon is also working on a social app which includes video calling. So let’s look at how you can get onboard and develop your own social video app for mobile.

Starting out – some key considerations

When you’re starting out building a social app there are a few key considerations to keep in mind: the interaction model you are going to use and the technology to use for the live video. Let’s look at both of these in turn.

The interaction model – How do you want users to find one another?

  • A traditional call approach: In this model, the user has a list of contacts and selects the person they would like to speak to. The most successful examples of this model include Apple’s Facetime and of course Skype. We’ll be looking at this call approach in our next post.
  • A room-based model: In this case, you place a user in a room. Other people can join the same room and begin communicating through live video. Several examples of this model in action include the recently announced Facebook Bonfire and Houseparty.

The technical hurdles – Why to think carefully about using WebRTC off-the-shelf

Traditionally, adding live video to an app has been very difficult. In addition to requiring knowledge about live video, developers also had to deal with device limitations, network bandwidth, and video distribution among participants. Thanks to modern technologies like WebRTC, this has become significantly easier.

However, WebRTC isn’t always ready for use in real-world applications. There are a few key components that WebRTC off-the-shelf doesn’t provide:

  • Network infrastructure When using WebRTC among several peers, all of them need to communicate somehow before actually interchanging video. If you want to use WebRTC directly you need to lay out server architecture to deal with this.
  • Video distribution The other issue, no less important, is video distribution. When building a social app where you plan to have several people in the same room or call, you need to take into account that if you are using something like WebRTC every person will send his video to all other participants, and vice versa. For example, in a 4 person room each call participant will send their video 3 times, and will receive 3 video streams from the other participants. This can be a problem when more participants join the session because it consumes a lot of upload bandwidth. Even with just 4 participants, this model becomes incredibly inefficient in terms of network consumption.  If you are in an environment where the network speed is not that fast, video communication might not be possible.
  • Code complexity and non-existent libraries Building with off-the-shelf WebRTC requires a good knowledge of concepts such as ICE and TURN servers, and to understand how an “offer works”. The WebRTC API is really not that simple and will require an investment in time and study to get it right. If you want to use WebRTC, you need to build the library itself from its source, since there aren’t official prebuilt binaries for every platform. Building the library is not an easy task since it is a complex library with many dependencies. Moreover, if your plans are to support different platforms, you have to repeat this process for each platform.

OpenTok to the rescue

Jump these technical hurdles with the OpenTok platform

The technical hurdles described above are solved for you when building with the OpenTok platform.

Network infrastructure is already set up in the OpenTok platform, so you can forget about setting this up yourself and concentrate on your app

Video distribution is solved by the OpenTok media backend. When using our SDK every user will send the video just once. The video will reach our servers and it will be distributed among all participants on the session. This is crucial when creating multiparty applications like social platforms. This way of working lets you to put many more participants in a session and savings in network consumption are huge. Check out the diagram below:

mobile multiparty webrtc opentokReady to use libraries

We offer full featured SDKs for the most popular platforms on market – Web, iOS, Android, Windows. The API is also fairly simple so you can go from zero to full multiparty video in just a few minutes. From the code perspective, dealing with WebRTC code is way more complex than using an OpenTok SDK, as can be seen in the following diagram:

mobile multiparty video webrtc opentok

See for yourself how easy it is to get started building video for mobile by following our tutorials for OpenTok demo for iOS and Android. You can sign up for a 30 day free trial of the platform directly from the Developer center and get on your way to building the next big social app!

Next: our Part 2 post here looks at some of the features you can use to have a really great user experience for your social app.