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.

If you are looking for Limelight Realtime Streaming service RTMP re-publishing setup, please go to Limelight Realtime Streaming Guide section 3.2.1 for full information.

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 and E-AC3 is supported in SRT, RISTRTSPMPEG-TSHLS incoming streams.
  • As output, AC3 and E-AC3 is supported in SLDPSRTRISTRTSPMPEG-TS and HLS outgoing streams via re-packaging.
  • AC3 is also supported in DVR output.

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.

If you need any help on this feature set, feel free to contact us.

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.

Transcode VP8 and VP9


Nimble Live Transcoder supports VP8/VP9 transcoding, read this article for more details.


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:


This type of setting can be used in scenarios like multi-language ABR.

5.1 to stereo


If you have 5.1 (side) to stereo use case, you need to add Pan filter with this parameter:
stereo|c0=FC+FL+SL|c1=FC+FR+SR
Here one channel will take Front Center + Front Left + Side Left and another one will take Front Center + Front Right + Side Right.

For 5.1 to stereo use case you can use this parameter:
stereo|c0=FC+FL+BL|c1=FC+FR+BR
This will have one channel take Front Center + Front Left + Back Left and another one will take Front Center + Front Right + Back Right.

You can check audio layouts names on this page.


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 CentOS

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 go to this link, click "Get the Linux* Community Edition for Free". The new page will require registration or login. Once you log in, please select 2017_R1 or 2017_R2 (this one is preferrable) releases, others are not supported on this OS.

Then 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, Enabling hardware acceleration for Ubuntu,

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.