April 17, 2013

Introducing Nimble Streamer

Today our team is excited to announce a new product. It's called Nimble Streamer and it's a light-weight HTTP edge server.

HTTP adaptive streaming becomes the mainstream these days. Latest pike of interest was made thanks to Apple's HLS which is currently supported by iOS and Android devices. Also, growing support at PCs has been recently extended with latest JWPlayer 6 which brings HLS capabilities via Flash application.

Wowza does a great job for serving all HTTP protocols and it's a perfect choice for a wide variety of customers. However some customers face the need for installing Wowza on edge servers for load balancing purposes and the cost of ownership becomes a dilemma because of server hardware requirements. That is why people are looking for light-weight solutions based on popular HTTP servers like Apache and nginx. These web servers work great for serving traditional content like text or images, while media content (primarily video) needs special treatment as video/audio transmission has different nature in compare with other static binaries. Thus web servers are not properly handling some of corner cases such as pre-loading of content chunks, sessions priority settings for premium vs. free content, bit-rate smooth switching, protecting against DDoS, rippers protection etc. All these things along with protocol-specific optimizations and tuning are nearly to impossible to implement based on traditional HTTP servers.

So knowing of this kind of problem WMSPanel team implemented a light-weight HTTP edge server which would work in a tandem with Wowza for live streams to perform HTTP adaptive streaming efficiently.

Take a look at this SlideShare to get a general overview.




How does it work?


You set up a number of Nimble edge servers and set up your load balancer to send HLS HTTP requests to them. Those requests will be processed by respective Nimble edge to decide whether to give cached chunks or forward request to Wowza.

Nimble streamer can work easily on a small virtual server being installed via a Debian package. You'll pay a small server monthly fee and a traffic expenses. So the cost of ownership will be relatively less than in case of using other solutions.

HLS streaming features


Right now it does the following:
  • HLS re-transmission. Simply set up mapping rules and start transmission via new edge server.
  • HLS chunks caching. HLS chunks can be cached on out side  off-load origin server and increase transmission speed.
  • High performance and low resources usage because it's a native Linux application.
Later on more actions will be allowed on each edge. It's going to be pre-roll advertising, QoS control, DDoS attacks prevention, geo- and IP-based restriction etc.


What about control and reporting?


Nimble Streamer is brought to you by WMSPanel team. So as you might expect, WMSPanel completely supports this server.
  • Full control via WMSPanel to set up server settings for re-transmission mapping.
  • WMSPanel reporting which includes real-time and retrospective charts, daily reporting for connections, traffic, bandwidth, duration and geo-location. Check this post and screen cast for details: http://blog.wmspanel.com/2013/02/wowza-daily-statistics-review.html
  • Shared data slices and white label for reporting to your customers. Check this screencast to see it in action.
  • Hot-linking protection and domain lock.
  • Geo-location restrictions.
So regardless of server type you use - Wowza or its Nimble edges, you will get the same great reports.

Progressive download / pseudo-streaming


Progressive download is a very popular and simple way of data transmission. Now Nimble Streamer will be able to process progressive download (AKA pseudo streaming) without any extra software required. This is a streaming, not the re-transmission. Of course, the same control and reporting capabilities are available out of the box so Nimble is a complete progressive download solution. It works both as an origin and as an edge server making it possible to make complete progressive download infrastructure.

Why not just use nginx or Apache modules?


nginx is a great product as well as Apache, no doubts. They've made revolution in web industry. But even though they are handling most of aspects of HTTP standard, there are still cases which do not allow making them as complete solutions for media delivery. Just because media streaming is more than simply handling HTTP requests. Of course, there's a number of modules out there. But they are missing the following points:

  • weak configurability - e.g. for nginx you need to re-build the server in order to install any module and to go through configs to set it up properly;
  • weak reporting - yes, you can parse logs, but it still needs some processing and it misses points like bandwdth or duration;
  • no features that are out of scope of handling HTTP requests, like pre-roll ads insertion or pay-per-view, or streams hot-linking protection etc. It's just an "alien" functionality for traditional HTTP server.

So basically is you just need to stream a bunch of files, then nginx with mp4 module could do the right thing for pseudo-streaming or even HLS re-transmission. But looking for some advanced things would lead to a complete media-specific solution like WMSPanel Nimble Streamer.


Now, sign up and follow installation instructions from Download page. Contact us if you have questions or comments regarding this new product of ours.

Related documentation


Nimble HTTP StreamerNimble configs explained, Transmuxing RTMP to ABR HLSHLS re-streaming set upSmooth Streaming supportGeo load balancing with Nimble StreamerRAM caching for effective re-streamingNimble disk cache usageNimble Streamer HTTP hotlinking protectionNimble Streamer geo-location restriction,

No comments:

Post a Comment