September 25, 2013

Running Nimble Streamer on ports lower than 1024

Nimble Streamer is designed to handle HTTP streaming of any kind. To make it happen, it binds on non-privileged port 8081 by default and listens to it waiting for incoming requests.
You can change the port number to make it fit your network infrastructure. It can be done via configuration file.

Simply change the "port" parameter to required number (e.g. 80) and re-start Nimble Streamer.

September 19, 2013

WMSPanel users management

We get requests from media hosting companies which want their clients to have more control over the service functionality.

That's why we make some steps forward. First one is to enable account admins to allow end-users to have full control over the servers. This is reasonable because a client may rent server at hosting company's server farm. So he wants to have full control over it.

We got a section called Users management. It's located in Control top menu. This is a place where all account's users from all data slices are listed. For each user you can see it's name and email, user role (admin or user) default data slice name and number of assigned slice, and then links to actions - Edit, Delete and Abilities that allow enabling extra capabilities.

Account's users management page.

You can also add new user by selecting its default slice, email for login and a password. A new user will be created with non-admin permissions so please do not select Full data slice for this user.

You may change user details any time by clicking on Edit link. You will see a dialog like show below.

Read more about WMSPanel streaming reporting for end-users.

Creating slices by non-admin user

As you see from the screenshot above, an admin user may allow any specific non-admin user to create custom data slice. An admin just needs to edit user details and check the "Can create data slice" check box.
This option is good for the companies which prefer giving their clients more flexibility and control over Wowza and its reporting.

Server control

Another option for this kind of flexible companies is server control. A user may be allowed to see selected servers' internals and ability to control them.
A user will be able to perform control of both Nimble Streamer and Wowza media server available in WMSPanel. For designated user, click on Abilities link to see the dialog shown below.

Assigning servers for user control

Just choose which servers to allow your user to control and manage and then click Save.

After that the end-user may choose Servers menu, then click on server name to find control capabilities.

Data slice also provides a mechanism for assigning non-admin users to control certain features of Nimble Streamer. Read this page for more details.

Slice relations

Each user has a name of the slice which he is assigned to and a number of data slices which he or she is assigned. Clicking on the data slice number link you will see the slices' list in a separate dialog. This dialog will allow following to each slice' details and un-assigning user from the slices.

Use data slices operations.

If you have any ideas for more end-user features, just let us know about it.

Read more about slice-related features in on the dedicated Slices & Branding page.

Secure your account in 3 easy steps
 article gives more ideas about working securely in WMSPanel.

Related documentation

End user reporting for WowzaData slices for statistics,

September 12, 2013

Lite slice cost reduction

In WMSPanel statistics are collected and accessed via data slices. It's a point of view at the data collected by all customer servers. They may be applications-based or streams-based. Our pricing is also based on slices - just because we need to pay for data processing and storage.

While data slice provides full variety of reporting, many customers want to get just a very basic statistics. Like, they don't need streams real-time reports, they just need daily statistics with geo and duration details. So we came to the option that would allow to reduce the reporting functionality of data slices in exchange to reduction of the price.

We call this option a "lite slice". Let's see what is the difference.

# of non-admin users per slice
Streams real-time chart
Deep statistics
Custom slice cost

Here are some details.

No streams' real-time and retrospective charts

If you go to "Streams report" for the full slice you can see the list of active streams which currently have connections. Each name is the link to the stream dashboard where you can see real-time chart with connections, bandwidth and top-20 countries of visitors, as well as retrospective charts for last 24 hours.

For lite slice, there will be no link to the page and no stream dashboard page itself. Just list of streams with number of current connections.

One non-admin user per slice

Lite slices are targeted for those small clients of our customers who check their simple stats on a periodical basis and don't need complicated workflow. That's why this kind of slices should be seen by just 1 user besides admin users.

In-depth statistics

Since lite slice has not streams data, the Deep stats are also not available for this slice type, sorry.

Default "Full data slice"

When account is created, a default Full data slice is created to collect all incoming data. You cannot convert it to lite slice due to that reason. So whatever custom slices you create, you can convert them between lite and full while default slice remains full.

Usage and Pricing

The limitations mentioned above are the only ones applicable for lite slices. All other reports and capabilities, including white label, billing or streams control, are used the same way as for full slices.

Stream-based slice
 is the best case for using this limitation because there an admin may set the streams name and so real-time chart for a slice will be the same as real-time chart for the stream. Application-based slices are also fine being lite, of course.

Reduced functionality allows reducing the price. It's cut by half. and it starts from 10 USD per month and goes down as you create more slices.

Create lite slices

Existing full slices may be converted to lite ones by following these steps:

  1. Click on Manage link in top menu for slices.
  2. For designated slice, click on Edit link
  3. In the new dialog box, un-check the "Show streams real-time and retrospective reports" check-box.
  4. Save changes

For new slice, this would be the same - just use the same check box.

If you want to switch back from lite slice to full slice then check the "Show streams real-time and retrospective reports" check-box and click the "Save" button.

Before your next billing period starts, our team representative will contact you regarding subscription price changes.

Read more about slice-related features in on the dedicated Slices & Branding page.

Read more about WMSPanel streaming reporting.

Related documentation

Nimble StreamerEnd user reportingDaily statisticsGeo location reportingData slices for statisticsStreamed slicesUser permissions managementStatistics import API, Paywall,

September 4, 2013

Hotlinking and domain lock WMSAuth protection

Protection and restriction against the un-authorized access to the media is crucial for streaming business. WMSPanel team originally started its path by creating WMSAuth hotlink protection for Windows Media. Later on when we switched to Wowza Media Server, one of the first things we did there was WMSAuth hotlink protection. BTW, you can read a brief history of our solution in Dan Rayburn's blog post.

Now about 1/3 of our subscribed customers use WMSAuth hot-linking protection or connections limitation capabilities.

Hot-linking re-streaming protection has simple yet powerful architecture. A customer signs up links to available media with a hash and WMSPanel agent checks the signature when a viewer tries to connect.

WMSAuth mechanics in action. 

One interesting use case which obviously follows from described links protection is that the link may be presented via designated domains and websites only.

Here's how it works if a regular user tries to play media and if some grabber tries to do the same.

  1. Customer changes his media web pages which show video. Each video has a hash signature which is based on several parameters, including IP and secret password known to a customer only.
  2. If an authorized user opens a page, the link gets signed with signature where his IP is hashed among other parameters.
  3. When the viewer connects to media, the WMSPanel agent checks the hash considering user IP and allows connection.
  4. If the some grabber opens the page, the grabber's IP is used to access so the media is signed respectively.
  5. When the grabbed page is shown somewhere else, the unauthorized viewer tries to open it with his own IP - the new IP which is not hashed in the media signature. The agent checks new IP with IP from the signature and denies connection.
Here's the flow chart for this scenario.

Hotlinking protection with WMSPanel Wowza agent.
This functionality is more reliable than domain lock solutions which are based on Referrer header check. An abuser may easily fake any headers and get these streams while WMSAuth simply cannot be faked at all.

User IP might not be enough for this kind of media protection just because some users may watch the media from behind the proxy or firewall. In this case you can go beyond that and use pay-per-view framework for Wowza. It uses the same principle but it embeds user unique ID into the signature instead of an IP. It also brings wide variety of possibilities for building your own paywall.

To try these hotlink protection mechanics you can sign up for free trial and use it free of charge during first 2 weeks.

Notice that hotlinkng protection is available for Nimble Streamer. With Nimble, you can make unique signature for each individual streamNimble Streamer is the light-weight HTTP streaming server for HLS, Smooth and progressive download. WMSPanel is an official GUI for Nimble Streamer.

Related documentation

Paywall for WowzaGeo and IP range restriction for WowzaWowza hotlinking re-publishing and re-streaming protectionNimble Streamer HTTP hotlinking protectionHotlinking protection with stream-based signatureNimble Streamer geo-location restrictionIntegrating WMSAuth to your websitePay-per-view for Wowza Media ServerBandwidth limitation for Wowzagithub code samples

September 3, 2013

mpeg2ts analysis tool update

Working on Nimble Streamer and also on support of HLS statistics for Wowza, our team is continuously making researches regarding HLS, MPEG2TS, MPEG4. As a result we have several tools that help us building great solutions.

Today we've made an update for the mpeg2ts analysis tool. It analyses HLS *.ts files and gets containing streams' info. You can find some examples in this Wiki page.

Now we've added more info info the output, like Adaptation field info.
It is also now able to get and save PES packets info. This info includes all PES packets for all streams of current transport stream.

BTW, during the analysis we found that when ffmpeg tool makes MP4 to HLS transmuxing, it adds too many PAT and PMT tables into *.ts chunks. This doesn't comply with Apple recommendations and makes about 8% additional traffic overhead.
To compare, Wowza follows Apple's comments and makes perfect *.ts chunks.

You can use mpeg2ts analysis tool and make your own comparisons. This tool is part of our open source contribution, check our github repositories for more code.

You may also consider Nimble 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.

Related documentation

Nimble StreamerHLS statistics for Wowza, Softvelum github

September 1, 2013

Custom CSS for white label WMSPanel

WMSPanel is a web service so providing it as a white label branded panel fits web paradigm perfectly. About 1/3 of our customers has set up a white label for their clients and about a dozen of the have set up multiple domains and logos to show their stats under different labeling.

We decided to go further and implemented customizable CSS capabilities. This means that in additional ti having custom domain and logo you can make your white label panel look exactly the same as your main web site.

Here's how it works. WMSPanel has a layout which uses layers. Their position and "decoration" is described via styles in a solid CSS file. So to change the look of the panel an administrator needs a way to re-define CSS styles. This is done by setting up a link to a new CSS which is located on existing web site.

If you want to use customized CSS, you need to follow these steps.

Create custom stylesheets

If you open any WMSPanel page you will see all elements having their IDs. Now using Chrome development tool or Firebug of Firefox, you can check the styles applied to each ID. Once you make changes to the styles you need to save them in a separate CSS file. It will have new stylesheets which override default behavior.

Now upload this file to any place where it will be publicly available.

Create a branded panel

The next step is to create a branded panel using white label capabilities. Read this post to learn how to set up custom domain and company logo.

Use new CSS location

Now being in the same Settings / Branding menu, go to the line for the designated custom domain. It has CSS column - just click on "Set" link to see the following dialog.

Here you just need to point to the location of CSS file you created previously and click on Save. That's it - your branded panel will look according to default CSS with the styles overridden by your custom CSS.


The described CSS approach may turn to be not very flexible in some cases. Current CSS is based on current layout with pre-defined IDs. Those IDs may change over time as our service is continuously improved and reworked. So you need to track the new features released by our team and make sure your custom CSS is compliant to recent changes. The risk or breakage is very low but it still exists.


You may find some examples in our github account repo. E.g. you may use this CSS file to hide all panel menus leaving plain charts.

Read more about WMSPanel streaming reporting.

Related documentation

White label branded panelSSL white label panel