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. 

November 30, 2016

November news

We've made a few significant updates in November.

First, Larix mobile SDK for iOS has been updated with a new feature - Auto Focus Lock (AF-L). Just long press anywhere in the preview, and AF is locked until you tap to re-focus.
Use this page to proceed with SDK license subscription.

Nimble Streamer has a few updates as well.


Published Icecast streams can now be processed in Nimble Streamer. Read this article to see how it's set up and find out more about audio streaming scenarios supported by Nimble Streamer.

If you face any artifacts when publishing streams via UDP to Nimble Streamer, read this post describing the steps to avoid them.


WMSPanel non-admin users can now be granted permission by account admins to control Nimble Streamer instances. Please read this article for more details.

Last but not least, if you use WMSPanel API to control Nimble instances, you may set up threshold notifications to be alerted when you make too many API requests and are close to reach the calls limit. Visit this page for details.



The last but not the least update: check the State of Streaming Protocols for November 2016.


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

The State of Streaming Protocols - November 2016

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on ~3.7 billion views. The stats are collected from 3100+ media servers (Nimble Streamer and Wowza).

Protocols share remain stable, i.e. HLS share is about 77% with RTMP around 12% and progressive download near 5%.

The State of Streaming Protocols, November 2016

You can compare that to October stats below.

November 16, 2016

Processing published Icecast in Nimble Streamer

Nimble Streamer has wide audio streaming feature set which includes both live and VOD. Live audio streaming covers both transmuxing and transcoding of Icecast pulled streams.

Now we're expanding this feature set by supporting the published Icecast sources which have MP3 or AAC codecs.

Current solution was tested with a number of existing Icecast publishing solutions, some of them are as follows:


Those tools' configuration files and sample playlists can be found in a separate githib repo in our account.

In our case the standard "source" login is used and the password is "secret" - just for demo purposes.

Let's see how it's set up for Nimble Streamer using WMSPanel.

November 15, 2016

Nimble Streamer control for non-admin WMSPanel users

Nimble Streamer can be controlled in two ways. First one is to change config files, the second one is to use WMSPanel as a web UI.

WMSPanel is the easiest way to manage your streaming infrastructure based on Nimble Streamer. You can access via any browser and apply settings to multiple servers.

Usually only account admins could control Nimble Streamer behavior. Now, WMSPanel allows those admins to give permission to non-admin users for controlling Nimble Streamer instances. You can specify which servers they may control and then set up white label access to WMSPanel to change the look-and-feel on the panel in order to make it look like you need.

Let's see how you can give that access.

October 31, 2016

October news


October brought some good news for our customers.

First of all, we're honored to see Nimble Streamer as a finalist of Streaming Media Europe Readers Choice Awards in the "Best Streaming Innovation" nomination. We thank everyone who voted for us and hope to get more highlights by the industry press in future.

Speaking of industry  highlights, we are glad to see Radiant Media Player team now considers Nimble Streamer as fully supported media server. You can see us among the partners of this excellent solution.

Live Transcoder


Nimble Streamer Live Transcoder now has full support for NVidia hardware encoding acceleration via NVENC for H.264. It's available for both Windows and Linux platforms.
You can read this article for more details about the setup and capabilities.

Our customers report on huge off-load of their CPU when using GPU via our Transcoder.

Nimble Streamer


Nimble has improvements for both VOD and live scenarios.

When setting up origin-edge delivery configuration with RTMP delayed pull option, you may experience some delay on the viewer side starting the playback from edge. We've added a new option for origin side which you can use for decreasing the buffer. Read this article for more details.

Audio-only and video-only transmuxing for ABR VOD HLS is now supported. You will use SMIL files for that purpose, read this article for more details.

Mobile SDK


Larix mobile SDK was improved for both iOS and Android.


  • iOS SDK now has Larix sample application with Swift 3 support along with improved audio quality.
  • Android has streaming enhancements as well as sound Mute support.


Latest versions of SDK packages will be sent to our customers this week. Subscribe here to get those in case you haven't done it yet.


Dispersa

Our media streams monitoring service has a few updates as well

When you make setup for streams check-overs, you can now select to alert on email and push API when at least one checkpoint reports offline or when all checkpoints report offline.
For your convenience the subject also now contains stream name with checkpoint names, like "Stream offline alert (1/6) - Nimble Promo Video AMS1"



The last but not the least update: check the State of Streaming Protocols for October 2016.

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

The State of Streaming Protocols - October 2016

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on 3.7+ billion views. The stats are collected from 3000+ media servers (Nimble Streamer and Wowza).

Protocols share remain stable, i.e. HLS share is about 75% with RTMP around 12% and progressive download near 6%. MPEG-DASH is ahead of SmoothStreaming, both having less than 1%.

The State of Streaming Protocols, October 2016

You can compare that to September stats below.

October 25, 2016

RTMP delayed pull buffer improvements

RTMP-related feature set of Nimble Streamer allows creating various streaming scenarios with your infrastructure. One of them is delayed pull, or pull by request. It allows saving bandwidth when some stream is not consumed by viewers.

When a viewer requests an edge server for some stream - e.g. via HLS - this edge will start pulling RTMP stream right at that moment. So the origin will give the stream only when it's needed. You can read more in this article.


Usually it takes some time to start the playback on viewer side so we added an enhancement for this scenario. You can now specify RTMP buffer items count on origin so the edge could get bigger buffer to provide it to the player.

So the player will get several chunks almost immediately and start playback in a second without buffering.

To make this work, follow these steps.

1. Upgrade your edge and origin Nimble instances.

2. On your origin, open nimble.conf and add
rtmp_buffer_items = 4096

3. Restart origin server.

Now, once the edge requests origin it will get 30 seconds buffer immediately and will start the playback.


Related documentation


Live Streaming features in Nimble, Live Transcoder for Nimble Streamer, RTMP feature set, Build streaming infrastructure with Nimble Streamer, Achieving low latency for live streaming using Nimble Streamer,

Streaming Media Europe Readers' Choice Award 2016

As you know, Streaming Media is the leading magazine in the online streaming industry. We've been visiting their conferences - Streaming Media East and Streaming Media West - for several years so far and we're excited to participate in their activities.

Now we're honored to have Nimble Streamer as a finalist of Streaming Media Europe Readers Choice Awards in the "Best Streaming Innovation" nomination!



Thanks to everyone who voted for us!

October 20, 2016

NVidia NVENC settings in Nimble Streamer Live Transcoder

NVidia® Products with the Kepler, Maxwell and Pascal generation GPUs contain a dedicated accelerator for video encoding, called NVENC, on the GPU die.

NVENCODE API enables software developers to configure this dedicated hardware video encoder. This dedicated accelerator encodes video at higher speeds and power efficiency than CUDA-based or CPU-based encoders at equivalent quality. NVENCODE API allows the programmer to control various settings of the encoder to set the desired tradeoff between quality and performance.

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

You can take a look at the list of NVidia GPUs capable of hardware encoding acceleration. To make HW acceleration work, you need to install the graphic card drivers into the system. Use this link to download and install them.

If you haven't yet installed Nimble Streamer transcoder, use this page to find proper setup instruction.

The transcoding scenarios are created using our excellent web UI. You can check this YouTube playlist to see how various use cases are defined. Takes just couple of minutes to complete.


October 17, 2016

Re-sampling audio with Nimble Streamer Transcoder

Nimble Streamer Live Transcoder gives wide range of capabilities to transform both video and audio. Audio features allow doing various complex actions on sound as well as do some one-step actions like audio re-sampling.

Let's see a sample scenario shown below.

First, you see a passthrough of video just because this demo is for audio.
Then you see audio stream input and audio output with AAC encoder.


In between a custom filter added. Here are the details:

October 13, 2016

Audio-only and video-only transmuxing via SMIL files

Nimble Streamer handles VOD streaming in various ways, one of them is doing ABR VOD using SMIL files.

With the latest update, you can use SMIL to specify separate tracks in MP4 files which will be used transmuxed specifically with only audio or video. This allows lowering the

To illustrate this approach, let's take a look at audio-only use case. We have "bigbuckbunny_450.mp4" file with audio we want to use and video track. There are bunch of other files with different video renditions, without the audio.

Check the sample SMIL file below.

September 30, 2016

September news

This month we were concentrated on two major directions - improvements and bugfixing in Nimble Streamer and mobile SDK development.


Nimble Streamer

DVR feature set of Nimble Streamer was improved by 2 changes.


  • Archive read-only mode which allows playing the stream while the recording s stopped. As our API also supports this feature, the scheduled recording can be performed easily.
  • Maximum archive size parameter to avoid disk overflow. You can check original DVR setup article to see how you can set it.



Windows Phone live streaming

Mobile broadcasting SDK was improved with Windows Phone support. Your Windows device can now broadcast live stream via RTMP to any media servers or services which support this protocol.

Larix Broadcaster is also available in Windows Store to demonstrate current SDK capabilities.

Get it from Microsoft

You can install it for free and use in any live streaming use cases.


iOS SDK

Our mobile SDK for iOS was improved with new graphics and a "Mute" button.

White label streaming application

If you'd like to customize Larix Broadcaster for any platform by adding custom app name, logo, connection stream etc, you can request it as white label. You wouldn't need to hire developer to customize basic things, so this will same you some efforts and time.
Contact us in case you are interested.



The last but not the least update: check the State of Streaming Protocols for September 2016.


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

The State of Streaming Protocols - September 2016

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on 3.24 billion views. The stats are collected from 2800+ media servers (Nimble Streamer and Wowza).

Protocols share remain stable, i.e. HLS share is about 71% with RTMP around 12% and progressive download near 10%.

The State of Streaming Protocols, September 2016

You can compare that to August stats below.

Read-only DVR playback and scheduled recording

Nimble Streamer DVR is a popular feature for those of our customers who handle live streaming. New use cases are being covered per requests of clients all the time.

So today we add "read-only" archive parameter along with respective API methods.
Switching the stream to read-only mode allows stop the recording of the stream while making it available for the playback. This is different from current "pause" functionality when the stream is both not recorded nor played.

It should help when you need to make scheduled recording. E.g. some show is running and you set it up to record (disable read-only). When it's over, you set it to read-only and your viewers can watch it.

Another use case is the archive attachment, like when you previously recorded some stream and moved it to some playback dedicated server.

The basic DVR setup is described in this article so here we'll take a look how you can operate this via our excellent web UI. Same operations are available via API so there will be no difference whether you do it by hands or by the script.

August 31, 2016

August news

In August we've added a few interesting features. But first...

Vote!


Voting is now open for the 2016 Streaming Media Readers' Choice Awards.


If you like our products, please find them as follows:
  • Encoding Software: Nimble Transcoder
  • Media Server: Nimble Streamer
Both products are listed under our company name Softvelum. You must enter a valid email address when you vote; you will receive a confirmation email when voting closes on September 26. You must click the link in that confirmation email for your vote to count.
You can read more about nominations on this page and vote.

Subtitles


Nimble Streamer now supports subtitles for VOD streaming via WebVTT, SRT and TTML formats. This support includes both single subtitle files and multiple files via SMIL.
SMIL sample files can be found in a new githib repo.

Read this article for more details.

Codecs


We also extended codecs coverage for Nimble Streamer.
We introduced support for PCM, or G711, (both a-law and μ-law) audio codec.
It can be used as input for Nimble Streamer Live Transcoder for further transformation into AAC.
It also can be used for RTSP transmuxing - it will be passed through from input to output.

Mobile SDK


Our mobile SDK for Android now has new application graphics and layout. It's a lot nicer now - get it on Google Play to check.

Get it on Google Play

You can get our mobile SDK here.

Next month we'll introduce new graphics for iOS as well.

Minor updates


For those who extensively uses WMPSanel API we added a code for sample API proxy on our github.


If you need to get more information for analysis when trying to solve some Nimble-related issue, check Logging levels article. Once you need more details - just use the level you need.


The last but not the least update: check the State of Streaming Protocols for August 2016.


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

The State of Streaming Protocols - August 2016

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on 3.17 billion views. The stats are collected from 2800+ media servers (Nimble Streamer and Wowza).

Protocols share remain stable, i.e. HLS share is about 73% with progressive download near 11% and RTMP around 10%.

The State of Streaming Protocols, August 2016

You can compare that to July stats below.

August 23, 2016

Subtitles support for VOD

Nimble Streamer has wide VOD streaming feature set which covers many HLS-related capabilities like ABR streaming or multiple tracks support.

Now Nimble Streamer is capable of adding subtitles to VOD streams.
Supported formats include  WebVTT, SRT and TTML.

Let's see how they can be used. Major scenarios for VOD subtitles usage can be split into those two categories:

  • Simple scenario - a VOD file with one rendition has one corresponding language subtitles file. This is most common use case and it's handled in a simple way.
  • Complex scenarios like multiple languages for multiple renditions or other versions of the content. It's based on SMIL files usage and it can cover various use cases.
Let's take a look at both of them.

Server logging in Nimble Streamer

As any server software, Nimble Streamer allows tracking its behavior and performance via logging.

By default, Nimble Streamer server logs are available in /var/log/nimble.log for Linux and in application log folder for Windows. However you can control that in a config file. Read this article to see how you can define destination for your logs.

You may also choose logging level for server information via web UI. The more detailed logging is selected, the more information you'll get as output.

All settings are applied without server restart which allows easily manage its behavior depending on your needs.

August 10, 2016

PCM G.711 audio support in Nimble Streamer

Recently we were extending codecs coverage for Nimble Streamer.

Today we introduce support for PCM, or G711, (both a-law and μ-law) audio codec.

It can be used as input for Nimble Streamer Live Transcoder for further transformation into AAC.

It also can be used for RTSP transmuxing - it will be passed through from input to output.


Related documentation


Nimble Streamer Live TranscoderRTSP transmuxingCodecs support in Nimble Streamer transmuxer.


July 31, 2016

July news

July was very intense in terms of new features.

Audio streaming


Icecast/SHOUTcast transmuxing was entirely re-worked and it now allows processing audio streams via same engine as used for RTMP, RTSP and MPEG-TS. The output protocols are the same plus HLS and MPEG-DASH.
It also allows using our Live Transcoder for audio transformation.
Read this article to see how you can now setup Icecast transmuxing.
Please upgrade or install latest Nimble Streamer and use new Icecast management interface in live pull settings in order to use all new benefits.

Live Transcoder 


Live Transcoder also allows manipulating audio channels to split stereo signal into 2 separate streams. Read this article for details.

Speaking of Live Transcoder, we've added Linux support for Intel QuickSync. So if you have Intel-powered hardware, you should check this capability.

CDNs support


We've added support for RTMP publishing into most popular live CDNs - Akamai and Limelight.
They have special requirements for RTMP authentication and we have them covered now.
Read more about Limelight RTMP setup and Akamai RTMP setup.

Codecs support in transmuxing


We've added a few more codecs into our transmuxing engine.


All new codecs will be used in pass-through mode, with no changes to the content

You can see full list of supported codecs here. There are plenty of them there.

Also, we've update MP4 support to handle EditListBox (elst) primitive for VOD transmuxing.

Paywall update


Our customers we asking for HTTP Referer header support in our paywall feature set. So we've added Referer groups into WMSAuth engine. They can be used in Deny lists.

Mobile broadcasting SDK


Our SDK for iOS was updated with live rotation capabilities that work the same way as in Android.
You can install Larix Broadcaster from AppStore to try it out and get mobile SDK on our website.


WMSPanel API


WMSPanel control API was updated with HTTP origin alias methods.
We've also updated the API reference page with new UI for your convenience. It's now easier to find any functionality or method.



The last but not the least update: check the State of Streaming Protocols for July 2016.


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

The State of Streaming Protocols - July 2016

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on 3.16 billion views. The stats are collected from 2800+ media servers (Nimble Streamer and Wowza).

Protocols share remain stable, i.e. HLS share is about 71% with progressive download still having 9%.

The State of Streaming Protocols, July 2016

You can compare that to June stats below.

July 25, 2016

Block users by HTTP Referer header via WMSAuth

Nimble Streamer paywall capabilities cover several aspects of content protection. Today we add another enhancement - access control based on HTTP "Referer" header.

You may add required Referers as regular expressions into deny list to avoid them accessing the streams.

Let's see how this is set up.

July 18, 2016

Publishing RTMP to Limelight CDN

Our customers use Nimble Streamer for building live streaming networks with their own infrastructure. However there are cases when some external CDN needs to be used to provide additional geo coverage and off-load your network during peak hours or extraordinary events.

Thus we added Limelight CDN RTMP publishing support in Nimble Streamer. It's based on RTMP re-publishing scenario with a few additional steps. With Limelight RTMP republishing you can reach broader audience within just a few clicks.

Here is the setup instruction.

July 14, 2016

AC3 and E-AC3 support in Nimble Streamer transmuxing

Nimble Streamer has extended audio-related features. This includes processing of AAC as a primary codec. However, a lot of people use other codecs.

Nimble Streamer supports AC3 and E-AC3 audio codec for transmuxing.

  • As input, AC3 is supported in RTSP and MPEG-TS incoming streams.
  • As output, AC3 is supported in RTSPMPEG-TS and HLS outgoing streams.

This could easily be supported in MPEG-DASH as well if modern players could handle it in live streaming scenarios.

Also check full list of codecs supported by Nimble Streamer.

July 11, 2016

VP6, VP8 and VP9 transmuxing in Nimble Streamer

Live transmuxing feature set of Nimble Streamer now covers support for VP6, VP8 and VP9 codecs. Let's see how you can use them in Nimble Streamer.

VP6 via RTMP


VP6 codec is supported only in RTMP protocol. Nimble Streamer has wide RTMP feature set, so you can create full-scale VP6 transmuxing scenarios which includes the following:

  • receiving VP6 content as published stream;
  • get RTMP pulled streams, including pull by request scenario;
  • transmuxing VP6 for RTMP playback;
  • performing RTMP re-publishing to allow delivery to other destinations like your edge servers or third-party CDN.


VP8 and VP9 via RTSP


VP8 and VP9 codec are supported only in RTSP protocol. Nimble Streamer also has RTSP feature set, and VP8/VP9 transmuxing scenarios cover the same set of features:


VP6, VP8 and VP9 playback capabilities all have support for our paywall features like hotlink protectiongeo-blocking or pay-per-view framework.

Another great security option is publish control for VP6/VP8/VP9 streaming which allows applying your business logic to the streams that are published by third-parties.

Also check full list of codecs supported by Nimble Streamer.



As you see, Nimble Streamer allows full-scale streaming with all mentioned codecs, from input to multiple destination output. This is done with high performance and low resource usage which allows building delivery networks with low cost of ownership.

If you have any VP codecs family feature request, feel free to contact us about it.

July 7, 2016

Manipulating audio channels in Nimble Streamer Live Transcoder

Live Transcoder for Nimble Streamer has rich audio transformation feature set which is based on audio filters and AAC decoding/encoding. Besides common operations like volume control, changing sample rate or bitrate, you can set up any FFmpeg filters.

Let's see an interesting task for channels manipulation which can be accomplished with Nimble Streamer Live Transcoder.

Different language channels


There's a stream with video and stereo audio where each of the audio channels has its own language. The goal is to create 2 streams with identical video and different audio, each stream having its language.

We assume you've already installed Transcoder. If not, use this procedure. You can check our videos describing general setup process to get familiar with the UI. As a result you need to set up transcoding scenario as shown below.


As you can see, first we've made 2 passthrough videos.

The next step is to split audio after it's decoded to avoid any resources usage overhead.
Then you can see the key element which is "Pan" filter which goes all the magic. It's applied to each of the split audio streams. You can read FFmpeg audio manipulation page for more details about pan filter usage.

Check to pictures below to see each of the filters' settings. Those are:

  • stereo|c0=c0|c1=c0
  • stereo|c0=c1|c1=c1




All you need after that is to add 2 standard AAC audio encoders.

Stereo to mono


As in previous case, you need to use "pan" filter to create mono stream from stereo.
Filter setting is as follows:
1c|c0=0.5*c0+0.5*c1
It looks like this:

Mono to stereo


This can be done with the following "pan" filter settings:
stereo|c0=c0|c1=c0
Filter dialog will look like this:




That's it. When the scenario is saved, it's applied to the Transcoder instance. The result stream will be delivered via any protocol which you defined for corresponding applications, e.g. RTMP, HLS etc.

To set up more audio encoding parameters, please check Audio encoder parameters video on our YouTube channel. Specifically, read more about re-sampling audio.

Feel free to visit Live Transcoder webpage for other details and contact us if you have any question.

Related documentation


July 3, 2016

EditListBox MP4 primitive support in Nimble Streamer

Nimble Streamer media server has a wide VOD feature set which includes transmuxing MP4 files into HLS and MPEG-DASH. MP4 is supported as video+audio, video only, audio only, original MP4 and Apple QuickTime extension.

Some MP4 files which were created by FFmpeg tool have its specific edts->elst MP4 atoms used (it's called EditListBox). It's used in case when audio and video are written unsynchronized in order to tell the player or other client software to perform appropriate playback.

Nimble Streamer allows using MP4 files with EditListBox atom for further transmuxing into HLS and MPEG-DASH. The resulting media will be fully-synchronized and playable in any player.


Contact us if you face any concerns about other MP4-specific issues.

Related documentation


Nimble StreamerVOD streamingLive streaming capabilitiesMPEG-DASH feature set, HLS feature set

Enable hardware acceleration for Intel Quick Sync in Linux

Nimble Streamer Transcoder supports Intel® Quick Sync technology for both software video encoding and hardware encoding acceleration using Intel® processors feature set. Nimble Streamer allows using Quick Sync as a H.264 video encoder in transcoding scenarios.

Once you have Quick Sync installed, the software encoding is available in our Transcoder by default while hardware acceleration needs to be enabled separately. The instructions below describe how to enable hardware acceleration on Linux. 

There are currently two SDKs for Linux which support QuickSync technology, their choice depends on your hardware capabilities. Each SDK is released as part of respective Media Server Studio so you need to choose what works best for you and follow its instruction. Once it's set up, you will need to install Live Transcoder itself and then proceed with transcoding scenarios.


Media Server Studio 2017 (Skylake and Broadwell support)


This SDK is supported in CentOS 7.2-1511. Install 64-bit CentOS-7-x86_64-DVD-1511.

When installing, you should use the "Development and Creative Workstation" base environment.
Do not update the system via yum update. The installed default components are required.

Now download SDK using this link and follow these instructions.
$ tar -xzf MediaServerStudio*.tar.gz
$ cd MediaServerStudio*
$ tar -xzf SDK2017*.tar.gz
$ cd SDK2017*/CentOS
$ tar -xzf install_scripts_*.tar.gz
$ su
# ./install_sdk_CentOS.sh
# reboot

Full setup instruction called Getting Started Guide can be found in SDK archive as media_server_studio_getting_started_guide.pdf. Please refer to it for details.


Media Server Studio 2016 (Broadwell and Haswell support)


This SDK release requires CentOS 7.1 for Quick Sync acceleration to work properly.
Current releases of Intel SDK only support Haswell and Broadwell architectures.

Install 64-bit CentOS 7.1-1503 from http://vault.centos.org/7.1.1503/isos/x86_64/

When installing, you should use the "Development and Creative Workstation" base environment.
Do not update the system via yum update. The installed default components are required.

Install Intel® Media Server Studio Free Community Edition for Linux from https://software.intel.com/en-us/intel-media-server-studio according to Intel® Media Server Studio Getting Started Guide:

As root


# usermod -a -G video [LOGIN]

As regular user


$ tar -xvzf MediaServerStudio*.tar.gz $ cd MediaServerStudio* $ tar -xvzf SDK*.tar.gz $ cd SDK* $ cd CentOS $ tar -xvzf install_scripts*.tar.gz 

As root


# ./install_sdk_UMD_CentOS.sh
# mkdir /MSS
# chown {regular user}:{regular group} /MSS

As regular user:


$ cp build_kernel_rpm_CentOS.sh /MSS
$ cd /MSS
$ ./build_kernel_rpm*.sh

As root:


# cd /MSS/rpmbuild/RPMS/x86_64
# rpm -Uvh kernel-3.10.*.rpm
# reboot


Full setup instruction called Getting Started Guide can be found in SDK archive as media_server_studio_getting_started_guide.pdf. Please refer to it for details.



Install Nimble Streamer Transcoder


Follow Transcoder CentOS 7 installation procedure and then follow this article to set up hardware encoder parameters.

After that you'll be all set to use Intel hardware acceleration on Linux with our live Transcoder.



If you face any questions, feel free to contact us for any questions.

Related documentation


Live Transcoder for Nimble StreamerLive Streaming featuresBuild streaming infrastructure with Nimble StreamerTranscoder support for Intel® Quick Sync, Enabling hardware acceleration on Windows,

Intel is a trademark of Intel Corporation in the U.S. and/or other countries.

July 2, 2016

Publishing RTMP to Akamai

Even though Nimble Streamer allows building live streaming networks, there are cases when some external CDN needs to be used to provide additional geo coverage and off-load your network during peaks.

This is why we added Akamai CDN RTMP publishing support in Nimble Streamer. It's based on RTMP re-publishing scenario with a few additional steps.

Here is the setup instruction.

June 30, 2016

June updates

This month we've released new mobile screencasting app and introduced Quick Sync Video in our Transcoder as well as some other features.

P2P


But first check out a new article from our P2P partner Peer5 - HLS with Nimble - which describes the process of Nimble Streamer setup for both VOD streaming and RTMP transmuxing to HLS. The result stream can be used as a source for Peer5 serverless CDN which highly reduces traffic coming from from the origin.
Check our P2P streaming overview page showing different P2P capabilities and use cases.

Transcoder


Our latest product Nimble Streamer Live Transcoder now supports Intel® Quick Sync Video technology for hardware acceleration.
You can check our Quick Sync featured page for all details including Quick Sync encoder setup parameters and the process of enabling Quick Sync HW acceleration on Windows and on Linux.
This new integration allows using full power of Intel processors for your streaming scenarios.

We're asked how is our transcoder different from FFmpeg library which is a worldwide well-known product. We've released an article describing the benefits of our product over FFmpeg.

Mobile SDK and Screencaster


Our mobile SDK can be used for a number of live streaming cases. One of them is screencasting when you transmit the content of your screen to any destination.
We introduce Larix Screencaster which is based on mobile SDK and is capable of streaming via RTMP or RTSP.
You can get it on Google Play and set it up as described in this article.

Get it on Google Play

You can get our mobile SDK here.
In case you used it before, notice that it has a number of new features and improvements including the aforementioned screencasting.

Nimble Streamer


Nimble Streamer now has the enhanced interleaving compensation. It helps a lot in cases when video or audio stream has some delay.

Another enhancement is LATM header support for AAC while streaming via RTSP and MPEG-TS.

One more interesting feature is live HEVC transmuxing into HLS. This is useful for the cases when your end users devices are capable of H.265 playback.



The last but not the least update: check the State of Streaming Protocols for June 2016.


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

The State of Streaming Protocols - June 2016

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on nearly 3 billion views. The stats are collected from 2800+ media servers (Nimble Streamer and Wowza).

Protocols share remain stable, i.e. HLS share is about 70% with progressive download having 9%.

The State of Streaming Protocols, June 2016


You can compare that to May stats below.

June 29, 2016

AAC LATM header support in Nimble Streamer

Nimble Streamer has wide variety of audio-related features and advantages. This includes processing of AAC in any available incoming stream regardless of its protocol.

Speaking of AAC, most audio encoders produce AAC with ADTS headers which is commonly used over the Internet.

Now Nimble Streamer supports LATM header in addition to ADTS. It is widely used in satellite streaming over DVB, DVB-T and DVB-T2.

This header can be processed from incoming RTSP and MPEG-TS streams for further transmuxing into other protocols for live streaming. The stream can be also be handled in our Live Transcoder for further transformation.

June 17, 2016

Enable hardware acceleration for Intel Quick Sync in Windows

Nimble Streamer Transcoder supports Intel® Quick Sync technology for both software video encoding and hardware encoding acceleration using Intel® processors feature set. Nimble Streamer now allows using Quick Sync as a H.264 video encoder in transcoding scenarios.

Once you have Quick Sync installed, the software encoding is available in our Transcoder by default while hardware acceleration needs to be enabled separately.

Let's see how hardware acceleration is enabled on Windows platform for Nimble Streamer.

1. Install Nimble


We assume you've already installed Nimble Streamer and the Transcoder on top.

2. Install Intel® Media SDK


To make Quick Sync work, you need to install Intel® Media SDK first. Follow this link to fill in the form and get the SDK installation package.

3. Application isolation workaround


In Windows operating system starting from Windows Vista and later, implementation of hardware acceleration relies on interaction with the hardware graphics drivers. The system isolates the services in a non-interactive environment called "Session 0 Isolation." Applications running in this isolation don't have access to hardware drivers. This means when Nimble Streamer is launched as a system service, Quick Sync hardware acceleration isn't available.

June 16, 2016

Intel Quick Sync video encoder parameters in Nimble Streamer Transcoder

Intel® Quick Sync technology provides efficient encoding capabilities. It allows using hardware acceleration for video encoding using Intel® processors feature set and software encoding in all other cases.

Nimble Streamer Transcoder allows using Intel® Quick Sync as a H.264 video encoder in transcoding scenarios.

Let's take a look at encoder settings available at the moment.

First of all, take a look at Quick Sync encoder usage in our web UI.


As you see, it takes just a few clicks to use Quick Sync as encoder.

Now let's see what parameters you can use there in order to control encoding process. It's similar to previously described libx264 encoder settings but it has its specifics. In the encoder settings dialog box you can add any of the parameters described below.

June 14, 2016

Compensating the interleaving in Nimble Streamer

Each live stream includes 2 parts - video and audio. They usually go hand-by-hand but sometimes they are un-synchronized, which means video or audio stream has delay comparing to its counterpart. This behavior was seen in some of MPEG-TS hardware encoders like Elemental and Digital Rapids as example.

Small delays are usually compensated by all player software but as far as the delay becomes significant - up to a few seconds - this becomes a problem which leads to playback failure in some players like VLC.

This issue is overcome by adding interleaving compensation. What it does is that it creates a buffer of incoming frames and sorts them for further output. This solves the described problem but introduces some delivery delay and resource overhead because buffering and sorting is done for all stream all the time. This operation is resource-consuming and brings latency into streaming process, as each frame is placed into the buffer and needs to be held at least until the next frame comes in.

This is why Nimble Streamer has this compensation disabled by default and you need to specifically enable it to make this work. As always, this is done via WMSPanel web control UI. You can enable it both for the entire server and for any specific application.

June 7, 2016

Nimble Streamer Transcoder advantages over FFmpeg

Live Transcoder for Nimble Streamer is a highly efficient product which uses best available transcoding techniques combined with our own know-hows and researches. One of the components used in Transcoder is FFmpeg™ project. We use some of its libraries under LGPL, you can see details on our legal details page.

Many other projects use FFmpeg as a standalone turn-key solution being handled as an external tool. That brings a great result, however we decided to take its best parts and use it linked into our middleware. This brings some development efforts, however it gives us several unique benefits which make our Live Transcoder more efficient and robust than FFmpeg used as command line tool in some cases.

Let's see what makes Live Transcoder for Nimble Streamer differ from out-of-the-box FFmpeg and sometimes more efficient.

June 6, 2016

Larix Screencaster setup and usage

Our team is continuously improving mobile streaming products set.

Using mobile device, you may want to show your screen content to the public in real-time.
This might be your game play process displayed at popular streaming services like Twitch or YouTube.
It can be your mobile device product live presentation on a conference or a webinar.
These scenarios require capabilities to capture your screen and stream it outside the device via some real-time protocol.

Larix Screencaster is a free app for Android. It's capable of streaming screen content in real time to any destination which supports RTSP and RTMP publishing of H.264/AAC stream over TCP. The Screencaster runs in background and can be controlled from notification area.

Besides streaming the content Larix Screencaster allows recording it to MP4.


Get it on Google Play

The application was successfully tested with Nimble Streamer and Wowza Streaming Engine as well as YouTube live streaming. 

The setup is easy and straight-forward:

  • Install the app
  • Go to Settings
  • Select best resolution
  • Specify the connection URL for your media stream destination
  • Start streaming your screen.

The URL has the IP-address or domain name of your media server, Port and Path. If you have specified Push login and Push password then RTSP URL should look like
rtsp://push_login:push_password@192.168.5.5:1937/live/stream
For RTMP it will be
rtmp://192.168.5.5:1937/live?rtmpauth=push_login:push_password/stream

You may use any media server, including Nimble Streamer. You may take a look at Larix Broadcaster setup instruction to see how you can install and setup Nimble for this task.


Mobile Broadcasting Library


If you'd like to create similar Android app capable of media streaming, you can use our mobile broadcasting SDK which is the core of Larix Screenaster. You will get Larix source code and a library for further UI customization.



Please contact us if you have any questions.


Related documentation


Mobile Broadcasting Library and SDKLarix BroadcasterInstalling Nimble StreamerTransmux RTSP to HLS, RTMP, DASH and more via Nimble Streamer