March 3, 2023

WebRTC ingest support in Larix Broadcaster

Larix Broadcaster mobile apps for Android and iOS have become very popular among live streaming community in the last several years and they are widely used in all sorts of scenarios and setups.

It has one-of-a-kind set of connectivity features which includes the support for SRT, RTMP, RTSP and RIST, allowing for multiple simultaneous connections to several destinations. It also supports Talkback, pause and stand-by modes, audio-only streaming and more.

Now we introduce WebRTC support via WHIP signaling in Larix Broadcaster.

You may ingest WebRTC into any software capable of processing it via WHIP. This includes the following names:


Feel free to install Larix Broadcaster and try it now:

Please contact us if you've also tested Larix WebRTC with your server or service. WHIP signaling becomes one of the industry standards, so we all need to make sure of full interoperability between solutions.

If you'd like to integrate WebRTC ingest in your streaming app, check our mobile SDKs:
and subscribe in case you want to try.


Larix Broadcaster uses Pion implementation of WebRTC API.
Softvelum extends a special thanks to Sean DuBois and all Pion contributors.

February 13, 2023

Introducing changes to Nimble Streamer licensing

TLDR: Each instance of Nimble Streamer starting version 4 must be registered in WMSPanel

Our team started the development of Nimble Streamer in December of 2012 and released it in early 2013. We started this product to respond to the needs of the streaming industry. People needed an affordable tool which could help them solve their basic streaming tasks at a low cost. So, we responded by creating a basic smart caching streaming server which we called Nimble Streamer. And we put it out as a freeware: people could use the server for free and pay only for extra web service for setup and stats.

Now, a decade later, Nimble Streamer is a multi-functional software media server which is used by thousands of organizations across the globe in all kinds of verticals. It’s one of the few software products on the market capable of building full-featured streaming infrastructure.

Over the years the cost model has always remained the same: it was a freeware and people paid us for Nimble instances only if they needed the web UI of WMSPanel or add-ons like Transcoder and Addenda. The users without WMSPanel paid nothing while getting all updates, features and bug fixes via publicly available repositories. This zero-cost model persisted despite the fact that Nimble was continuously evolving into a much bigger product which required more people to develop, maintain and improve the quality.

It's time to make change.

We’ve been reluctant to change the freeware licensing for the past decade, however, it’s time to move forward.
  1. Starting from version 4, any Nimble Streamer instance must be registered in an active account of WMSPanel.
  2. All new features, improvements and bug fixes will be added only in Nimble version 4.x.
  3. If the WMSPanel account has been removed due to the end of trial period or subscription deactivation, then Nimble Streamer must be uninstalled or downgraded to version 3.

What about active WMSPanel customers with paid accounts?

Nothing changes for our existing subscribed customers. If you have an active WMSPanel subscription, this will not affect you. We want people to use Nimble Streamer instances with WMSPanel, so if you do, you’re all set. You may use any version of Nimble Streamer with your WMSPanel account.

What about existing standalone Nimble instances of version 3.x or older?

A lot of people use Nimble Streamer versions 3.x without WMSPanel because it just works fine for them. That’s good, so keep using version 3, it will remain fully operable.

We want to make sure that your existing workflow doesn’t break just because our licensing has changed in the background, however, if your server auto-upgrades to 4.x please downgrade it back to any 3.x version.

The 3.x branch will still be available for download and usage. And if you occasionally upgrade to version 4, you can always downgrade back to 3.x branch.

If you want to run the latest supported version or want our team’s support, please register a WMSPanel account and subscribe with whatever instances you have in your fleet.


What if my Nimble instance cannot be registered in the WMSPanel?

Contact us to see if we can provide you with some activation options for that case. 

When will these changes be applied?

Version 4 of Nimble Streamer will be released in early March of 2023.

Any other questions?

Please contact us if you have any questions or concerns about this new licensing model.

December 11, 2022

License API and deferred payments for Transcoder and Addenda

Nimble Streamer has premium add-ons which require additional licenses to operate. Those are Live Transcoder for content transformation and Addenda for various features like DRM, Advertizer or SRT PASSet.

You can create those licenses at the time of your first subscription or later on whenever you need them at any moment of your billing period. You also need to make payment in order to activate - either during your first subscription or any time during billing period once you need them.

This is not convenient in many cases especially when you create some automation process where you cannot log into WMSPanel every time you make a license.

So we made two big adjustments for those of our long-time trusted customers who want to utilize more licenses:

  1. You can defer first-time license payments to your next billing date.
  2. You can create Transcoder and Addenda licenses via API.

Let's see what you can do now.


Defer your payments

In order to start working with a new Transcoder server you need to create a license for it and activate it.

Usually you activate the license by making one-time payment proportional to the cost of monthly license (50 USD) and to a number days left until the expiration date of current license (basically days left until WMSPanel monthly payment).

Now eligible customers may request the alleviation of this policy. If you're a long-time customer with active usage of Transcoder, you may request us to defer these payments. Some existing customers have already been enabled this feature.

Addenda is already available for deferred payments for all subscribed customers.

This deferment works like this:

  1. When you create a license you may choose to defer payment by clicking on "Activate and pay later".
  2. The license is then activated and you can use it right after that.
  3. The deferred payment amount is put into your account billing.
  4. At the next payment date, that amount will be charged along with other expenses for the next billing period.
  5. Those expenses will include license' regular price of 50 USD unless you cancel it.

This way, you will not need to pull out your credit card each time you need to create a license.

Contact us to see if your account is eligible and to enable this capability.


API for licenses 

With the deferred payment enabled, you can make another step and create your licenses using our WMSPanel API as described in these calls' descriptions.

So what you need to do is 

  1. make an API call which creates a license,
  2. get this license ID in response,
  3. register this new license for your server.

That's it, you can now either manually create a new scenario for this new server, or use API to operate Transcoder scenarios on that server.

This allows automating a lot of processes related to Nimble Streamer functionality.


Contact our team if you have any questions about this approach and if you'd like to enable it for your account.

November 28, 2022

AV1 support for VOD MPEG-DASH streaming via Nimble Streamer

Nimble Streamer has extensive VOD feature set. It allows dynamically re-package static files into VOD HLS and MPEG-DASH streams. MPEG-DASH protocol has been fully supported by Nimble for a long time, allowing to reach wide range of devices with various codecs on board.

AV1 codec has been introduced to the public a few years ago and has grown into a mature technology with help of industry leads. It's supported in all major browsers which makes it pervasive across the web.


Now, following the requests of our customers Nimble Streamer team has implemented AV1 VOD transmuxing into the product. Having MP4 files containing AV1 content, you can set up Nimble to process these files and generate MPEG-DASH output.

Follow MPEG-DASH VOD transmuxing setup article to set up Nimble Streamer to generate AV1-powered VOD streams.

Other VOD-related standard features  of Nimble Streamer applicable for DASH are supported as well.

Remote HTTP storage support allows to effectively stream files, those size exceeds available file system capacity. An AV1 files can be processed via remote storage as well. You may also make adaptive bitrate VOD streams using SMIL files. The generated streams can then be protected with Paywall feature set, including pay-per-view framework, hotlink protection, geo-lock and more.

In addition to Paywall, you can encrypt AV1 content with Widevine using Nimble DRM. You may use any DRM management solution supported by Nimble to protect your streams.


Feel free to let us know of your experience with AV1 and share your thoughts on its usage with Nimble and beyond.

Related documentation

VOD streaming in Nimble Streamer, MPEG-DASH support in Nimble StreamerMPEG-DASH VOD transmuxing setupNimble DRM


October 12, 2022

CEA-608/708 subtitles support in SLDP

CEA-608/708 closed captions are now supported in SLDP low latency playback protocol by Softvelum, in both Nimble Streamer and SLDP HTML5 Player.

The pipeline works as follows:

  1. Closed captions are delivered in NAL units of your content via any live streaming protocol supported by Nimble Streamer, including SRT, RTMP, MPEGTS and others.
  2. Nimble Streamer delivers the content via SLDP as usual.
  3. SLDP HTML5 Player recognizes subtitles in the stream.
  4. End user may enable subtitles display and watch video with closed captioning.

Notice that subtitles processing works only with SLDP Player SDK which is available as a premium product. Learn more about HTML5 Player SDK here. You can subscribe to SDK in order to generate the package for your domains and get our team's support going forward.

You can try this feature with our players testing free page before purchasing the SDK.


Let us know if you have any questions about closed captioning in Softvelum products.

October 10, 2022

HEVC support in Chrome

Bitmovin has recently pointed out that Google Quietly Added HEVC Support in Chrome. Also, Jan Ozer made an analysis of current state of HEVC support. This means that it should be able to process HEVC live and VOD content via MPEG-DASH and HLS. So our team has run tests on all available devices to make sure it work as the expected.

We found the following conditions work fine for HEVC playback in Chrome:

  • You have the latest Chrome browser (at least version 107)
  • Your device has hardware decoding of HEVC

The latter point proved to be important as not all devices has built-in decoding capabilities for HEVC.

With the above conditions met, we could play HEVC on Windows, Linux, Mac, Android and iOS.


Re-package with Nimble Streamer

On Nimble Streamer side we've added HEVC support a long time ago so. You can do various processing and delivery combinations.

For HEVC VOD content file you can simply perform on-the-fly re-packaging into VOD MPEG-DASH and into fMP4 VOD HLS. Notice that fMP4 container in preferred for HLS HEVC playback.

For live streams, you can take streams via any incoming protocols which support HEVC, those are RTSPMPEG-TSSRTRIST from any source. You may also send HEVC via RTMP as non-standard feature. If you use Nimble Streamer to receive input from WebRTC source with WHIP signalling you can send WebRTC with HEVC from Apple devices.

As an output you have MPEG-DASH and fMP4 protocols:


Encode with Nimble Live Transcoder

If your live source provides the content encoded with other supported codecs, you can transcode it with Nimble Live Transcoder, a premium add-on for Nimble.

From Live Transcoder perspective, HEVC is just another codec to provide as output. Currently HEVC can be encoded with the following libraries:

Having the content encoded with HEVC codec, you can deliver it to Chrome with MPEG-DASH and fMP4 HLS protocols as described in re-packaging section above.


Take a look at Nimble Streamer HEVC support digest page for other details.


September 19, 2022

Play audio-only SLDP with Opus on iPhone

When using WebRTC as a source of your content, you need to consider that the audio codec for that protocol is Opus. So in order to play sound on a user device side, the streaming provider has two options.

The first option is to transcode it into commonly used AAC codec. It's a default option for many customers and we describe the transcoding in our WebRTC setup video and WebRTC to MPEGTS UDP video.

The second option is to pass Opus content through into the player without transcoding. In this case the protocol must be able to contain this codec. SLDP - low latency playback protocol from Softvelum - is able to carry Opus.

The playback though will depend on the platform your consumer uses.

Video+audio SLDP with Opus can be played in Windows, Linux and Android browsers via HTML5 SLDP Player, and also using native Larix Player for Android and Larix Player for iOS.


Opus on iPhone

Apple's platforms have limitations on Opus playback using system components. So out-of-box, it's impossible to play any video with Opus audio there.

This is why we made a step forward and created our own playback implementation there.

Opus audio can be played in iPhone browser in audio-only mode using SLDP HTML5 Player. You can embed the web player and play audio streams.

So when you're receiving audio via your WebRTC input you can avoid additional transcoding and play it directly with the lowest possible latency.


Premium feature from SDK

Notice that Opus audio-only playback in iPhone is a premium feature available only as part of SLDP HTML5 Player SDK. Feel free to subscribe in order to get access to this and other capabilities of SLDP web player.

Related documentation

WebRTC publish setup in Nimble StreamerSLDP low latency playback protocol, Audio streaming in Nimble Streamer, WebRTC processing in Nimble Streamer, Softvelum players,

August 30, 2022

SEI metadata insertion support in Larix Broadcaster

Larix Broadcaster can now insert SEI metadata into SRT, RTMP and RTSP streams. It also allows specifying NTP server for get precise time.

This allows synchronizing live streams published from Larix Broadcaster using any software or hardware capable of SEI sync up.

Learn more about time synchronization in Softvelum products 

Also watch video tutorial showing Larix Broadcaster generating live streams with SEI, and Nimble Streamer producing synced-up NDI outputs:






August 8, 2022

SRT bonding and libsrt 1.5 in Nimble Streamer

Nimble Streamer has a wide SRT feature set which covers multiple capabilities. Our team has been an active contributor and a platinum member of SRT Alliance so we follow up closely with all updates.

At the moment Nimble uses libsrt version 1.4.4 by default when you install SRT package, however we continuously monitor new versions and features. So we wanted to give a try to the latest update.

libsrt 1.5

Now Nimble allows using libsrt 1.5.0-2 as an option on Ubuntu 20 and 22.

If you want to try it with the latest Nimble build, use SRT package installation procedure with this command to install SRT package:

sudo apt-get install nimble-srt-1.5

You can always install "nimble-srt" package to get libsrt 1.4.4.


Bonding

With version 1.5.0, libsrt provide a new major feature set for Connection bonding.

Nimble Streamer allows enabling SRT bonding as provided by libsrt.


This capability is enabled by adding "srt-bonding-enabled" parameter with "true" in MPEGTS In setting for incoming SRT connection:



If any of our customers have SRT sender software or hardware capable of bonding, please feel free to try it with Nimble Streamer and let us know how it works, your real-life feedback is always valuable for us.


Learn more about SRT features of Nimble Streamer and SRT capabilities of other Softvelum products.

August 7, 2022

Pull SRT by streamid with RTMP-style app and stream name

SRT (Secure Reliable Protocol) has a lot of features that make it a reliable replacement for other delivery protocols like RTMP or RTSP. One of the features that RTMP or RTSP users enjoy is the ability to pull media streams from the source media server by their application name and stream name via single port. This gives a lot of flexibility for both source and recipient parties.

Nimble Streamer now brings that convenience of RTMP to SRT.

When providing output SRT streams via Listen mode, Nimble allows the following setup.

  • Live streams input is set up from any protocol like SRT, RTMP, NDI, MPEGTS UDP, streams from Live Transcoder or any other described here. The respective output streams are available for further usage as described in our tutorials.
  • SRT output with Listen mode is set with Use stream ID option for sources, as shown below.
  • The receiving party uses SRT streamid parameter defined as "appname/streamname" just like in RTMP pulled streams.
  • Nimble generates the SRT output using the live stream which was requested in streamid parameter.

So having just one IP address and one port, Nimble can serve multiple output streams just as the receivers are requesting.

This feature is part of Nimble Addenda package and it requires active Addenda license registered on Nimble server instance.


Setup process


Before moving forward, you need to enable this parameter in nimble.conf and restart Nimble instance:

srt_multipoint_listener_enabled = true

Read this page for more details about changing parameters of Nimble Streamer.


We assume you already have some incoming stream to process. E.g. you have some RTMP encoder publishing content into Nimble Streamer and it's available in Nimble via "live" application name and the incoming stream as "output" stream name.

To set up SRT part, go to Live streams settings menu, choose UDP streaming tab.

Just like for regular SRT output, click the Add SRT setting button.

In the new dialog, choose Listen mode - as this feature is working only in Listen - and specify local IP and port. We recommend using All interfaces selection (0.0.0.0).

Besides other parameters, select Use stream ID radio button. This will set Source app and stream  name to {STREAM_ID} placeholder which means the streamid parameter will be used to determine the source stream.


You can read more about other options in SRT output setup.

Once you save settings, they will be applied to the server within a few seconds.

That's it, you can now pull streams via SRT in Caller mode with proper streamid.


Usage


Let's see a couple of examples or obtaining the stream with proper streamid parameter.

First, here's an example of an srt-live-transmit tool getting the stream and playing it:

./srt-live-transmit "srt://192.168.0.114:2022?mode=caller&streamid=live/output" file://con | ffplay -

You can see it requesting SRT stream with streamid containing app and stream name (streamid=live/output).


Here's how the SRT stream setup may look like in Larix Player mobile app which supports SRT playback in all modes for both Android and iOS.


You can see IP and port of media server, SRT is set in Caller mode and then streamid parameter is set to "live/output".


Feel free to use this feature set for providing SRT streams.

Let us know if you have any questions about this feature.


Related documentation

Nimble Streamer SRT capabilities, SRT Publisher Assistance Security SetNimble Addenda