November 26, 2013

Playtime statistics for Nimble Streamer

WMSPanel is now able to get statistics about playtime and duration intervals for Nimble Streamer servers. So you may know for sure how much time your users spent viewing the content and it's available for all protocols handled by Nimble Streamer including HLS, SmoothStreaming and progressive download.

This report is available via Reporting / Duration stats menu.

Playtime and duration report.
To start, it has "Play time" column with total play time and average play time.

Also, we made metrics which would allow seeing info about how long do their customers stream the media. Our report shows distribution of viewers among time intervals.

There are 13 intervals chosen:

November 22, 2013

WMSPanel partners with Vidillion for their Advertising Network Platform

Now it's official: WMSPanel selects Vidillion for their Advertising Network Platform Partner.

Vidillion has been WMSPanel customers for years by now. They've used our solution with high loads which brought us great feedback throughout our project life time. One of the most intensively used feature set for Vidillion is the hot-linking protection. It's been integrated into their core workflow and tested against a variety of use cases.

Now we came to become technology partners for their Advertising Network Platform which we recommend to our customers when it comes to advertising.

Please read Vidillion and WMSPanel press release to read more about this partnership.

Our team is opened for partnerships and proposals so if you have any ideas, just let us know.

November 20, 2013

WMSPanel at Streaming Media West 2013

The Streaming Media West 2013 conference is over today. We've posted a bunch of photos from there to give some overview of what was happening there during these three days.

Please take a look at the pictures in the the album at WMSPanel Facebook account.

Here are few pictures from that album:




Conference materials will be available online soon, you can check them at streamingmedia.com.

Visit our WMSPanel Facebook account to see more pictures.

November 13, 2013

How to make robust streaming with Nimble Streamer

As we mentioned in the previous post, building robust content delivery network means that the content must be delivered regardless of availability of all servers. There we've reviewed the techniques available for anyone to build a simple re-streaming infrastructure with content origin, streaming edges and DNS failover.

Let's build this delivery network using DigitalOcean hosting and Nimble Streamer. We've already used this stack for quick start of VOD streaming, so let's continue using these two for building our first CDN prototype. You can use any other hosting provider best fit for you, like Amazon or Rackspace.



UPDATE
WMSPanel team released the article describing the recommended approach to load balancing for HTTP-based protocols like HLS, DASH, Icecast etc. Please use the technique described there to build your own balancing solution rather than approach shown below.
The DNS failover approach used below is considered obsolete. However, Nimble Steamer installation and the re-streaming setup are correct and may be used for setting up your environment.




OK, so we have a content origin which accepts requests.


We need to make it robust and scalable. The DNS failover technique will be used for that. We'll make a set of re-streaming caching edge servers to provide failover and to allow easily adding new edges in this farm.
Building robust and scalable re-streaming infrastructure.

Load balancing and failover with Nimble Streamer

Nowadays HTTP based protocols become more and more popular for many reasons and about a half streaming media has switched to use them by now. This movement will proceed and this is why it was decided to implement Nimble Streamer, a light-weight media server for HTTP protocols re-streaming and VOD content processing. So it is intended to be used as a basis for content delivery over HTTP.

Building robust content delivery network means that the content must be delivered regardless of availability of all servers. Let's see how Nimble Streamer can be used for these conditions.



UPDATE
WMSPanel team released an article describing the recommended approach to load balancing for HTTP-based protocols like HLS, DASH, Icecast etc. Please use the technique described there to build your own balancing solution rather than HTTP redirect-based approach shown below. The text below is considered obsolete.



A typical CDN consists of two major parts - content origins and delivery edge servers. Origins are typically stores the content, makes transcoding, re-packaging and transmuxing. Origins are heart of any CDN and we recommend using Wowza Media Server as an origin especially in case of live video.

Edges are required to:
  • off-load the origins, e.g. they might be too busy with encoding,
  • pass around transmission bandwidth limitations as any server has its throughput limitations,
  • improve robustness in case of server failures.
Having several edges, we cannot point a player to some certain server. We should use domain name in this case and once any of the edges goes down, we need to make sure that all new connections will go to properly functioning servers. DNS failover (DNS round-robin) technique can be used for having some single domain name as well as providing a robust failover since DNS allows mapping several IP addresses to one domain.

Origin and Nimble Streamer edges with DNS failover.

Let's see a possible network architecture to cover live streaming use case.

1. Origin


We have an origin server that provides a stream which is packaged with HTTP Live Streaming (HLS, or Cupertino), Microsoft SmoothStreaming (Smooth) or progressive download. It may use any streaming media software like Wowza Media Server, Nimble Streamer, nginx, Microsoft IIS etc.

2. Edges


We will take Nimble Streamer as edge software. Nimble will take requests for contents from the player and will request that contents from origin. As soon as the chunk is started to be downloaded, it's being given to the player and then stored in cache - either RAM cache for live streaming or ROM for VOD streaming. Once a content chunk is available in cache, it will not be requested from the origin.

Re-streaming routes are easily set up in WMSPanel. The most convenient feature for this case is that you may describe a route and apply it to multiple servers. So it doesn't matter how many edges you have, you may be sure that all edges will have identical routing settings.

3. DNS


Now let's make sure our content from the origin will always be available for any player via single robust access point.

DNS failover is based on using multiple A-type DNS records for the same domain name which point to a set of IP addresses. We use DNS failover for providing robust balancing for our WMSPanel cloud service. The records would look like this:
video.ultimatemediastreaming.com A 162.243.88.159
video.ultimatemediastreaming.com A 162.243.88.131
It's all set.

4. Streaming


Now you may use URLs like this for using in a web or desktop player:
http://video.ultimatemediastreaming.com:8081/live/playlist.m3u8
You can be sure that any new connection will be taken care of using either of those 2 mentioned edges. If one of them goes down, the second one will keep processing incoming connections and give the content back.

Now you can try it yourself. Just follow installation instructions and contact us if you need help.

Check how to build robust streaming infrastructure with DigitalOcean and Nimble Streamer.


You can also read "The Paranoid’s Guide to Internet Video Streaming" by Thomas Gires to see real-life example of using pay-per-view feature set along with Nimble Streamer as light-weight edge for HLS re-streaming.

Related documentation


Nimble HTTP StreamerMP4 transmuxing to HLS VOD streamingStreaming VOD with DigitalOcean and Nimble StreamingNimble configs explainedHLS re-streaming set upSmooth Streaming supportNimble Streamer HTTP hotlinking protectionRAM caching for effective re-streamingWMSPanel Slideshare, Geo-location load balancing with Nimble

November 12, 2013

How to stream VOD with Nimble Streamer

Nimble Streamer is a light-weight HTTP streaming media server. The "light-weight" means that it’s targeted for being used on small virtual servers. These small servers can be deployed both as a single server and as a task force, or a farm, which can effectively stream the media via HLS, Smooth and progressive download.

Nimble is provided free of charge and its target platform is Ubuntu. If you want to make further savings, you look for the cost-effective hosting provider. DigitalOcean has the unbeatable prices which makes it a great virtual cloud provider for streaming media hosting. Of course you can use any other hosting provider like Amazon or Rackspace. WMSPanel is not affiliated with neither of the mentioned companies.

Let's see how "DigitalOcean + Nimble Streamer" stack can help you start streaming VOD content within just several minutes. We’ll follow these easy steps:
  1. Create virtual server in DigitalOcean.
  2. Install Nimble Streamer.
  3. Set up streaming routes.
  4. Test the VOD streaming on a desktop and on a mobile device using HTML5 player and JWPlayer.

November 5, 2013

Geo-location and IP range restriction for Nimble Streamer

Many media streamers want to limit their media by geographical location or sub-network. As a media server, Nimble Streamer is used as part of infrastructures where this limitation is crucial. That's why it's now available in our feature set. If you haven't installed Nimble Streamer yet, you need to follow this simple installation procedure.

Nimble and WMSPanel can set up the following behavior:
  • Define allow and deny lists for countries access.
  • Set up separate IP ranges to include in allow/deny list.
The workflow is simple - when the viewer connects to Nimble, the server checks if viewer's country is in deny list or is limited by other IP-based condition. If it's allowed to connect, then connection is established.

Nimble Streamer geo-location restriction.

This is provided as part of WMSAuth feature set.

Click on Control -> WMSAuth paywall setup top menu to start the setup process.

Hot-linking protection for Nimble Streamer

Nimble Streamer paywall capabilities cover several aspects of content protection. The most popular case for abusers is to take the link from the source - e.g. from your website - and insert the link into their webpages. So they take the content while you don't get any profits from it.

Hence we implemented the protection against links republishing ("hi-jacking"), or hotlink protection.

The protection consists of 3 parts

  1. Nimble Streamer
  2. code snippet on a web page which generates a signature for the streaming media
  3. the interface to control the protection.

The protection is integrated in two steps. They are:
  1. Change media player web page to have a signature of media URL.
  2. Set up protection via WMSPanel.
Nimble Streamer and WMSPanel do the rest. If you haven't yet installed Nimble Streamer, you need to follow this simple installation procedure.

Here's a workflow chart for the basic scenario.
Nimble Streamer hotlinking protection flow.