August 11, 2020

SRT playback protection and stats

Nimble Streamer has had SRT support since the protocol's inception and our team keeps adding new SRT features into our products.

We see a growing demand for SRT playback using various solutions including Softvelum Larix Player for Android, Android TV, iOS and tvOS. So our customers want to see two major features which they already have for other playback protocols.

Those familiar features are:

So our team followed the feedback and made support for these features.

We've made those features available via Addenda so you'll need to subscribe for this premium package for as long as you need them. Notice that Addenda also covers SRT Publisher Assistance Security Set which allow controlling the publication process via SRT.

Please make sure you subscribe and register an Addenda license on your Nimble server before moving forward.


SRT listener settings


To make reporting and paywall features work, you need to set up SRT listener properly. We assume you are already familiar with SRT setup in Nimble so we'll show just specific settings.

Go to your SRT output settings at Live streams settings menu UDP streaming tab and either create a new stream or edit an existing one.


Listen is currently the only supported mode for this feature set so you need to select it in Mode drop-down.

All other fields' values are defined just like you would do for regular playback. The Local IP and Local port for connections, Source application name and Source stream name for defining the source as well as latency and maxbw parameters for proper error recovery.

nimble-srt-report-stream-name is the new parameter which you need to set up to make this feature work. This parameter's value defines what will be the name of that stream: all playback sessions will be reported under that name and your paywall settings will also use it.

It's set as <app name>/<stream name>. In our example it's live/srtstream.


Viewing statistics in WMSPanel


When your viewer connects to a previously configured SRT listener, one connection will be reported into your stats. If you have several ports opened for different listeners with this feature enabled then you'll see several simultaneous connections.

You'll have these connections counted in all other reports of WMSPanel, such as daily stats, geo-location, streams stats, in-depth streams reports, unique visitors and others.

If you create separate listeners on separate ports but use the same nimble-srt-report-stream-name then both connections will be registered (counted) under that same stream name. This way you can combine data for a single content publisher.

If you have a stream with the same name available via different protocol, then their stats will be combined too. They'll also be show under different columns in daily stats, like you see on a screenshot above.

Multipoint listeners

Nimble streamer supports multipoint listeners option which means that more than one viewers can connect to the same port, and in case of this feature - to the same stream. If you'd like to enable multipoint, read "One-to-many multipoint listener" section in this article.

From statistics perspective, if you create a multipoint listener and 2 viewers connect there then 2 connections will be registered in our reporting.


Paywall support for SRT playback


With nimble-srt-report-stream-name set, a number of features from Softvelum paywall become available for that specific listener:

They are set up the same way as you do for other protocols, follow links above to see detailed instructions. The specific thing for SRT is that you need to specify app name and stream name according to nimble-srt-report-stream-name value. That is <app name>/<stream name> so you put app name into Application field and stream name into Stream field as shown below.

One limitation for paywall is that user agent and referrer restrictions do not apply to SRT.

All other features and approaches described on respective pages and in our paywall FAQ fully apply to SRT. For example, as described in Q6 you can allow stream for just one country and forbid for all others by defining the country in allow list and setting any non-empty password, with SRT checkbox enabled:



If you try playing this SRT stream, you won't be able to do it and you'll see "failed to accept srt socket" error in Nimble log.

That's just one example, visit Paywall page for more information.

Hotlink protection and PPV

This feature is set up the same way as you would do it for HLS or other protocols. You'll need to set up WMSAuth rule with password, then provide your viewers with a URL to your stream with a signature which is based on password and other parameters. Read this page to get all details and to get code examples.

Once you get a signature you will need to add it into your stream URL at streamid parameter this way:

srt://<ip>:<port>/?streamid=wmsAuthSign=<signature> 

Here's an example of running srt-live-transmit this way:

./srt-live-transmit srt://127.0.0.1:2020/?streamid=wmsAuthSign=c2VydmVyX3RpbWU9MDgvMTEvMjAyMCAwMzoxNzowMSBBTSZoYXNoX3ZhbHVlPVZvak5wT3RvSDJWaHJ1UW1UNUdDaHc9PSZ2YWxpZG1pbnV0ZXM9MTA= file://con > /dev/null

You may generate that signature on your website where people open your link with our Larix Player for Android and iOS which handles srt:// deep links\ to open them for playback. Or you can use your own method of delivery to give this link to your viwewers.

Pay-per-view framework is also set up the same way as for other protocols, with the signature placed into the URL at streamid as shown above.


That's it. Please subscribed for Addenda license to use this feature and if you have any questions pelase contact our helpdesk.


Related documentation