October 27, 2013

Nimble Streamer Slideshare

Nimble Streamer is created to be a basis for streaming media infrastructure. To make decision on trying the software in production environment, company representatives need to see a solid description of why they should try it.

That's where a presentation is the best way to show key thoughts. Take a look at the first presentation describing Nimble Streamer which will be useful for decision makers.


It shows basic features and the business model for both Nimble Streamer and WMSPanel as its front-end.

You are very welcomed to share this presentation to anyone who may find this useful. Please contact us if you have any questions or concerns.

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 streamingNimble Streamer HTTP hotlinking protectionNimble Streamer geo-location restrictionNimble configs explainedHLS re-streaming set upSmooth Streaming supportGeo load balancing with Nimble StreamerHTTP pseudo-streaming progressive downloadWMSPanel Slideshare,

October 21, 2013

Transmuxing MP4 to HLS for VOD streaming

Nimble Streamer main functional area is HTTP-based streaming. We've made a number of features that allow streaming with progressive download as well as perform re-streaming via HTTP Live Streaming (HLS) and Smooth Streaming.

For HLS re-streaming the use case is simple - you take any origin like Wowza, IIS or nginx, install a a number of Nimble edges near your viewers and do the transmission whenever you like. Nimble is light-weight so streaming provider can create small virtual machines for edges' infrastructure.

We have customers who want to have cheap origin servers the same way they cheap edges. We wanted to cover this segment by releasing a solution which would be available free of charge and could be able to stream HLS in VOD mode. So today we introduce HLS to MP4 transmuxing feature set in Nimble.

Both H.264 and H.265 videos are supported.



Re-packaging MP4 to HTTP Live Streaming (HLS)


This feature set allows transparent re-packaging of MP4 to HLS, which is also called transmuxing. Such transmuxing will re-package existing MP4 file encoded with H.264/AAC/MP3 into the MPEG TS segments necessary for HTTP Live Streaming, without having to re-encode the file. It supports VOD transmission mode.

Supported formats are:
  • video+audio;
  • video;
  • audio;
  • mp4 compatible brand
  • Apple QuickTime extension;
  • Adobe f4v
  • files with CTTS atom in TRAK.
This covers most of the use cases for MP4 usage.

Free of charge


First, this MP4 re-packaging within Nimble Streamer is not eligible for patent fees. We do not do any encoding or transcoding thus no patented technologies are used. We do not use any third-party tools as well so there are no license dependencies. We got confirmation from MPEGLA that our implementation does not require patent payments.

Knowing that Nimble Streamer itself is available free of charge and that we don't pay patent royalties, you can install and use Nimble for MP4 transmuxing for free. You can use common installation instruction and configure using config files description.

We are a service company so we take money for providing WMSPanel for calculating statistics and having convenient web control over the server. Having Nimble Streamer in WMSPanel makes it eligible for subscription with common terms described in our pricing page.

Setting up transmuxing for Nimble via WMSPanel


Let 's see what you need to do for HLS VOD streaming from a single MP4 file.

2. Upload your MP4 file encoded with H264/AAC/MP3 to a designated location on the server. The user called "nimble" must have read access to this directory.

3. Go to WMSPanel under Nimble Streamer / Edit Nimble Routes menu.

4. Click on Add VOD streaming route.


5. For fields set 1 enter the domain and the directory where the files will be accessible for HLS streaming. You can mention just a "Path" having a "Domain" as blank.

6. For field 2 enter a local directory where the content is located.

7. Choose which Nimble servers need this route and click OK.

 Setting up HLS VOD streaming via MP4 transmuxing.
Here's an example.

  1. You have Nimble installed on a server available at 198.101.232.28.
  2. Your file is /home/user/content/sample.mp4.
  3. In a field set 1 you set "/hls/" as "Path" with a blank domain.
  4. In 2nd field you set "/home/user/content/"
  5. You select server "198.101.232.28" from list of Nimble servers and click OK.

Now to view the file using HLS you should use this URL:
http://198.101.232.28:8081/hls/sample.mp4/playlist.m3u8
Now with this HLS origin functionality combined with edge re-streaming capability you can set an effective HLS VOD streaming infrastructure based on Nimble Streamer.

The streaming VOD may also be protected in the following ways:


Need to support ABR and multiple tracks for my VOD


You can create ABR VOD HLS using SMIL files with Nimble Streamer. Also, multiple audio tracks and audio-only/video only tracks are supported.

Need to convert MP3 or AAC to VOD HLS


Check this article about MP3 and AAC to HLS transmuxing.

Need to convert RTMP to ABR HLS and UDP MPEG-TS live stream into HLS


Check the following posts:


October 16, 2013

Devices and players report for Wowza

Streaming media is expanding to a variety of devices these days. So one of the things any streamer wants to know is the statistics for devices which his clients use for watch media. As most video is done via the desktop or handheld devices, the players and browsers report is also important. WMSPanel obtains this information from user agent specification which Wowza provides for each connection.

So we've created two new reports - Devices report and Players report. They are available under Reporting menu. All reports allow selecting dates ranges and specific servers. You may also export the statistics to CSV file and print if you want a hard copy.

Each number is a number of connections. This means if 1 user connected 2 streams, or opened same stream twice them, this will be counted as 2 connections.

Devices report


This report has statistics for major device types available on the market.  There are popular platforms as you notice in column names. It's Windows of several flavors, Macintosh, iPad/iPhone, Android, set-top-boxes (Roku, Apple TV), gaming consoles and a few others.

You can see a pie chart and detailed statistics table. There is also a line of links that allow browsing devices' statistics which is "sliced" per player.

Selecting dates range and per-browser slicing or devices.
Devices percentile pie chart.
Devices detailed statistics.

Players and browsers report


Take a look at another report below. You can see the major browsers (Chrome, Firefox, IE etc) and several players in it. And then there's Flash, of course. It's also sliced by devices the same way we saw per-player division in devices report.

Selecting dates range and per-device stats for player report.


Players pie chart and detailed statistics.

These two reports give you a vision of how your content is played. If you see that some device or browser is missing, send us your feedback to include new entries in our report.

UPDATE as of Dec-5-2013. We've added SmartTV among devices.

Devices and players report is also available for Nimble Streamer, the light-weight HTTP streaming server for HLS, Smooth and progressive download. WMSPanel is an official GUI for Nimble Streamer.

Read more about WMSPanel streaming reporting features.

Related documentation


End user reporting for WowzaDaily statisticsDaily stats APIPlayers and devices stats APIReal-time stats APIGeo location reportingData slices for statisticsScreencast for daily statisticsStatistics import APIPaywall for Wowza

October 14, 2013

Prototyping HLS VOD for MP4

When our team started working on Nimble HTTP Streamer we wanted to concentrate on basic HTTP streaming use cases. First basic things to cover were edge re-streaming and progressive download. Now when basic cases are mostly covered we wanted to try ourselves in handling origin HTTP streaming.

First use case to try is HLS VOD streaming. People want to take their VOD media libraries and stream them to a variety of devices which support HLS (which is quite a lot). So we started implementing this feature set with a prototype to estimate the effort and see major implementation problems.

So some time ago we've completed a small prototype implemented with Ruby and released it on our gihub account. It make re-packaging of MP4 content into MPEG-TS chunk.

It is used as follows:
ruby mp4hls.rb sample.mp4 sample.ts
where sample.mp4 is input MP4 file and sample.ts are output file

This prototype supports the following formats:
  • video+audio;
  • video;
  • audio;
  • original MP4;
  • Apple QuickTime extension;
  • files with CTTS atom in TRAK.
The implementation is available via MIT license and it's not eligible for patent fees according to confirmation from MPEGLA.

We are currently working on this feature set as part of Nimble Streamer so soon it's going to be available as part of the major product.

UPDATE: We've implemented it as part of Nimble Streamer: MP4 transmuxing to HLS VOD streaming

Contact us if you have any questions regarding this product.

Related documentation


Nimble HTTP StreamerMP4 transmuxing to HLS VOD streamingHLS re-streaming set upHTTP pseudo-streaming progressive download, WMSPanel githubWMSPanel Slideshare

October 9, 2013

Nimble disk cache for VOD re-streaming

One of the major use cases for Nimble Streamer is the re-streaming of HLS and Smooth Streaming. Our customers use it to off-load their origin servers by moving light-weight Nimble edges closer to their audience.
Nimble Streamer edge for Wowza Media Server origin.
Currently Nimble has a RAM-based cache for live re-streaming and a disk cache for VOD re-streaming.

Let's see how disk cache works for delivery of VOD content.

  1. A viewer requests a playlist, Nimble downloads its and determines whether it's live or VOD.
  2. The playlist is sent back to the viewer.
  3. A viewer requests a new chunk from the previously downloaded playlist.
  4. If there is no pre-downloaded chunk, it's being requested from the origin.
  5. Once downloaded, it's being placed to disk cache.
  6. If the disk cache is full, the chunk is stored into RAM if possible.
  7. The chunk is being stored on disk for 24 hours then removed.
Live caching will be done in similar way, but it will be primarily stored in RAM and then on disk in case of overflow.

The following parameters are added info config file to allow some fine tuning of disk cache:
  • cache_path is a path to the file cache storage, with default value /var/cache/nimble.
  • max_disk_cache_size is a size of file cache measured in MB with 4096 MB by default.
This gives an ability to effectively deliver VOD content to any edges from any type of origin.

Please also learn more about latest VOD cache control features here.

If you wish to try it in action, feel free to install Nimble Streamer and contact us in case of questions.

Related documentation


October 7, 2013

UPDATE: WMSPanel users management

We've released s small update for our users management feature set. Your company admin may now specify if the non-admin user is allowed to create data slices by his own. This feature as well as server management permission is a good thing for the companies which want to give some flexibility over Wowza management for their clients.

Users management.

User details.

Read more about WMSPanel streaming reporting for end users.

Related documentation


End user reporting for WowzaData slices for statisticsStreamed slices for WowzaUsers details and permissions management

October 2, 2013

Setting up live stream for Wowza via WMSPanel

Many people who enter the business of media streaming start their way with live streaming. They look for easy way to begin streaming and make something that will be the basis for their future streaming platform. This is where Wowza Media Server helps. It has rich feature set and detailed documentation for beginners.

WMSPanel has Wowza server management feature set which allows simplifying the set up of the application by using wizard-like interface and re-using global application templates.

Let's see how live streaming may be set up using these features.

1. Enable Server management for Wowza by going to Control / Server management menu. You'll need to load server configuration first, but that's a single time operation.

2. Click on Create an application and choose Live streamer template from templates list.

Choosing live streaming template.

3. After the application is created, click on its name to make user and password settings. Here's a brief screen shots instruction.

4. Go to server's management page and click on application name.
Applications list.
5. Click on Config application button to go to app configuration page.
New application details and a button to configure it.

6. Click on Set password button to see dialog for setting user and password.


7. Enter user and password with the format that appear in the dialog. Select servers and click on Apply to apply user/password settings to selected servers.

Setting password for Wowza application or instance.

8. Set up your encoder with rtmp://your_server_ip:1935/live or rtsp://your_server_ip:1935/live .

That's it


You can start publishing your live streaming. Beginner users may find a lot of features that might help them to start up faster.

You may also consider WMSPanel server tasks remote management via web console for convenient control of server-side commands. Launch any command, like ffmpeg process, with no need to log in via SSH, just an easy-to-use web interface.

Feel free to contact us if you have any Wowza set up questions

Related documentation