Softvelum team continues analyzing the state of streaming protocols. It's based on stats from WMSPanel reporting service which handles data from Wowza Streaming Engine and Nimble Streamer servers - there were 3600+ servers on average this quarter. WMSPanel collected data about more than 12 billion views.
Let's take a look at the chart and numbers of this quarter:
The State of Streaming Protocols - 2018 Q1
You can see significant increase of HLS to 65% share while other top competitors went lower.
Another interesting fact is the increase of SLDP - Q1 had more views than the year of 2017 combined.
As you know, SLDP low latency protocol is currently supported in MSE-enabled and MMS-powered web browsers for Windows, MacOS, Linux, Android and latest iOS, using our freeware web SLDP Player.
Old iPhones browsers running iOS versions before iOS17 don't support neither MSE nor MMS so if a viewer opens SLDP web player, it will not be able to play. However, we have Larix Player for iOS which supports full capabilities of SLDP protocol and also allows playing RTMP and Icecast.
Current SLDP HTML5 web player supports fallback capability which allows easily map web and iOS player. You can use default fallback scenario or you can set up custom fallback.
Default fallback
So if the browser is opened on iOS, it works like this:
Viewer opens page with SLDP web player.
When user clicks to play the stream, the browser asks the user to open it in Larix Player free app.
If the application is installed and viewer selects to play, then Larix Player app is opened and the playback starts.
Besides asking for opening the app, a viewer will see a link to download the app in AppStore - it will remain on the player. So if the app is not installed, a viewer will see the download link instead of playback.
Custom fallback
If you decided to use our player mobile SDK to build your own custom app, you may set your web player to open it instead of default SLDP Player.
We've added a few parameters to set this behavior in addition to available parameters described on web SLDP player page.
ios_failback_app_url - SLDP iOS fallback application URL. By default it's SLDP Player but you may specify any URL for AppStore app.
ios_failback_scheme - fallback scheme for non-secure connection (ws://). By default, it's 'sldp'. So if your web player has URL like ws://server.address/app/stream , it will be opened in your SLDP app like sldp://server.address/app/stream
ios_failback_secure_scheme - fallback scheme for secure connection (wss://), by default, it's 'sldps'. It works the same way as iso_failback_scheme parameter.
Having those parameters you may customize fallback behavior.
Also notice that HLS DVR streams can be added to SLDP HTML5 Player for rewinding low latency streams. Read this article for details.
Server-side Ads Insertion framework (Nimble Advertizer) is a premium functionality which requires additional payments. Please check this page to get more details about functionality and pricing.
Take a look at this tutorial showing an easy way to insert pre-rolls into live streams:
Usually customers perform decoding and encoding of a relatively small number of streams for input and output and it doesn't affect the performance of neither GPU, nor CPU. However there are cases when our customers use full power of hardware acceleration to process dozens of streams. In this case, some additional performance tuning should be done.
Nimble Live Transcoder allows re-using shared context to optimize resource usage. You may enable it by adding nvenc_context_share_enable parameter into Nimble Streamer config (nimble.conf).
Adding those parameter will enable NVENC context share which will increase the performance of Live Transcoder on high load and reduce number of NVENC-related issue.
If you'd like to manually create context cache, you may follow this article.
SRT (Secure Reliable Transport) is a UDP-based protocol that optimizes streaming performance on unreliable networks to deliver the best quality and lowest latency video at all times. The initial version was created by Haivision and now it's available as open source and it's maintained and promoted by SRT Alliance.
Softvelum products have full support for SRT technology. Nimble Streamer was the first software media server to support SRT protocol in all of its modes. Our customers actively use SRT for heavy duty projects which need media transmission across large networks across continents. Recent blog post called Reliable Low Latency Delivery with SRT+SLDP demonstrates SRT capabilities in action using the great combination of Haivision encoders and Nimble Streamer media server. Softvelum and Haivision partner to offer you reliable, low latency video streaming over the public internet with SRT.
Mobile SRT streaming
Having SRT working perfectly on server side, we now introduce SRT streaming for
Larix Broadcaster now allows streaming via SRT in Push (Caller) mode. It supports all of its features including compensating for jitter by errors correction, AES encryption and more.
This is now available in addition to existing features such as
RTMP and RTSP streaming support.
Multiple simultaneous destinations for the same stream.
Full support for YouTube, Facebook Live, Twitch, Limelight CDN, Periscope and other services.
So you may have your own CDN taking SRT input stream and also send content to Limelight and Facebook - this all can be done simultaneously using the same application.
You can try that in action using Larix Broadcaster freeware app which demonstrates all features of our streaming library. App sources are included in the SDK package so you can easily create your own apps.
You can also refer to these screenshots as example of SRT setup in Larix, it's very simple.
Go to Setting dialog (the gear icon) then click on Connections and create new connection to see this dialog.
First you define your destination URL - it will start with "srt://" and will include the server address and the port which was set up to receive SRT.
If you use encryption, you can fill in SRT passphrase field.
If you need to set more options for your SRT connection, you need to save settings, then go to Manage connections menu and click on its details to see more.