December 28, 2016

December news

The year of 2016 is almost over so prior to posting a year summary we'd like to highlight some significant updates from December.

Live Transcoder

Live Transcoder decoding and encoding capabilities were improved:

We've also added an article about setting constant bitrate for transcoding with x264.

This all improves efficiency and overall user experience of our Live Transcoder.

Nimble Streamer

Nimble has interesting update for ABR. You can now add multiple language streams into ABR stream. So you can combine N video and M audio streams for further usage in any player.


Icecast

Icecast live metadata can now be added to any outgoing Icecast stream using WMSPanel UI. Read this article for details. This is a good addition to existing Icecast metadata pass-through.

Read about more audio streaming scenarios supported by Nimble Streamer.


Larix mobile SDK

Larix mobile SDK has been updated.

Android SDK has several new features:

  • Set custom white balance, exposure value and anti-flicker;
  • Long press preview to focus lens to infinity, double tap to continuous auto focus.
  • Use volume keys to start broadcasting;
  • Use a selfie stick  to start broadcasting;

iOS SDK has minor fixes and improvements for streaming.

Use this page to proceed with SDK license subscription.



In a few days we'll also release a yearly summary of our company. 


Follow us at FacebookTwitter or Google+ to get latest news and updates of our products and services.

The State of Streaming Protocols - 2016 summary

Softvelum team which operates WMSPanel reporting service continues analyzing the state of streaming protocols.

As the year of 2016 is over, it's time to make some summary of what we can see from looking back through this past period. The media servers connected to WMSPanel processed more than 34 billion connections from 3200+ media servers (operated by Nimble Streamer and Wowza). As you can tell we have some decent data to analyse.

First, let's take a look at the chart and numbers:
The State of Streaming Protocols - 2016
You can compare that to the picture of 2015 protocols landscape:

December 27, 2016

Adding multiple audio tracks for ABR HLS live streams

Live streaming scenarios of Nimble Streamer include ABR (adaptive bitrate), it can be accomplished via HLS and MPEG-DASH.

Previously we introduced ability to use multiple separate video and audio tracks in same VOD stream. 

Now we've added multiple audio tracks support for live ABR streams. This allows assigning audio streams from any incoming source to ABR streams and define corresponding properties to each of them. Once such stream is defined, a player may provide the audio track selection in order to get proper audio stream.

Let's see how it's set up.

December 26, 2016

Setting constant bitrate for x264 encoder

Live Transcoder for Nimble Streamer has wide range of transcoding capabilities which include H.264 encoding with x264 library licensed for commercial usage by our company so any customer with our Transcoder may use x264 parameters to set up outgoing stream.

This article answers a popular question of our customers - "How can I set up constant bitrate for my streams?" - using x264 encoder settings. This encoder is also known as libx264.

Let us give a couple of short answers and then a full description.

December 19, 2016

Append metadata to Icecast streams

Nimble Streamer has an extended audio streaming feature set for both live and VOD. Live audio streaming covers both transmuxing and transcoding of Icecast pulled and published streams.

In addition to just transmuxing and transcoding audio, Nimble now allows adding any metadata to any outgoing Icecast stream. So any player capable of Icecast playback and metadata processing will show respective info during the playback.

Let's see how you can do that.

December 13, 2016

NVENC context cache for Live Transcoder

Nimble Streamer Live Transcoder has full support for NVidia video transcoding hardware acceleration.

Some complex transcoding scenarios may result excessive load on the hardware which may affect the performance and result errors. So you may find the following lines in Nimble Streamer logs: "Failed to encode on appropriate rate" or "Failed to decode on appropriate rate".

This is a known issue for NVENC. In order to overcome this, we created NVENC contexts caching mechanism. It creates encoding and decoding contexts at the start of the transcoder. So when the encoding or decoding session starts, it picks up the context from the cache. It also allows reusing contexts. 

The following nimble.conf parameters need to be used in order to control NVENC context. Read this configuration guide for more information about Nimble config.

December 12, 2016

Specifying decoder threads in Live Transcoder

Nimble Streamer Live Transcoder allows performing various transformations over incoming video and audio streams.

Any incoming stream needs to be decoded before any further transformation unless you use a pass-through mode. The decoding may be either hardware-based (such as NVidia GPU decoding supported by Live Transcoder or Intel QuickSync) or software-based.

Software decoding may be optimized in order to use processor resources optimally. This is why the Transcoder allows using multiple threads for video decoding.

By default the decoding is performed using one thread for one stream on one CPU core. If the decoding doesn't consume entire core, more threads are added into that core.

However, in some cases one core in not enough to decode one stream. If you look at Nimble logs you will see messages like
Failed to decode video in appropriate rate
This means you need to run one decoding thread on several cores - this is where multiple threads are used.

Notice that before adding new threads, make sure your CPU is not 100% loaded before adjusting threads number.

December 8, 2016

NVENC decoder in Nimble Live Transcoder

Nimble Streamer Live Transcoder has full support for NVidia video transcoding hardware acceleration. Having the hardware capable of the processing and drivers properly installed, our customer can choose NVENC to handle processing.


NVidia® Products with the Kepler, Maxwell and Pascal generation GPUs contain a dedicated accelerator for video decoding and encoding, called NVENC, on the GPU die. You can take a look at the list of NVidia GPUs capable of that.

We've previously described the NVidia encoding setup. Now lets see how hardware-based decoding can be used.

In the transcoding scenario you need to point to video decoder blue rectangle (with a film on it) and then click on appeared gear button.


You'll see decoder settings dialog. In the Decoder drop-down list it will show "Default" option. This is a software decoder used by Nimble Transcoder by default.



To use GPU decoder, choose NVENC from from list. This will pick up NVidia GPU to take action.

The GPU field is a number which allows specifying the sequential number of physical GPU to process the decoding. So if you want to specify exact GPU to decode specific stream, you need to type the number, e.g. 0, 1 etc. for as many GPUs as you have. 

Many Nvidia GPU cards have encoding sessions count restricted to 2 active sessions, the decoding sessions are not limited. So you can use even GTX card to help the transcoder to decode with no limitation.

If you'd like to use software decoder though - please check this article.
We keep improving our transcoder feature set, contact us for any questions.

Related documentation



NVIDIA, the NVIDIA logo and CUDA are trademarks and/or registered trademarks of NVIDIA Corporation in the U.S. and/or other countries.