mux CEO and co-founder Jon Dahl sees a major renaissance underway for applications and websites based on native video experiences.
“Video is the most powerful means of communication,” Dahl said. “It’s special because you can communicate much more in 10 seconds than with 10 seconds of reading text or looking at an image. The possibilities to communicate with video in real time within your website or application are endless.”
More than 80% of the internet’s content is video, and businesses are realizing that rich, interactive in-app video experiences will drive customer adoption. Real-time video, in particular, is a powerful format with the potential to disrupt an untold number of industries with new front-end experiences.
But online video is a very difficult format for developers to work with. That is a problem, but also an opportunity.
The process of getting video to users
Video at scale is arguably one of technology’s biggest problems today. As a developer, you can drop an MP4 on S3 and put a CDN in front of it. Easy enough, right?
Well not really. Then you might find that your users don’t have enough bandwidth, or your video looks bad because it’s constantly buffering, or a certain percentage of your user devices don’t support the modern codex.
SEE: Windows, Linux, and Mac Commands Everyone Should Know (Free PDF) (TechRepublic)
Behind every video stream is a series of challenging technical problems. Transcoding is complex and requires a lot of computing power. There are many tradeoffs between file size and computing power when encoding and compressing it.
When you stream, you have to choose which streaming protocol to use and which codec to use. Delivering video requires a properly tuned CDN (or possibly several CDNs). Even the simple process of playing video on devices turns out not to be that simple: Android, iOS and each web browser are quite different.
Now make that video live, and the work gets much more complicated.
Live video is 10x harder than on-demand video. Do not believe me? Take a look at this AWS reference architecture and get an idea of the back-end complexity required to deliver and scale live video.
What’s involved? Well, you have to take the live feed from the camera and make it a network protocol. Then you send it to the cloud, transcode it, decode it, inspect it and make various compression decisions. You have to store the video somewhere, then you have to use one or more content delivery networks to handle the delivery of the video, with some sort of caching layer to reduce outbound traffic. It is a format with unlimited complexity and new protocols and standards every year.
The sweet spot for developer video abstraction
When developers bring video into applications or websites, sometimes it’s on-demand video (pre-recorded video), sometimes it’s streaming video (one-to-many video), and increasingly it’s real-time video (live video). Unless they’re video engineers, developers typically don’t understand that these different video formats are inherently different and have completely different backend infrastructure requirements.
Given all the complexities I described above, this is another decision developers may be ill-prepared. But Dahl doesn’t believe that developers should understand all these nuances in their search for the developer abstraction sweet spot to the video format.
According to Dahl, Mux sees his video API as the right abstraction, not too high like the enterprise video hosting providers, nor too low like the do-it-yourself path many developers experience through the public cloud providers. Most of their users come to Mux after struggling with a cloud transcoder, storage platform, and CDN, trying to piece things together.
Dahl relates Mux’s mission to deliver the right developer abstraction with video to the early days of cloud computing. Rackspace’s approach was very low-level, while Google’s AppEngine was very high-level. Amazon EC2 then nailed the sweet spot API abstraction to the server that dominated the market and made cloud computing really take off.
One toolchain for on-demand, streaming and real-time video
Today, with the launch of Real-Time Video, Mux may have become the first developer platform to unify all video formats under a single API. That’s great news for developers who need video but don’t want to get a PhD in video delivery.
Unlike streaming video, which is a one-to-many format where a latency of three to 30 seconds may be acceptable, real-time video is a one-to-one or many-to-many format, where the latency 150 milliseconds or less for seamless user experiences. This requires a fundamentally different video infrastructure, which is why no one else has brought these technologies together in one platform.
SEE: Linux Turns 30: Celebrating the Open Source Operating System (Free PDF) (TechRepublic)
Developer tooling and API abstractions have been a breakthrough for developers over the past 10 years. When you think of a use case as ubiquitous as payment processing, it’s easy to forget that not long ago it was a very tedious job to set everything up. Developers had to come up with dozens of steps involving payment processors, banks, and more. But then Stripe came along and discovered the right API stack, turning payment processing into a largely resolved developer experience.
For decades, video as a format has been a fundamental part of the Internet, as have text and images. But working with video has been the arena of highly specialized video engineers, so the use cases for native video are only now beginning to blossom.
With standard JSON and Rest APIs, webhooks and workflows that allow any developer to work with all video formats, Mux aims to tame video under one coherent API, while removing the hard stuff, so any developer can harness the power of the video format without having to specialize in video technology.
Disclosure: I work for MongoDB, but the views expressed herein are mine.