September 30, 2019

2019 Q3 summary

This quarter our team kept improving our existing products and rolling out new ones.

Before moving to certain updates, take a look at these useful articles which give broad view on our products' capabilities:


Let's go to specific pieces, there's a lot to take a look at.

Qosifire updates and free check-up

We keep improving Qosifire live streaming quality monitoring service.


Feel free to sign up and try Qosifire in action.

Larix Screencaster for iOS

We're glad to announce our new application - Larix Screencaster for iOS. It allows capturing the screen and audio of iOS device for further encoding and transmission, and has all streaming capabilities of Larix Broadcaster. Read this article to learn more about setting up iOS screencasting.
The source of iOS Larix Screencaster will be available in the nearest release of iOS Larix SDK. So if you're a subscribed SDK customer, you'll have it as soon as it's out.

We've also updated SLDP Player for Android to add HLS and MPEG-DASH playback via ExoPlayer for convenience of usage and media testing.

Also check latest information about our mobile solutions here.

Upgrades

We always recommend our customers to keep up with our software updates and upgrade Nimble Streamer accordingly.

With recent update of Live Transcoder, we require to make upgrading both Live Transcoder and Nimble Streamer at the same time. We use FFmpeg for decoding and filtering operations and we moved from FFmpeg 3 to FFmpeg 4, hence the correlated upgrade.
So if you have Live Transcoder and you plan upgrading your Nimble Streamer, please follow this upgrade instruction.

NVENC users has had some issues with upgrading NVidia drivers. So we made this detailed instruction which we recommend using during your upgrades.


SCTE-35, DVB and Icecast processing and pass-through

We've released a number of features for Nimble Streamer and Live Transcoder to cover cases when we get some data on top of media stream.


Other Nimble Streamer updates

There were a bunch of features and updates that will be important for many customers.


Last but not least, take a look at The State of Streaming Protocols report for 2019 Q3 showing (no surprise) the domination of HLS.

We'll keep updating you with our new features and products, stay tuned.

The State of Streaming Protocols - 2019 Q3

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 4000+ servers on average this quarter. WMSPanel collected data about more than 14.5 billion views. Total view time for our server products is 2 billion hours this quarter, or 21+ million view hours per day.

Let's take a look at the chart and numbers of this quarter.

The State of Streaming Protocols - Q3 2019

You can see HLS and RTMP shares are still bouncing around 77% and 8% while other protocols shares haven't been changed much.

You may compare that to the picture of Q2 streaming protocols landscape:

The State of Streaming Protocols - Q2 2019

We'll keep analyzing protocols to see the dynamics. Check our updates at Facebook and Twitter.

If you'd like to use these stats, please refer to this article by original name and URL.

Manual ingest of Icecast metadata into RTMP via API

Nimble Streamer can re-package incoming RTMP stream into outgoing Icecast stream, it's part of our extensive audio streaming feature set. Besides just processing an Icecast stream, Nimble Streamer can handle Icecast metadata in various scenarios, from pass-through to setup via UI and passing Icecast metadata via RTMP.

Now you can also ingest Icecast metadata into any incoming live stream any time via Nimble Streamer native API call, which makes it a real-time metadata injection. Currently only "streamtitle" and "streamurl" metadata parameters are supported. Once the metadata is ingested into the live stream, that data can be used for all RTMP- and Icecast-related scenarios as shown later in this article.

1. Enable RTMP Icecast metadata


To use this real-time injection you need to enable RTMP Icecast metadata feature first.

Follow "Generating Icecast metadata from RTMP" article to set up the processing of Icecast metadata in RTMP for further usage. Basically it's a matter of one checkbox in WMSPanel UI for given server instance or for some specific application.

Once this feature is enabled, any incoming stream will 

2. Enable Nimble API


Nimble Streamer native API allows working directly with server instance in order to get its status and control its behavior in some cases.

To start using it, you need to enable it on server side via configuration file. Please follow Pre-setup section in Nimble Streamer API reference to proceed. Once you have properly set up server, you can run the ingestion.

So whatever app or server you will enable this feature for, the incoming stream will get the metadata which you later will be able to transfer and process via RTMP.

3. Perform the injection


At this point we assume that you have a live stream to ingest metadata into, let it be "live" application and "radio" stream.
Then assuming your management interface is 127.0.0.1 and port is 9999 you can make this POST call:
curl -vvv http://127.0.0.1:9999/manage/icecast_metadata/live/radio -d "{\"streamtitle\":\"News\", \"streamurl\":\"URL2\"}"
This includes /manage/icecast_metadata method with for live/radio stream and set streamtitle and streamurl metadata parameters.

If you don't need to set streamurl you can run it this way:
curl -vvv http://127.0.0.1:9999/manage/icecast_metadata/live/radio -d "{\"streamtitle\":\"News\"}"
to apply streamtitle only.

You can find more about this and other native API methods on API reference page.

Further usage


As we've mentioned before, this metadata injection API call allows adding that data into the live stream, as if it's been ingested by some encoder before that stream entered into Nimble Streamer instance. This means that you may use ingested metadata in any output RTMP or output Icecast processing use case like those:
RTMP will still carry the data outbound as you need.


Contact us if you have any questions regarding any of our features.

Related documentation


Nimble Streamer APIAudio streaming feature setRTMP support

September 5, 2019

Larix Screencaster for iOS - live streaming from any app

Softvelum provides a number of solutions for mobile streaming and playback.

Today we introduce Larix Screencaster for iOS.

Larix Screencaster application allows capturing the content of user device and streaming it to the target media server or service. The list of supported protocols includes RTMP/RTMPS, RTSP/RTSPS and SRT, you can stream AVC/H.264 and HEVC/H.265.

Install Larix Screencaster here.

The setup of streaming is similar to Larix Broadcaster, you can read documentation reference for connectivity details.

As for the screen recording part, Apple requires additional setup:
Watch this video to see an example of Screencaster setup with OBS studio



Please study these sources to perform the setup.

Let us know if you have any questions regarding Larix Screencaster or other mobile solutions.

September 4, 2019

Generating Icecast metadata from RTMP

Nimble Streamer can re-package incoming RTMP stream into outgoing Icecast stream, it's part of our extensive audio streaming feature set.
RTMP protocol has the ability to carry Icecast metadata and encoders like Omnia Z/IPStream X/2StreamS Live Legacy Encoder and some others may produce this kind of streams.
So Nimble Streamer can pass that metadata from RTMP input to Icecast output.

If you need to process the input RTMP Icecast metadata for further use in Icecast, you need to enable this capability on server or per-application level. If you want to pass the RTMP Icecast metadata through Live Transcoder, you also need to enable it.

To enable the feature globally for entire server, go to Nimble Streamer / Live streams settings menu to open the setup page and choose the required server from the drop-down list. By default, the Global tab will be opened. Here you need to select Icecast protocol to have it in the output. This will show Generate Icecast metadata checkbox which you also need to select as shown below.


If you'd like to define this separately for specific application then choose Applications tab. Click on existing application's settings or click on Add application settings button to create a new one. Its settings will be similar to those described above so you need to select Icecast among protocols and click Generate Icecast metadata checkbox.


Once you save settings and re-start your input RTMP stream, the streams in the affected applications will have the Icecast metadata. You can use it as part of Icecast streaming or for passing through Transcoder scenarios.

Notice that RTMP output streams will have the Icecast metadata regardless or the described setting. This means that if you re-publish such RTMP stream or make it available for further pulled, it will have the Icecast metadata. However if you decide to transcode the stream and keep the Icecast metadata, you'll have to follow this setup process.

Also notice the Icecast metadata ingest via Nimble API which allows using RTMP is further processing and transfer.


Contact us if you have any questions regarding any of our features.


Related documentation


Live Transcoder for Nimble StreamerAudio streaming feature setRTMP support

Forwarding RTMP Icecast metadata through Live Transcoder

RTMP protocol has the ability to carry Icecast metadata. Nimble Streamer can forward that metadata into output stream when transmuxing from RTMP to Icecast. However some scenarios may require Live Transcoder to be involved in order to transform audio. In this case the metadata from RTMP stream need to be carried through the transcoder pipeline by setting parameters in a transcoding scenario. Let's see how this can be done.

Notice that Nimble Live Transcoder is able to passthrough the Icecast metadata. Please make appropriate setup for respective protocol use case. 
If you have incoming Icecast with Icecast metadata, please follow this instruction and skip this article.
If you have incoming RTMP with Icecast metadata, you need to follow the instruction below.

Enable RTMP Icecast metadata


First, the incoming stream must have the RTMP Icecast metadata delivered. So you need to enable RTMP Icecast metadata processing as described in this article. If you don't set up the designated application or entire server processing the RTMP Icecast metadata, it will not be available for transcoder scenarios.

Set up Transcoder


In this sample scenario we use transcoder for re-sampling audio from the existing RTMP stream. You may see a decoder, then a filter to perform sampling and then an encoder.



The forwarding needs to be specified on both decoder and encoder sides. In the audio decoder element you need to check the Forward RTMP metadata checkbox to set the transcoder to take metadata into the pipeline.



Now go to video encoder element and click on Expert setup.



Here you need to check the Forward RTMP metadata checkbox to make the transcoder grab the metadata from the pipeline and make it part of output stream.

Once you save the scenario and re-start the input stream, the output stream will have the metadata which then can be used for transmuxing into Icecast or re-publishing.


Contact us if you have any questions regarding any of our features.


Related documentation


Live Transcoder for Nimble StreamerAudio streaming feature setRTMP support

September 3, 2019

Processing Subtitles in Live Streams with Nimble Streamer and Transcoder

Subtitles typically include text information for dialogue, captions, or descriptions, synchronized with the video content. In this article we are talking about DVB (Digital Video Broadcasting) subtitles which are embedded within a MPEG-2 TS or HLS stream, and also WebVTT subtitles which are delivered within HLS. Nimble Streamer allows transferring them from incoming streams into its output.

Enable the DVB subtitles processing for MPEG2TS and HLS streams


If your incoming MPEG2TS or HLS stream has DVB subtitles and you need to have those subtitles to be passed through to output MPEG-TS and HLS, you need to add the following parameter into your Nimble config:
dvb_subtitles_processing_enabled = true
Once you add it and re-start Nimble Streamer, your output HLS and MPEG-TS will have DVB subtitles if your source streams have them.

Notice that Nimble Streamer can process only one subtitle track from your source stream.

Passing DVB subtitles through Live Transcoder


If you need to transcode your streams (e.g. make multiple resolutions or put graphics on top) and keep DVB subtitles from the source stream, you'll need to make some additional changes to your transcoding scenarios. Also notice that you must have dvb_subtitles_processing_enabled parameter enabled as described above.

Let's take a look at a simple scenario which allows keeping original stream as well as make lower resolutions.


Here you see /live/source stream being processed to get /live/output_480p output stream down-scaled to 480p (via Scale filter box) and keep the original rendition as /live/output_original stream.

There are 2 ways of passing the DVB - via video and via audio pipeline. We'll demonstrate both ways.

The /live/output_original stream has video being passed through - you can see long line with blue-to-orange gradient. This way, if you have full HD stream as input, you won't waste resources decoding and encoding the content to the same rendition. But the audio is split to decoder and encoder. Let's see their settings.

Decoder settings for DVB forwarding


Encoder settings for DVB forwarding

In the source stream decoder you see the enabled Forward DVB subtitles checkbox. It enables the transcoder to grab the subtitles for processing. In audio encoder setting, you click on Expert setup section to see the Forward DVB subtitles checkbox again. Check it to make the encoder take the subtitles which were previously grabbed into the pipeline by the decoder. After saving the transcoder scenario and re-starting the incoming stream, the output will have the DVB subtitles in the result stream.

The /live/output_480p stream has audio being passed through while video is transformed to lower rendition. So here we use video pipeline to pass DVB subtitles. It's set up the same way - both in decoder and encoder elements. You need to check Forward DVB subtitles checkbox in video decoder and in video encoder settings under Expert setup section. As in case of audio, once you save the scenario and re-start input stream, the output will have the initial DVB subtitles.


Enable the WebVTT subtitles processing for Playout generated streams


Following our customers’ feedback, we continue our work on adding WebVTT support for Live Streams. Currently, you can produce a live stream with WebVTT subtitles from VOD files via Playout. To preserve these subtitles for Transcoder processed streams, use the “Forward WebVTT subtitles” checkbox in both decoder and encoder settings.

Set forwarding WebVTT subtitles in encoder settings




Please also check Subtitles digest page to see what else Nimble can do for you.


Related documentation


Live TranscoderMPEG2TS streamingHLS streaming