iOS SDK Enhancements: Now with 3G/4G support

Back in March of this year, TokBox launched a new SDK for its video platform that took the power of live, face-to-face conversations and brought them to the iOS platform (think FaceTime but as an API). This SDK has been essential to our ecosystem as it has helped our partners to create new iOS applications as well as bring new value into existing applications by adding live video. We’ve seen some fantastic use-cases take shape over the last few months. Some, perhaps obvious and others that are pushing the limits of new video use-cases.

We didn’t stop there, though. We knew very well that getting the first iOS live video SDK to developers was only the first step for us. Right out of the gates, we quickly found that we had performance issues with some of the lower-end iOS devices (the iPhone 3GS and the iPod Touch). These devices didn’t quite have the necessary processing power to handle the demands of streaming low-latency live video. We saw sporadic behavior and very poor latency on the lower end devices. This was a bit unnerving for us, however, since a large percentage of iOS wielders are, in-fact 3GS users. This was OK though. Luckily, in targeting the iOS platform first, we knew the hardware profiles we had to deal with. Android would have been a much harder problem to solve given the number of unique hardware profiles that run the OS. Our first task was to get the lower-end devices up to the task. This required some tweaking of our video pipeline. We got this fixed by adapting the throughput of the video based some timing feedback on the device (read: we start dropping frames when your 3GS starts sucking).

Since our 1.0 launch back in March of 2012, we’ve made a handful of releases to GitHub and have had two versioned releases that have added new APIs and quality enhancements. Most of these releases have been relatively quiet. We haven’t made a huge fuss of most of our updates to the SDK. The last dot release we had, version 1.1 contained a few updates to performance, bugs and the ability to take a screenshot of a video stream. Constantly fixing and improving the quality of our products is what we’re all about here at TokBox.

Today, we’re (officially) announcing the release of our iOS SDK, version 1.2. With this release, we’re excited to show off some video quality changes that will help our partners develop even better video applications for iDevices. The first things you’ll notice about this update (if you’re running on a solid WiFi connection) is the significant increase in quality that we have been able to push. Another great thing about this release is also the opposite, however. When the SDK detects that your device is struggling to send/receive video in a timely manner, we start backing off how much data the participants in a call are trying to send one another. What this means is that developers can safely use OpenTok on 3G and 4G connections without having to worry about the experience that their users are having. Wrapping all of this intelligence into the SDK and acting on it when appropriate abstracts the difficulties that come along with streaming video and lets our partners do what they do best – develop!

The difference is pretty clear:

                        Before                                                                 After

This dynamic algorithm we’re using to determine the quality settings of a video call is just a start to providing adaptive, live video calls across our platform. It’s something that we’ll be constantly iterating on (developers: bookmark the GitHub project and update regularly). Using feedback from our partners and stats collected about the latency, device information, etc. will help us continually tweak this algorithm to provide even better adaptivity across unpredictable networks and will ultimately end up providing the end-users (those shooting and watching video) with a better experience. We’re confident this update will open new doors and new use-cases for our partners. The quality improvements (as you can see above) have dramatically changed what’s possible with mobile video. Hop over to GitHub and download the new SDK if you haven’t already. We’d love to hear your feedback and see even more cool projects that harness the power of live video.