October 31, 2014

The State of Streaming Protocols - October 2014

WMSPanel team continues analyzing the state of streaming protocols. October had a lot of connections which means more of interesting content to look at.

We still see the increase of HLS share (now it's 67%). The share of RTMP (23%) and RTSP (9%) has decreased but the absolute number of connections did not go down significantly which means that newcomers preferred HLS. Other protocols did not have significant changes. MPEG-DASH has shown a small growth by several thousands of connections.

All these metrics are calculated based on 870M+ views.

The State of Streaming Protocols October, 2014

October 30, 2014

Publishing RTMP from Nimble Streamer to Fastly CDN

UPDATE: RTMP publishing is now a deprecated function of Fastly CDN. However, you can use the description below as a general reference to publishing media to RTMP-compatible CDNs.


Nimble Streamer is a media server which can be used both as origin server and as an edge for end-users delivery. Some customers prefer using it as an origin server only and have content delivery network (CDN) to bring streaming media to viewers.

One of the CDNs which our customers use is Fastly CDN. It provides streaming media delivery network so our customers create Nimble Streamer origin and publish their media into Fastly. Here is a brief instruction about how you can make the setup using WMSPanel products.

1. Set up RTMP streaming in Fastly settings.


First, request support team to enable it. Then define your stream name and the stream key for authenticating your media. Use the "How do I publish a live stream?" article for details.

October 27, 2014

RTMP, RTSP and Icecast pulled streams fallback

RTMP to HLS transmuxing is one of the popular use cases of Nimble Streamer as well as other protocols transmuxing. It allows producing HLS with high efficiency and low resources consumption which allows building robust streaming solutions. However, Nimble is just a link in delivery chain and other elements like source transcoder or origin server may go down. This is why a robust live streaming network needs to have multiple media sources. And Nimble Streamer needs to handle all fallback sources and still produce output streams with no interruptions.

This is why Nimble Streamer team introduces RTMP, RTSP and Icecast pull sources fallback support.

When you define RTMP pull streams, you just specify 2 or more sources of the same pulled stream and if the first stream goes down, other stream will be picked up for processing.

To set this up you need to follow basic setup steps described in Pull RTMP to HLS transmuxing article. The main enhancement is multiple edit boxes in Live pull settings for adding new pull URL.



Being in the list of pulled streams, you can click on Add URL and see the following dialog.


Here the URL is a mandatory field while Fallback URLs can be added one by one, regardless of their number. Saving the settings will launch the RTMP to HLS processing. Also you can use advanced RTMP pull settings to specify incoming RTMP streams. Please read the Processing RTMP and RTSP pull streams per request article for details.

WMSPanel also provides multiple edit capabilities. You may edit RTMP pull sources as a text setting to able to do things like:

  • adding big amount of streams;
  • making backup and restore of settings;
  • transition of settings between servers.

Just click on Multiple edit button to use the dialog as shown below. Here, a "dr_urls" is a field containing fallback links mentioned above. "url", "application" and "stream" are the fields available in the "Add URLs" dialog.



With this entire failover feature you can easily handle RTMP disaster recovery in case of any origin source availability problems.
You may also consider using RTMP streaming API to control this behavior remotely.

If you need to change the pulled content, like change the bitrate, use our Live Transcoder for Nimble Streamer to transform. It has high performance and low resource usage.


Please check other live streaming, audio streaming and streaming infrastructure features available in Nimble Streamer and let us know if you face any questions or issues.

Related documentation


Live Streaming features in NimbleLive Transcoder for Nimble StreamerRTMP feature setPull RTMP to HLS transmuxingRTMP republishing via Nimble, Audio streaming features

October 23, 2014

Players and devices statistics API

WMSPanel gives statistics for media servers which include statistics for players and devices. As our customers need to integrate these stats into their of workflow, our team provides pull API for obtaining the aggregated data.
We introduce a pull API for players and devices metrics to give more flexibility in data analysis.

All you need is to make some setup on WMSPanel side and then make proper API calls using any programming technology you like. Let's go step by step.

1. Set up API on WMSPanel side


To start using the API, you need to make small setup on WMSPanel side.

First, the API should be enabled by WMSPanel team, so please contact us to enable it for your account. Then you need to follow these steps:
  1. Go to Control menu -> API setup -> Pull API tab.
  2. Copy Client ID for further usage in your scripts.
  3. Click on "Generate New Key" to copy API key as well. This will be used for further authorization.
  4. Populate white list with IPs of the hosts where you will be making API call from, like your development machine or your web server. Just enter new IP and click on "Add IP to Whitelist" one by one.
Check this screenshot as a reference:

Duration statistics API

WMSPanel provides various statistics for media servers which include playback duration statistics. As our customers need to integrate these stats into their of workflow, our team provides pull API for obtaining the aggregated data.
We introduce a pull API for duration metrics to give more flexibility in data analysis.

All you need is to make some setup on WMSPanel side and then make proper API calls using any programming technology you like. Let's go step by step.

1. Set up API on WMSPanel side


To start using the API, you need to make small setup on WMSPanel side.

First, the API should be enabled by WMSPanel team, so please contact us to enable it for your account. Then you need to follow these steps:
  1. Go to Control menu -> API setup -> Pull API tab.
  2. Copy Client ID for further usage in your scripts.
  3. Click on "Generate New Key" to copy API key as well. This will be used for further authorization.
  4. Populate white list with IPs of the hosts where you will be making API call from, like your development machine or your web server. Just enter new IP and click on "Add IP to Whitelist" one by one.
Check this screenshot as a reference:

Daily statistics API

One of the most popular statistics for media servers in WMSPanel is daily statistics report. As our customers want to integrate our stats into their of workflow, our team provides pull API for obtaining the aggregated data.
Now we've made a pull API for daily stats in order to give more flexibility in data analysis.

All you need is to make some setup on WMSPanel side and then make proper API calls using any programming technology you like. Let's go step by step.

1. Set up API on WMSPanel side


To start using the API, you need to make small setup on WMSPanel side.

First, the API should be enabled by WMSPanel team, so please contact us to enable it for your account. Then you need to follow these steps:
  1. Go to Control menu -> API setup -> Pull API tab.
  2. Copy Client ID for further usage in your scripts.
  3. Click on "Generate New Key" to copy API key as well. This will be used for further authorization.
  4. Populate white list with IPs of the hosts where you will be making API call from, like your development machine or your web server. Just enter new IP and click on "Add IP to Whitelist" one by one.
Check this screenshot as a reference:

October 21, 2014

Server offline notification API

WMSPanel gets data about each of the servers being registered in customer account via periodical sync-up which happens each 30 seconds. So when the sync-ups stop, this means that a server is inaccessible and an administrator needs to take some actions. So we've added servers offline notifications to cover that case and to send email alerts when the server goes offline from our panel point of view.

Now we introduce push API for offline notifications. You may now get calls to your handler application from our service when any of your streams are unavailable.

Here's how it works.

1. Create a handler


A handler is a publicly available web application which can get HTTP POST requests. This might be implemented using any programming technology. Check this example from our streams un-publish notifications for Wowza for to see how this can be done via PHP with PECL packages installed.

October 16, 2014

Dispersa alerts API

WMSPanel team continues improving Dispersa streams availability monitoring service. After introducing streams monitoring history, we wanted to make Dispersa be more flexible in terms of notification capabilities. As example, people would may want to re-set a stream if it's not visible to the checkpoints, or just send several messages to end-users who use WMSPanel via white label.

Today we introduce push API for Dispersa check-over events. You may now get calls to your handler application from our service when any of your streams are unavailable or available back online again.

Here's how it works.

1. Set up streams to monitor


Use this instruction to set up streams which you'd like to monitor via Dispersa distributed network of checkpoints.

2. Create a handler


A handler is a publicly available web application which can get HTTP POST requests. This might be implemented using any programming technology. Check this example from our streams un-publish notifications for Wowza for to see how this can be done via PHP with PECL packages installed.

October 10, 2014

Hotlink protection with stream-based signature

One of WMSPanel key capabilities is WMSAuth security feature set for streaming protection and restriction. Hotlinking protection is one of our most popular features, as it prevents media streams theft.

We've got requests for improvements of this feature and one of the most popular ones was to add stream name into stream signature to make it unique for each stream.

And so we did. In addition to existing functionality, a couple of new parameters were added to cover this use case. Let's go step by step to see how it's deployed.

Caution. You need to apply this instruction to the test applications and streams first before running it in production mode.

1. Set up WMSAuth


Install Nimble Streamer and then follow hotlink protection setup instruction.

October 8, 2014

Server tasks remote management via web UI

With its current feature set, WMSPanel became a reporting and control center for a diverse streaming environment. You may have any number of Wowza, Red5, nginx, Nimble Streamer or even Windows Media and still have the same excellent set of reports with stats aggregated from all of them and split by servers, apps or streams. With API available, it's also a single source of data for further analytic.

Now to make WMSPanel also a central tool for controlling these servers' behavior, our team introduces server-side tasks control web interface.

WMSPanel allows defining tasks. A task executes some server-side command and shows its execution status. The tasks are processed via pre-installed Nimble Streamer. It acts as an agent which runs and tracks commands. So WMSPanel interacts with Nimble and Nimble interacts with system processes.

Easy to use web interface allows controlling multiple tasks for multiple servers from the same UI with no need to log into each remote machine.

These tasks can run external transcoders like FFMPEG, image processing software and any other command-line tools.

Notice that task management works only on Linux installations of Nimble Streamer.


Let's see how server tasks are defined and used.

October 6, 2014

RTMP and RTSP republishing via Nimble Streamer

Robust and reliable delivery for live streaming requires a network of servers to transfer streams via multiple routes. This is especially important when live content must be delivered across the borders and continents to consume as less bandwidth as possible. So having single stream pushed to the distant edge server for further transmuxing to multiple viewers will be the way with the least resource consumption.

RTMP and RTSP are the protocols which are popular for live transmission between media sources and servers. This is why Nimble Streamer provides RTMP re-publishing. Once you have published stream, you may set up where it needs to be pushed further. The same applies to RTSP re-publishing as it's popular protocol for delivery from cameras.
Setting multiple rules, you can set up flexible delivery chains for any scenarios.

Take a look at simple delivery network which uses RTMP as an input and several formats as an output.

RTMP republishing for flexible delivery chain.


Let's see how to set this up.