Mantis: Next-generation Cloud Technology for WebRTC

OpenTok_allplatforms (1)Today we’re proud to announce our latest WebRTC innovation: Mantis, a cloud-scaling infrastructure for our OpenTok on WebRTC platform.

This is another big step forward for the TokBox team as we continue to pursue our goal of providing application developers with simple yet powerful APIs. APIs that not only leverage the latest standards to deliver the best possible experience, but that are backed by a scalable, smart cloud which supports interoperability across a variety of end-points.

It was just over six months ago that we launched the OpenTok on WebRTC platform. Since that time we’ve been hard at work, constantly pushing the boundaries of OpenTok on WebRTC’s functionality and performance. We launched the first iOS SDK for WebRTC, introduced cross-platform and device support, improved connectivity with cross-platform TURN support and more.

Mantis for OpenTok on WebRTC acts as a central switching station for all the WebRTC streams in the OpenTok cloud.  Mantis enables:

  • Reduced upload bandwidth consumption, with the ability to scale out a single WebRTC stream to many endpoints
  • High-quality multi-party video calls
  • Cross-browser compatibility for Chrome, Firefox and Internet Explorer (through Google Chrome Frame)
  • Cross-device compatibility for iOS native apps and Chrome on Android

Why should you care about Mantis?

1) It’s scalable…

WebRTC inherently uses a peer-to-peer based communication model.

In reality, while this is useful, several real-world applications naturally lend themselves to a multi-party use-case:  online classrooms, collaboration tools, the list goes on. The only way to enable a group video call using off-the-shelf WebRTC would be to create a mesh of PeerConnections between all participants in a call.

This mechanism doesn’t scale the number of connections well (it scales quadratically with the number of participants), and it is bandwidth inefficient. Every publisher needs to pipe out one video stream per call participant, leading to a linear increase in the amount of upload bandwidth required.

Mantis is a cloud-based media routing server, which enables us to get around this mesh problem by providing a centralized relay authority.

Every browser/device end-point thinks it’s connecting to a peer, but instead connects to one of our Mantis servers. Mantis can mediate multiple connections and then route streams from each publisher to any relevant end-point subscribing to that stream. Now OpenTok on WebRTC can scale subscribers effectively without constraints on publisher upload bandwidth, all while still leveraging standards-compliant WebRTC implementations under the covers.

Mantis Diagram

2) It’s smart…

Scale is just one piece of the puzzle.

Mantis also provides a call-control/signaling mechanism that works in lockstep with media routing. This means OpenTok on WebRTC uses some pretty sophisticated algorithms to dynamically adapt to various network conditions that the client endpoints may experience.

Let’s say you were on your iPhone in a coffee shop with Wi-Fi, and then you step out into the street and switch to a much slower cellular connection. Mantis is aware of the change in network conditions and can adapt the bitrate of the encoded stream in order to adapt.

3) It interoperates…

Supporting different devices endpoints is one of the core tenets we strive towards at TokBox.  Mantis helps us work towards interoperability between WebRTC and other communications ecosystems.

We believe Mantis lays the foundation for not only a powerful routing technology, but also for other functionality that can be layered on top of it: stream mixing, recording of media, signaling/event-notification APIs, and more.

We’re excited to show off our initial implementation of Mantis at the The Next Web ’13 in Amsterdam.  If you are going to be around, swing by our demo booth to see bandwidth-efficient multi-party WebRTC video in action, as well as a demo of dialing in to a WebRTC video call from your everyday mobile phone.

Mantis is now in external beta.  If you are interested in taking it for a spin, please contact us.

[UPDATE] Good news!  As of 10/1/13 Mantis is available in production. That means you no longer have to email the TokBox team to request access. Mantis is subject to the new OpenTok platform pricing which you can review here. Free access to Mantis is available through our new 30-day free trial.

  • http://captaincalliope.net/ Captain Lyre Calliope

    This is so badass it’s not even funny. Congratulations for not just being ahead of the curve, but adding inflection to its slope on your own terms!

  • http://twitter.com/MichaelHawkeCBI Michael Hawke

    Does it work on IE10? I’m getting the ‘Incompatible Browser’ alert.

    • LBrockie

      Hey Michael, you’ll need to install Google Chrome Frame in order for OpenTok on WebRTC to work. You can do that here – http://www.google.com/chromeframe – you need to open this link from an IE browser

      • Dan Mapes

        The following message is displayed on the chromeframe site above. “We are sorry. Google Chrome Frame is only available for Internet Explorer 6, 7, 8 and 9 on Windows 7 / Vista / XP SP2 or greater.” So there may not be support yet for Explorer 10 on Windows 8.

        • http://twitter.com/iansmall Ian Small

          Yes, Google hasn’t released support for IE10 through Google Chrome Frame in the stable channel yet. We are hopeful that it is coming soon, given work going on in the development channels.

  • Harry Tho

    Will this support recording?! It would be extremely great to get recording working in mantis

    • Edward Chang

      Harry unfortunately not yet, but please check in periodically as archiving will be down the road!

    • http://songz.me/ Song Zheng

      You can try client side recording with this library: https://webrtc-experiment.appspot.com/RecordRTC/

      • Harry Thomos

        Thank you Zheng. The lib is quite useful, but not for our use case, as we need to record a session and not just record content ourselves

  • Shawn Kalin

    must work with Skype. How’s that looking?

    • Pjotr

      “must”? I prefer it *not* to work with Skype as I don’t need a zillions calls from scammers. How much longer will Skype be relevant? As Skype is further silo’d into Microsoft’s monoculture and Open Standards based WebRTC takes off it will not take long before organizations take the Open road. Similar to what happened with Linux etc. Some Microsoft stalwarts will always use whatever Microsoft’s has to offer. Their loss. And it’s just a matter of time until Microsoft has no other option than to embrace WebRTC and announce a multi billion dollar Skype write-off. Then they will probably try to extend WebRTC into a non-compatible way (silo’s & monoculture again). And they will fail, again, no thanks to their nineties playbook and simply because the world has already moved on. Meanwhile the rest of us are enjoying Open Standards based WebRTC.

  • http://profiles.google.com/mrdrmuffin Gregory Posey

    Is a library for Android apps on the roadmap? I’m using the existing Android library right now but would love to update to this eventually!

    • http://www.onvural.net/melih Melih Onvural

      Yes. Could you email me at melih@tokbox.com, and I’ll add you to a list to notify partners about status updates?

    • http://aoberoi.me Ankur Oberoi

      Nice to hear from ya Greg :)

      You might already be aware but our WebRTC library works great in the Chrome for Android browser once you enable PeerConnection support at chrome://flags.

  • johnc711

    Looking forward to trying things out.

  • Pingback: Mantis: Next-generation Cloud Technology for We...

  • Guest

    Wow. Might come handy on our next project.

  • Nicole I. Rivers

    Interesting. This might work on our next project.

  • jabbink

    This makes no sense at all. If you are not going to use the great P2P opportunities that WebRTC offers, why even bother implementing it. Just stick to something else, like WebSockets. They work more reliable and are made for this, unlike WebRTC, which is not meant to still use a central authority but is actually made to allow direct client-to-client communication.

    I also notice you claim to have the first iOS WebRTC SDK, so I suggest googling for Ericsson Labs…

    • http://aoberoi.me Ankur Oberoi

      Nobody is saying that P2P isn’t also valuable but there are many use cases that WebRTC is useful for outside of that scope. You say that WebRTC is not meant to use a central authority, but the designers explicitly allowed for media relay with support for TURN. Mantis can be seen as the next logical extension of that. Personally I think its our job to react to the use cases we see in the market, and undoubtedly we’ve seen the demand for larger scale broadcast scenarios.

      WRT the iOS WebRTC SDK, we’ve seen Bower before our release, but to the best of my knowledge this did not interoperate with any release browsers. We had interoperability on day one of Google Chrome’s first enabled stable release.

  • http://www.gruveo.com Art Matsak

    What about security? Isn’t a central server through which all the media streams flow a possible point of call interception?