January 10, 2019

Get ready for Flash farewell and RTMP decline

In 2017 Adobe announced that they would stop supporting the Flash technology at the end of 2020.

In December of 2020 they confirmed the discontinue of Flash support and on January all Flash content will stop playing.

This announcement agitated the media streaming industry as it meant that Flash Player, a critical requirement for consuming RTMP streams in web browsers, would not be updated and distributed anymore. Major browser owners like Google, Mozilla and Microsoft released their timelines for Flash decline. Common intention is to disable Flash plugin by default in 2019 and then remove Flash completely in 2020. So with the final release of Flash and its removal from browsers, the majority of Internet users will not be able to play RTMP streams.

It’s hard to overrate the impact of Flash and RTMP streaming protocol for online streaming industry. Flash gave a flexible way to implement interactive browser applications, while RTMP gave ability to deliver video and audio to those apps. This tandem boosted the industry, showing the potential of media delivery and consumption over the Internet, opening the door to other technologies. Now we live in a world of HTML5/JavaScript web apps in MSE-enabled browsers with protocols like HLS, MPEG-DASH and WebRTC to deliver the content. As you can see in our quarterly and yearly State of Streaming Protocols reports, HLS now dominates the delivery field with nearly two thirds of traffic.

However, RTMP and Flash remain active, as you can see in the aforementioned report as well. The reason is simple: up until now RTMP was the best way to deliver ultra-low latency live streams to end-users. Neither HLS nor other HTTP chunks-based protocols could provide proper level on latency and start-up delay.

A number of areas require the streaming latency and start-up delay to be as low as possible:
  • Watching sports on your device, you don’t want to get your picture a minute later than your friends who are watching TV. The e-sports also fall under the same category. Regardless of the nature of competition you want to see what’s happening right now.
  • Betting and bidding use cases have big money at stake so you don't want to be even a couple of seconds behind the other participants to make your bet.
  • Security. surveillance and law enforcement scenarios demand to have a hand on pulse in real-time to make an immediate response in case of emergency.

So with the fade of RTMP, a lot of people will get a very bad user experience. Thus many companies are looking for a replacement. Besides the core requirement of latency and delay, new solutions must have support for new codecs and adaptive bitrate (ABR). RTMP was designed long before these elements became a must-have, so currently they are available mostly in HTTP-based protocols like HLS or MPEG-DASH.

We understand the strive of our customers for something better so our team began creating a technology which would cover all the needs mentioned above. As a transport layer, we chose WebSockets which is now the industry standard for cross-applications interaction. A lot of communication solutions have been using WebSockets for several years, so the choice for underlying foundation was not hard.

On top of that we built our media delivery layer to cover all the use cases we discussed above. This required both server-side and player-side implementation to use full advantages for this new technology for last mile delivery.

We called it SLDPSoftvelum Low Latency Protocol. As all of our products, it’s built with high performance and low resource usage in mind.

Its basic features are listed below.
  • About 2 seconds of delay between origin and player. This applies both to start-up delay and on streaming latency. This is a crucial part of SLDP.
  • SLDP is codec-agnostic. You can delivery and play whatever codec your end-user platform can play. These are H.264, VP8, VP9, AV1 and H.265/HEVC video with AAC or MP3 audio.
  • ABR support for switching between bitrates according to your network conditions. Changing channels takes just a GOP time.
  • Synchronized playback on multiple devices
  • SLDP is firewall-friendly as it uses HTTP/HTTPS.

SLDP provides full feature set for media delivery and consumption available to you with low efforts.

Let’s see what steps you will follow to replace Flash-based RTMP streaming with SLDP.

Input stream processing

Softvelum Nimble Streamer freeware media server has full support for SLDP for a server-side. This includes processing incoming streams via any of supported protocols and codecs.

If you already use Nimble Streamer for processing some live input then you’re all set and good to go further. You won’t need to do anything else to prepare your content for SLDP streaming.

If you haven’t yet tried live streaming with Nimble Streamer then first start with installing it on your server.

Second, you need to describe incoming streams. Nimble Streamer is capable of receiving published RTMPpulling RTMPpulling and receiving RTSP, process SRT streams via all existing modes, take MPEG-TS input, pull HLS and even Icecast streams. Each way has its setup procedure, follow the respective links to get it done. All operations are performed via easy-to-use web UI and it will take just a couple minutes to complete.

Most common case is taking published RTMP stream as input. Once you describe the incoming stream and push it to Nimble, it will appear in the output streams and you’ll be able to use it for playback right away. You can also take a look at other RTMP-related articles.

Take a look at RTMP setup in Nimble Streamer video tutorial to learn more about basic RTMP scenarios.

The input codecs can be whatever you have in your source stream, it depends basically on your encoder and transport protocol capabilities described on this page. At the moment it’s H.264/H.265/VP8/VP9 video and AAC/MP3 audio.

If you'd like to use multiple resolutions in your streams, check ABR setup how-to with general steps to complete that.

Stream delivery

Having your streams been set up properly via web UI, you can either use them directly for playback or build some network for further delivery. You may want to consider setting up origin server to deliver your content to several edges over various networks using appropriate delivery protocols like RTMP, SRT or any other. Take a look Softvelum usage snapshots to see how you can use SLDP with our other products. You can also check frequently asked questions to see best practices of SLDP usage and tuning.

Speaking of complex use cases, check our article in Haivision company blog describing stream delivery from Haivision encoder via SRT through delivery network to end user player using SRT and SLDP protocols. It should give a great overview of both protocols’ capabilities.

As an extension of Nimble Streamer capabilities, you can use Amazon CloudFront which has full support for WebSockets so SLDP can be delivered via this delivery network seamlessly. Take a look at CloudFront setup for SLDP delivery to learn more about proper settings. You can use any other network with WebSockets support, you can be sure Nimble Streamer can be used fine there.

Up to this point the setup wasn’t much different from any other solution. You just set up your infrastructure to get input and deliver the output to your client.

At the edge of your delivery chain (whether it’s one server or the entire network), you will get a playable SLDP stream URL which you can use on your client, both browser and mobile.

Browser playback

Now it's time to start replacing your Flash-based web player with SLDP HTML5 player.

SLDP web player is an HTML5 JavaScript app. It connects to media server via WebSockets, exchanges commands, receives media data, plays it on a browser’s MSE or MMS engine and provides control over the playback process.

We provide freeware version of SLDP web player, you can download it here and set up for your own use cases. There you can see sample JavaScript code and description of player's parameters. It works in any MSE- or MMS-enabled browser regardless of your platform, e.g. Chrome or Explorer on Windows, Chrome or Mozilla on Linux, Safari on Mac and iOS, any Android browser and more.

If you’d like to make deep customization of look-and-feel, you can obtain our web player SDK. It’s available via subscription which covers updates and technical support from our SLDP team.

Mobile devices playback

If your users need to have iOS or Android playback experience, they either use your own branded native applications by now or have some free apps from markets installed.

In the first case, you probably have some mobile app in place, so you’ll just need to add another stream receiving engine in addition to RTMP. Softvelum provides Larix Player SDK for Android and SDK for iOS. Both SDKs are available via subscriptions which cover periodical updates and technical support from our mobile development team. Having our SDKs, you’ll be able to add SLDP processing and playback to your existing apps or create brand new ones. This won’t require much efforts by your mobile developers as SDK has easy-to-use code of our Larix Player free app.

We provide free Larix Player applications available for iOS and Android. Your users can download it for free and play designated URLs. You can use player app to evaluate our SDK capabilities before purchasing premium subscription. Those apps' source code is available as part of SDKs packages too.

Further usage

So at this point you should have your RTMP playback be replaced by SLDP with our solutions to cover existing scenarios and also to provide more features like new codecs or ABR. This overview article showed the basic steps you can follow to consider SLDP as a replacement of RTMP for end-user playback for low latency scenarios.

You don't have to make this technology shift right away as RTMP is still working perfectly. However you should definitely consider researching its replacement with some new technology. And we hope SLDP will be the one you choose for production.

Please check some snapshots of Softvelum products usage to see how you can have SLDP utilized with other products of our company, including content protection, DVR, Live Transcoder and Nimble Advertizer.

If you have any questions regarding our products, feel free to contact our helpdesk.

No comments:

Post a Comment

If you face any specific issue or want to ask some question to our team,

This will give much faster and precise response.
Thank you.

Note: Only a member of this blog may post a comment.