Live video streaming plays a significant role in the modern marketplace. Successful apps such as HQ Trivia and Periscope, along with other applications like live-streaming auctions, drones, and sports streaming (including gambling) are proof of the rising consumer demand for interactive live streaming. There are a few different video streaming platforms available. This post seeks… Continue reading Top 10 Requirements for a Modern Video Streaming Server
Live video streaming plays a significant role in the modern marketplace. Successful apps such as HQ Trivia and Periscope, along with other applications like live-streaming auctions, drones, and sports streaming (including gambling) are proof of the rising consumer demand for interactive live streaming.
There are a few different video streaming platforms available. This post seeks to explain the most important features and considerations to make when choosing your video streaming server.
Modern Low Latency Protocols
As old protocols like RTMP wear out, modern standards are replacing them. These include ingest protocols like SRT as well as WebRTC for both egress and ingest.
Let’s take SRT (Secure Reliable Transport) first. It’s an open source standard ingest format led by the development team at Haivision. SRT is a UDP based protocol that enables rapid transmission of video data. It has forward error correction and an adjustable buffer to allow for changing bandwidth and packet loss.
While SRT is focused on ingesting steams from live encoders, WebRTC can help on both ends of the spectrum: delivering media to browser clients in meer milliseconds while also enabling upstreaming of live video.
With the imminent demise of Flash, WebRTC has emerged to take its place as a widely supported and effective browser based protocol for transporting live streaming video in near real-time. At the time they were created, RTMP and Flash used to be able to deliver streams at fairly low latency. However, WebRTC is far more capable of providing the high-quality performance demanded by the modern world of live-streaming.
We’ve covered the details of why WebRTC works so well in a previous post, but let’s do a quick summary:
Built as an HTML5 specification, WebRTC creates peer-to-peer, real-time media communications directly between browsers and devices via a simple API. WebRTC, an open-source project, also enjoys wide support from major players Apple, Google, Microsoft, Mozilla, and Opera. That support ensures that the WebRTC standard remains up to date and functional for the foreseeable future.
That being said, you also need…
Support for Legacy Systems
Even though Flash is going away, RTMP (the capable workhorse of live streaming) will still be around. As such, you will need to have RTMP to support older browsers/devices.
This is why Red5 Pro added failover support. When publishing or subscribing with a WebRTC application, any platform that does not support WebRTC will failover to Flash (RTMP) or HLS.
RTMP is also still widely supported as an ingest format on many encoders (both hardware and software based). So it’s still essential for a modern streaming server to support it.
In the IoT space, you will find other protocols such as RTSP and MPEG-TS (mostly important for drones, robots, and IP cameras), but also prevalent in many broadcast equipment.
While RTSP is quite an old protocol at this point, its simplicity and the fact that it shares the same transport format (RTP and SRTP) as WebRTC means it’s still incredibly efficient, dynamic and very practical in many cases. This is why we use RTSP as our preferred format for the Red5 Pro Mobile SDK and our soon to be released Embedded Linux SDK.
However, support for legacy protocols is not the only thing you need for compatibility.
Your video streaming server will need to work across a variety of different devices and browsers. How else will you grow your application and expand to new audiences?
As a web standard, WebRTC is supported by Chrome, Firefox, Safari, Edge, and Opera. More importantly, you can use mobile as well as desktop browsers. The best and most practical part is there are no plugins needed as it works directly inside web pages.
Of course, there’s also native app integration to consider. You can certainly use mobile browsers instead, but you are opening up your app to potential UI and performance issues.
Red5 Pro features full cross-device and cross-browser compatibility. Those looking for mobile support can use the Red5 Pro Mobile SDK for building native apps. IP Cameras and drones can either use Red5 Pro’s restreamer plugin, or you can soon use our Embedded Linux SDK to push streams from a whole variety of IoT based chipsets. No matter what device is used, live streams can be smoothly sent and received.
Again, in order to grow your product, it will need to have the ability to expand.
Leveraging cloud infrastructure, Red5 Pro’s Autoscaling Solution enables full scalability to millions of concurrent users. Rather than creating direct peer to peer connections between the broadcaster and subscribers, Red5 Pro configured their architecture so that each WebRTC connection is routed through a server instance (node).
Under the operating logic of a Stream Manager– a Red5 Pro Server Application that manages traffic and monitors server usage– clusters or NodeGroups– a group of one or more active server nodes– are established in the geographic regions where the streaming will be happening. Through this full automated process, the system will scale up and scale down in real time depending upon demand.
Most notably, the Autoscaling Solution maintains sub-500 millisecond latency while scaling to millions.
Latency, Speed, and Efficiency
Live video depends upon very low latency so that the subscriber can see, hear and respond to everything that is coming from the broadcaster. Any delays make for staggered and unnatural interactions.
Reducing latency requires fast protocols like WebRTC, good memory utilization, and efficient use of transcoding/CPU. Beyond just the optimization of encoding and decoding video files, there also needs to be efficient code that allows for many connections per machine. Otherwise, scaling would require running a bunch of expensive, beefy machines.
As mentioned before, Red5 Pro has under 500 milliseconds of latency. We have also spent lots of time optimizing our code for streamlined transcoding and seamless connections. As such, a smaller size machine (2CPU 4GB) can support 500 connections. Furthermore, our full benchmarks can be seen here.
No matter how well built the product is, we all need a little technical assistance. Especially when adding customizations and optimizing your app to meet your specific needs. The fact that other people have it working doesn’t necessarily help you as you struggle to get it to start.
Obviously, good tech support needs to be responsive and informative, but it also needs to be effective. Email systems can keep all your information organized and chat services are a great way to have a conversation.
Red5 Pro was built by a team of live streaming experts. Many of the current support staff were with the company back when it started in 2005 when they created the Red5 Open Source software which Red5 Pro was built on top of.
Accordingly, the Red5 Pro support staff is more than qualified to address any technical issues as they have built the software from the ground up. When paired with a support plan or custom work contract, their expertise can be harnessed to directly build your application for you or modify your existing one to suit your requirements.
Our email support and private Slack channel (available with the Growth Pro and Enterprise licenses) allow for quick and convenient communication. Even without a premium support plan, you are still gaining access to live streaming experts who pride themselves on their responsive and useful support.
The tech sector is constantly changing. Companies modify their procedures and pricing which can have negative impacts on your application. Without a flexible live streaming platform, you may have no other choice but to either accept the new, less than ideal conditions or build an entirely new app from scratch. Those options are either unsatisfactory at best or a large commitment of time and money.
With this in mind, Red5 Pro is hosting agnostic. Red5 Pro supports a variety of platforms out of the box: AWS, GCP, Azure and DigitalOcean. You can also use their flexible API to lock into any back-end and build your own solution.
This way if your hosting provider changes their pricing or something else, you can unplug your application and reconnect it on a better platform.
“One size fits all” hardly ever does.
The only way to stand out from the competition is to be different. How can you do that with a cookie-cutter solution? Conforming a pre-built product to the exact shape of your needs doesn’t always work as well as needed. You need a solution that lets you build what you want with no restrictions.
As mentioned above, Red5 Pro’s flexible API locks into any back-end enabling a great degree of customization. Existing applications can integrate with Red5 Pro to reduce their latency and increase scalability without rehauling the entire architecture. If we don’t support something out of the box we can add a new feature with a custom work contract or work right alongside your development team with a support contract.
Of course, no matter how many features a streaming platform has, none of that matters if it doesn’t work consistently. We’ve all been there at conferences where the presenter goes to show off a feature and it doesn’t work. Maybe you were even the one that was presenting.
Red5 Pro is trusted by major corporations such as Google, the New York Times, Invaluable Auctions, and many others. Even more telling is the fact that the US military uses Red5 Pro in some of their drone surveillance and command control systems. We also support long streaming sessions of 24 hours or more.
A good video streaming platform doesn’t just create a product and stop. They make adjustments, respond to customer feedback and generally work to improve everything.
Since 2005, Red5 Pro has anticipated what the marketplace needs and never stopped improving. We saw that Adobe Flash was overpriced so we reverse-engineered the Adobe Flash server. As Flash showed signs of aging, we replaced it with WebRTC knowing that consumers will continue to expect real-time video streaming.
Moving forward, we at Red5 Pro have not been resting on our low latency laurels. Not only do we continue to streamline video delivery, but we also are putting together our new Red5 Network. Using decentralized peer to peer technology technology, this hosted solution will greatly change the way video distribution is conducted across the internet. Be on the lookout for more on our newest innovation!