A few weeks ago, we posted an introduction to Red5, the live-streaming juggernaut that nobody’s talking about–but everybody should be. Red5 is the team of developers who reverse-engineered RTMP back in 2005, before Wowza was even formed. Over the past decade, Red5’s open source software at Red5.org has been quietly gaining traction, with major companies who enable real-time communication using it behind the scenes, such as Akamai, Harvard, and Pearson.
Although Red5 has remained largely under the radar, it’s about to become a Super Giant with the release of Red5 Pro, which allows you to build scalable live-streaming and second-screen applications on the Red5 open source server. Recently we had the opportunity to talk to Chris Allen, the CEO and President of Red5’s parent company, Infrared5, about reverse-engineering RTMP and the release of Red5 Pro.
Tell us about your company
We are the guys who first reverse engineered and open sourced RTMP creating the Red5 project. Initially Macromedia was taken aback by it, but over the years they’ve opened up and we’ve worked on them with a lot of projects, which was cool. We’re friends with Adobe even though we had a competitive project.
The project took off until by 2007 the demand for custom work and help on the project was so high that it made sense to create a consulting company around it. The concept was that infrared is below the light spectrum, so we’re the guys behind Red5, so we decided to name the company Infrared5. It sounded cool, and the .com domain was available. Ever since then, we’ve been building live streaming projects quietly and saw the writing on the wall with the demise of Flash as a sort of opportunity.
We were going to either add updates to our code as open source or take on a new business model, like a licensing model similar to Wowza. Wowza was doing well, they fixed many of the same bugs we had at the same time we would make our commits. Basically they were paying attention to our open source code and learning from it, so anyway, we decided we should do a licensing model and not share everything we do so publicly. We started building out the pro version of the product to enable iOS and Android, raised financing, and launched the project. The beta came out in October 2016 and the full 1.0 was released in May. Now we just launched 2.0 with full WebRTC support for the project and doing a few things that are different than Wowza.
When you reverse-engineered RTMP, did you have to come up with a new protocol?
No, the protocol was built into the Flash player. We used black box testing to reverse engineer and understand what the Flash player was doing with tools like Wireshark. We also had a lot of help across the open source community, too. Another group (AMFPHP) figured out the data format AMF, which was a big clue. RTMP leverages AMF extensively. The thing with the Flash player is that it was designed to be a super small install, basically because the internet at the time was slow, and the smaller they could make the plugin the better its adoption. So because of this, Macromedia had to reuse a ton of stuff, AMF being just one example. We ended up figuring out how to do the RTMP handshake and how they were sending video over. With those clues, we were able to figure out how the pieces came together and started to see results and see video come through. It was super exciting stuff when we finally saw video playing back and coming from our software.
Are you running over RTMP, or does Adobe own that?
RTMP is something Adobe started, and they actually released the spec a few years after we built Red5. Wowza had the advantage of looking at our code because they came after us. RTMP was a proprietary at first developed by Macromedia, but it eventually has become a standard because Adobe released it publicly. Our new product goes way beyond RTMP at this point. Red5 Pro has added features to support HLS, iOS browsers, and support RTSP, mobile SDKs. It also now supports WebRTC, which is, in my opinion the protocol of future. Right now, the 2.0 version of Red5 supports, when configured correctly, a 200-ms low-latency stream from browser to browser.
You released a graph (pictured above) with the share of servers using RTMP by each market player. What are the numbers based on?
We ran a test to provide information for investors and what we ended up doing was writing a piece of software to scan the Internet looking for open 1935 ports. Then we took a sampling that from the 60,000 or so results we got back. We used a sample based on key unique traits in the RTMP that we could identify as coming from a specific RTMP implementation. In other words, nobody implemented RTMP the same way. Some servers we could identify, so we looked at how many of each they had. These are the results. Considering that these are servers out in the open, that haven’t locked down their systems and have a port open on the Internet, it’s a pretty big sampling. We also did some DNS lookups on the IP addresses, and there were a ton of Akamai servers popping up that ran Red5, so we know Akamai runs Red5 behind the scenes and probably accounts for a tremendous amount of its use.
When was this data taken?
The sample was taken two years ago. We knew the results seemed about right when we got them. The thing about Red5 was we weren’t public about it or into marketing because our inbound traffic was so tremendous. A lot of people who aren’t into or don’t like open source, aren’t aware of the amount of usage it’s been getting. I think some ignore it partly because they can’t make money on open source directly. So we have all of these companies sort of quietly using our stuff.
Can you tell me some CDNs using Red5 that aren’t posted?
There are tons of companies who use it: Facebook, Amazon… The thing about open source is that you can’t always tell who is using it, but we know certain companies are because they’ve reached out to us, or other tell us they’ve worked on a project for X company using Red5.
And you have close to 6,000 people using Red5 Pro?
That’s the number of people who downloaded our software using the developer edition.
How big is the company now? A dozen employees?
Almost nailed it. Eleven right now.
And what was the timeline for your company?
We started with open source in 2005, then built a consulting company around that product that started in January 2007. Infrared5, has since developed apps for companies from Disney to NBC, etc. Then last year around this time we launched the beta of the Red5 Pro.
For Red5 Pro, your product pricing is $119 a month for a single server instance. Why cap at 2000 streams per server? What about customers who have a heavy-duty server like 20K?
It’s not really a cap, it’s based on tests we’ve done on a certain instance type on AWS. At around 2000 streams, you run out of bandwidth per server instance. Our server performs better than Wowza and can get more capacity on it, but on the advice of our investors, we set a number of streams per server to get an idea of what the scale would be like.
Do you provide transcoding?
Yes, our transcoder is called Cauldron. We haven’t exposed our API much, but it can do transcoding between all different formats. We can also open it up so we can do different qualities of bitrates and get the Brady Bunch effect of combining different videos together, like for a chat application with concurrent videos running at the same time. You will see a lot of cool things we plan to allow developers to do with it in the near future.
So that cost is baked in and offered for no additional fee?
Can you talk about the clustering plugin?
The main philosophy around our clustering model is being able to deploy on any platform, whether it’s the cloud like on AWS or Google Compute Engine. Developers should be able to build their own CDN with low latency using our platform. There are clients that require sub-300-millisecond latency, like for example an auction client, so you want the stream to be perfectly in synch with the data. Other clients must be able to support up to one million concurrent viewers. Most of them are deployed on AWS.