Quantcast
Channel: Softvelum news: Nimble Streamer, Larix Broadcaster and more
Viewing all 436 articles
Browse latest View live

RTMP playback support in Nimble Streamer

$
0
0
From the time of its wide adoption, RTMP played an important role in media streaming. Along with Flash player, it opened online video capabilities for huge audience of developers and consumers. Even though now RTMP market share continuously decreases, this protocol is still the best option when it comes to real-time streaming as it has the least latency among other technologies. It is also used as a fallback for HLS, HDS, SmoothStreaming or DASH when it comes to platforms which do not support these protocols. Thus people keep using this protocol and we need to provide best user experience in streaming.

Nimble Streamer team has added RTMP streaming support for playback and pull for scenarios when Nimble has RTMP stream as an input. Both published and pulled RTMP sources are supported.

Follow the steps described below to get RTMP output. Please follow all steps and notice the RTMP playback disclaimer which is important if you plan using result RTMP in Flash-based players.


1. Install Nimble Streamer


Use this installation instruction to get Nimble on your server or desktop. Or ask us to install it for you, we can do it free of charge.

To take RTMP streams for transmuxing, you need to specify available sources. After that Nimble will pick them up and start producing streams for immediate use.

Go to Nimble Streamer -> Live Streams Set Up menu to see list of available servers.

Available Nimble Streamer instances.
Then choose a server to make settings. Most of actions may be applied to multiple servers at once so you can choose any of them.

Incoming streams settings.
Now click on RTMP settings button to proceed with any of 2 possible scenarios:

  • get published RTMP streams;
  • pull RTMP streams.

2. RTMP setup


You may combine both scenarios and process both types of incoming streams to get outgoing streams.

Published streams setup


Going into RTMP settings page, first you'll see several tabs. First one you need is Global. These are global server settings. These are as follows.
  • Default chunk duration used for outgoing streams.
  • Default chunks count for the playlist or manifest - this is used for HLS and DASH.
  • Protocols which will be produced - you can generate all 5 supported types or just one of them, it does not affect the performance much. Clicking on RTMP will give setup instruction for enabling Flash playback - see "RTMP Flash playback setup" section below for details.
  • Push login and password for published streams - they will be used by default for published streams but can be overridden by individual apps settings.
Global RTMP setting for Nimble server instance.

You may also define individual applications' settings. Go to Applications tab to add new apps. Each app has the same set of fields as Global server settings.

Individual applications' settings.
New application settings.

You may apply new application settings to several Nimble servers instances. Just click on the checkboxes with their names in the dialog - the setting will be applied to each server within a few seconds.

To make Nimble Streamer capable of getting published RTMP streams, it needs to listen to a specific interface - address and port. Go to Interfaces tab and click on Add interface.

Interfaces list.
You'll see a dialog for specifying an address and a port to listen to. You may leave IP address blank, in this case Nimble will listen to all IP addresses available.

You may also apply new settings to multiple servers to convenience of administration.

Adding new interface to process RTMP publishing.

If you have only published streams, then you can move to "RTMP Flash playback setup" section.

Pulled streams setup


If your streaming content is available via available RTMP streams, you may pull them into Nimble instances for further transmuxing. To make proper settings, go to Live pull settings tab. 

Pulled RTMP streams list.

There you click on Add URL button to see new dialog for adding new stream to transmux. There you enter:
  • URL - the address of RTMP stream.
  • Fallback URLs - if you have multiple sources of the same stream, you may specify them to make robust streaming, so if main stream goes down, secondary streams could be used.
  • Application and stream are the the names which will be used for DASH stream URL.
As already mentioned in other settings, you may apply this setting to multiple servers - just click on the checkboxes with their names.

New pulled RTMP stream settings.
Once it's saved, you'll see it in settings list.

New stream in the list.
The output streams will be served via protocols which are set up in server global or application settings.
E.g. if you've set up "live" app individual settings in "Applications" tab and set it to produce RTMP and HLS, then pulled streams will be processed to produce RTMP and HLS.

Now the RTMP outgoing streams will be produced as soon as the incoming stream arrives. Before using those outgoing streams, please read about Flash playback setup.

RTMP Flash playback setup


By choosing the RTMP output, you get RTMP streams which might be pulled by other media servers (e.g. Nimble, Wowza, Red5 etc) and played by various media players (e.g. VLC, ffplay etc).

By default, this stream will not be played in Flash-based players.

To make it play in Flash, go to Nimble configuration file and set the following flag:
rtmp_handshake_digest_enabled = true
then re-start Nimble Streamer instance.
This will enable Flash player playback.

RTMP Flash playback disclaimer


Enabling the RTMP playback flag and using Flash player RTMP playback via Nimble you may violate some of existing patents. So by enabling the flag you agree that you operate under jurisdiction of the country which does not honor software patents.

Using outgoing streams


Having incoming streams defined and processed, you may now use the results of Nimble Streamer work for streaming your content via the protocol which you selected in global or application settings.

Click on Outgoing stream area on a chart or Outgoing link on top of the setup area. You will see all streams that are currently processed and ready for usage. Each stream has
  • status, 
  • names of servers which have this stream running, 
  • stream name for playback URL,
  • video and audio parameters and options,
  • link for getting playback URL - it's a question mark icon.

Available outgoing streams list.
To use the outgoing stream for playback, click on question mark icon to see Sample URL for player dialog. Here you see links for all protocols which you defined for this server in global settings. In our case it's HLS, DASH and RTMP.


Providing RTMP streams allows settings up various scenarios from playback to live media delivery between origins and edges. The delivery case is a good addition to RTMP re-publishing feature set which uses stream publishing rather then stream pulling.

RTMP playback is also working fine with hotlink protection, geo-restriction and other features from our Paywall framework.


Related documentation


Nimble StreamerRTMP re-publishing, WMSPanel paywallHLS live streaming, DASH streaming,


WMSPanel geo and ISP reporting API

$
0
0
WMSPanel cloud service is known for its reporting feature set available for various types of media servers such as Wowza, Nimble Streamer, Flussonic and more. WMSPanel provides rich API for obtaining various data from our products.

So now we introduce API methods for obtaining geo-location and ISP statistics available in our reporting framework.

To use this feature set, run the designated methods from listed below. Full list can be found in WMSPanel products API reference.
Each method is illustrated sample request URL which you may use via any technique or programming language. If you run it from command line, check this FAQ question as well.

Follow us to learn about new features and contact us in case of any questions.

Related documentation


WMSPanel API reference, WMSPanel reporting feature set, Nimble Streamer status API, WMSPanel Paywall

Stream aliases in Nimble Streamer

$
0
0
Stream aliasing is a well-known technique in media streaming. It allows mapping multiple names to single media stream in order to add some flexibility into streaming process.

Nimble Streamer now supports it as well, with WMSPanel being an easy-to-use UI to set it up. It allows defining applications which will be covered by mapped applications' aliases.

Basically, aliases are good for case when you have some media stream and you need to provide it under different names. As example, you are a content provider and want to give your stream to multiple partner websites and services.

Here are the major use cases where aliases may work perfectly:
  1. You need different levels of security for each alias. E.g. one of your partners need this stream to be locked to specific country and you need to use geo-location lock. And another partner needs to apply hotlinking protection. Adding separate aliases will allow creating separate security rules via WMSAuth paywall settings.
  2. You need to collect viewers' statistics per each of your partners. In this case after the aliases are set up, you create separate data slice for each partners' alias and give them their own logins in a branded panel. Each slice will have full set of stats for tracking audience performance.
So physically having 1 actual stream, you will give several "virtual" streams, without overhead of resources, but with all benefits of multiple streams.

Let's see how it is set up.
Log into WMSPanel and go to Nimble Streamer -> Aliases top menu. You will see an empty list of aliases.


Click on Add alias to see a dialog as shown below.

Adding new alias.
Here you can specify:
  • Name of application which you'd like to set aliases for.
  • Choose sets of protocols to be applied these aliases to - HTTP-based (HLS, DASH, Icecast) and RTMP.
  • Aliases - you can create any number, setting entering both single names and regular expressions
  • Nimble Streamer instances where you'd like to apply these settings.
Having this being set up, you will see new aliases in the list.

Populated list of aliases

You may move aliases within the list in order to set their priorities. The topmost alias has top priority. You may specify some general alias via regular expression, and then override it with specific alias for some specific stream.

Having this feature set you can set any variation of aliases settings which will help your scenarios and use cases. Contact us if you need any improvements for this feature set.

Related documentation


Icecast control API

$
0
0
WMSPanel provides rich API for obtaining various data from our products. This includes status API for Nimble Streamer which allows getting real-time information about each Nimble instance and make decisions like load balancing etc.

So in addition to existing routes control API we introduce API for controlling Icecast streaming behavior. It can be found when you follow Nimble Streamer -> Live streams set up menu and then click on Icecast settings button for any of Nimble Streamer instances.


To use this feature set, run the designated methods from listed below. Full list can be found in WMSPanel products API reference.


Each method is illustrated by running respective "curl" command but you may use any technique or programming language to do the same. If you run it from command line, check this FAQ question as well.

These methods give basic capabilities for controlling Nimble behavior. Later on we plan introducing new control features, follow us to learn more and contact us in case of any questions.

Related documentation


RTMP streaming control API

$
0
0
WMSPanel provides rich API for obtaining various data from our products. This includes status API for Nimble Streamer which allows getting real-time information about each Nimble instance and make decisions like load balancing etc.

So in addition to existing routes control API and Icecast control API, we introduce API for controlling RTMP streaming behavior. It can be found when you follow Nimble Streamer -> Live streams set up menu and then click on RTMP settings button for any of Nimble Streamer instances. Another functional area is ABR control for live streaming which is found on a separate ABR page for any Nimble instance.


To use this feature set, run the designated methods from listed below. Full list can be found in WMSPanel products API reference.

Start using API
RTMP global and apps settings

ABR settings - this is what defines ABR outgoing streams based on existing single bitrate outgoing streams.

Each method is illustrated by running respective "curl" command but you may use any technique or programming language to do the same. If you run it from command line, check this FAQ question as well.

Follow our blog to learn more about upcoming streaming features and contact us in case of any questions.

Related documentation



Repair Nimble configs after HW failures

$
0
0
Any streaming infrastructure is based on some hardware. Regardless of what hardware you use, it fails sometime. If you use proper balancing techniques, your viewers will not be much affected, however you still will need to make repair and recovery. When the physical server is up and running, you need to restore its streaming settings which you previously defined using WMSPanel web UI. This is where WMSPanel may help and you won't need to make settings manually again.

As WMSPanel is the origin for all admin settings, it may send them back to server again so Nimble Streamer instance could be used as fully functional streaming server again. So we created a procedure for repairing server configs.

All you need is to start Nimble installation and run registration utility in recovery mode.

So let's assume you had a media server registered in WMSPanel. Its HDD crashed, you've replaced it then re-installed your server OS and you need it to be back online as streaming server with same settings.

When installing Nimble Streamer using the procedure listed here, complete the first step called Install Nimble Streamer and then stop at the next step Register Nimble in WMSPanel. Here you need to use special registration procedure. It will register server with old ID and would allow WMSPanel to handle new instance as an old one.

To find the procedure, go to severs list and click on the server name. That server will be shown as "offline" which means it's not sending  There you see the "Recovery manual" button.




Clicking on it, you will get a dialog box explaining the procedure and showing the command for server instance settings repair.



The command will like this one:
sudo /usr/bin/nimble_regutil --recovery-id 81ceadb9-d6c9-xxxx-yyyy-zzzze4fa9221
Now go back to command line where you were installing Nimble and run this command in your server command line instead of default registration command. Once it's done, re-start Nimble as mentioned in installation procedure for your OS.

The server will appear back online in WMSPanel again within a minute.

This is is an example of WMSPanel cloud service benefits. As long as you use cloud for handling infrastructure settings, you will save a lot of time in case of hardware failures. Later on we'll introduce some advanced techniques of settings recovery and replication, stay tuned to our news.

Related documentation


Nimble Streamer installation, Nimble Streamer configuration description, Nimble streaming config,

MPEG-DASH edge re-streaming

$
0
0
One of the first supported scenarios for Nimble Streamer was HTTP media re-streaming. Today this includes now HLS, SmoothStreaming, HDS and progressive download re-streaming. In this scenario Nimble is used as an efficient caching server which is able to handle media content properly. This means that re-streaming of live content will use its own set of caching techniques and VOD re-steaming will utilize cache in other way.

Last year we released a wide MPEG-DASH feature set which included live streamingvideo-on-demand and content protection. Having that, we later joined DASH Industry Forum to participate in its initiatives.

As people discover more use cases for DASH usage, we wanted to provide full features coverage for this protocol. Like, companies consider using DASH for DRM so they need a way to efficiently deliver streams after the content is encrypted. So basically it's a good case for delivery of pre-packetized content to end users.

This is why we introduce the MPEG-DASH re-streaming capabilities in Nimble Streamer.

Re-streaming cache works the same way as for other protocols. Live stream cache is stored for limited time while VOD media cache may be stored for large periods of time.

It's set up the same way as for other protocols like HLS. An administrator defines a route where he specifies:

  • what is the origin of DASH content;
  • what URL is used for accessing data on edge;
  • what servers will handle this route.
Let's see how it works.



Go to Nimble Streamer / Edit Nimble Routes menu to see the list of re-streaming and VOD routes.



Here you can create a route for re-streaming MPEG-DASH via 2 scenarios. First one is to use a re-streaming wizard and the second one is to create a route manually.

Creating via wizard is easy - just click on Re-streaming setup wizard button. A setup dialog will appear asking for URL of origin stream and the list of servers to apply this route to.


It will automatically show the future URL for using in players and will create a route upon clicking on Create re-streaming route button.

To create a route manually, click on Set up edge re-streaming link on top on the page. It will give a dialog which full setup details.


First set of fields described the edge - i.e. where the incoming request must come to, so it could be processed by this route. Second pair of fields described the source of data, i.e. what is origin server and its path to content. You also need to select where the route will be applied to.

After completing any of the scenarios, you will get a new route in the list.



Now if you Get URL for player link you will see a dialog where the URL which can be inserted into your player which supports MPEG-DASH playback, like dash.js or bitdash.

Having this capability as well as other existing ones, you can create delivery networks for MPEG-DASH content for the majority of use scenarios. Contact us if there are some specific use cases which you'd like to cover as well.

Related documentation



Nimble StreamerDASH industry forumMPEG-DASH live streamingMPEG-DASH VOD streamingHLS VOD streamingHLS live streamingHotlink protection and paywall for MPEG-DASHRTMP playback and streaming via NimbleWMSPanel API reference,

Media streaming industry news for April

$
0
0
Our team keeps tracking news about media streaming, online video and audio from around the world. This gives a lot to think about the industry goes and about what we can do.

As usually, we made a small digest of what we thought might be interesting for our customers and followers.

The main event of this month was the NAB Show 2015 in Las Vegas.
Our CEO Yury Udovichenko visited the trade show and met a lot of our customers and partners. You will see some of the results of these meetings in the near future. Take a look at a few pictures from the show in Facebook account (and subscribe to its updates if you haven't done it yet).
One of the visited events was the DASH IF networking reception. Take a look at the inteviews of the participants.
Also, check the best products of the show as seen by Streaming Media magazine.

The Biggest Streaming Media Mergers and Acquisitions list for 2014 might be interesting to see what's going in terms of players' interests.
A couple of acquisitions happend this month as well.
Congratulations to the teams!

“Amazon Web Services is a $5 billion business and still growing fast — in fact it’s accelerating,” says Jeff Bezos. Amazon's first quarter sales proove that.

Jan Ozer intorduced a new article - New HEVC Patent Pool: What Are the Implications? The new technology brings new licensing terms. Also, check Jan's Producing and Distributing HEVC session from last year Streaming Media West conference to see where HEVC is now.
Speaking of Jan, we should mention his digest on DRM Resources on the Streaming Learning Center website.

Check a bit more about protocols and standards:

Those who like everything about drones, will be interested to read recent Dawn of the Drone: An Aerial Video and Photo Primer article.


The State of Streaming Protocols - April 2015

$
0
0
WMSPanel team continues analyzing the state of streaming protocols. April had less views than March but the same share of protocols.

HLS share is on the same level of 77% share while RTMP share (17%) went down insignificantly. Other protocols are at the same position.

All these metrics calculations are based on nearly 2.9 billion views. The stats are collected from 1700+ media servers, including WowzaNimble StreamerRed5nginx-rtmp-module and Flussonic. Check the charts below.

The State of Streaming Protocols - April 2015
The State of Streaming Protocols - April 2015
You can compare that to March stats below.

The State of Streaming Protocols - March 2015

This report is brought to you by WMSPanel team. We'll keep analyzing protocols to see the dynamics. Check our updates at FacebookTwitterGoogle+ or LinkedIn.

Transmux RTSP to HLS, RTMP, DASH and more via Nimble Streamer

$
0
0
RTSP streaming still has its share among other protocols for playback and streaming from some of the encoders, especially from cameras. It's an opened technology available via RFC so companies widely use it for certain use cases and scenarios.

So Nimble Streamer now has support for RTSP protocol as well.
It handles any of allowed streams types:
  • announced RTSP streams published to Nimble;
  • streams available via public URL (i.e. pulled streams).
The output streams protocols are:
  • RTMP;
  • HLS;
  • MPEG-DASH;
  • Icecast;
  • MPEG-TS.
So having one input stream, a streaming administrator may get 5 different outgoing streams to support various client types.



Let's see how this can be set up.

1. Install Nimble Streamer


Use this installation instruction to get Nimble on your server or desktop. Or ask us to install it for you, we can do it free of charge.

To take RTSP streams for transmuxing, you need to specify available sources. After that Nimble will pick them up and start producing streams for immediate use.

Go to Nimble Streamer -> Live Streams Settings menu to see live streaming setup page.

You can proceed with any of 2 possible scenarios or combine them:
  • get announced (published) RTSP streams;
  • pull RTSP streams from available URL.

2. RTSP setup


You may combine both scenarios and process both types of incoming streams to get outgoing streams.

Announced streams setup


Going into Live streams settings page, first you'll see several tabs. First one you need is Global. These are global server settings. they are as follows.
  • Default chunk duration used for outgoing streams.
  • Default chunks count for the playlist or manifest - this is used for HLS and DASH.
  • Protocols which will be produced - you can generate all 6 supported types or just one of them, it does not affect the performance much. Clicking on RTMP will give setup instruction for enabling Flash playback - see RTMP playback article for details.
  • Push login and password for published streams - they will be used by default for published streams but can be overridden by individual apps settings.
Global live streaming settings.

You may also define individual applications' settings. Go to Applications tab to add new apps. Each app has the same set of fields as Global server settings.

Individual applications list.
Defining new application settings.

You may apply new application settings to several Nimble servers instances. Just click on the check boxes with their names in the dialog - the setting will be applied to each server within a few seconds.

Important: to make Nimble Streamer capable of getting published RTSP streams, it needs to listen to a specific interface - address and port. Go to Interfaces tab and click on Add interface.

Defining interfaces for precessing RTSP streams.

You'll see a dialog for specifying an address and a port to listen to. You may leave IP address blank, in this case Nimble will listen to all IP addresses available. The default RTSP port is 554 but your can use any other un-mapped port.

New interface definition.
As in other dialogs, may apply new settings to multiple servers to convenience of administration.

Pulled streams setup


If your streaming content is available via available RTMP streams, you may pull them into Nimble instances for further transmuxing. To make proper settings, go to Live pull settings tab. 

List of pulled streams.

There you click on Add RTSP URL button to see new dialog for adding new stream to transmux. You may enter:
  • "URL" - the address of RTSP stream.
  • Optional "Fallback URLs" field - if you have multiple sources of the same stream, you may specify them to make robust streaming, so if main stream goes down, secondary streams could be used.
  • "Application" and "stream" are the names which will be used for outgoing stream URL.


Of course, you may apply this setting to multiple servers - just click on the check boxes with their names.

Setting new pulled RTSP stream.

Once it's saved, you'll see it in settings list.

The output streams will be served via protocols which are set up in server global or application settings.
E.g. if you've set up "live" app individual settings in "Applications" tab and set it to produce RTMP and HLS, then pulled streams will be processed to produce RTMP and HLS.

Now the outgoing streams will be produced as soon as the incoming stream arrives.

3. Using outgoing streams


Having incoming streams defined and processed, you may now use the results of Nimble Streamer work for streaming your content via the protocols which you selected in global or application settings.

Go to Nimble Streamer / Live streams menu and on the new page click on Outgoing stream area on a chart or Outgoing link on top of the setup area. You will see all streams that are currently processed and ready for usage.
Each stream has:
  • status, 
  • names of servers which have this stream running, 
  • stream name for playback URL,
  • video and audio parameters and options,
  • link for getting playback URL - it's a question mark icon.

Available outgoing streams list.
To use the outgoing stream for playback, click on question mark icon to see Sample URL for player dialog. Here you see links for all protocols which you defined for this server in global or per-app settings. In our case it's HLS, DASH and RTMP.

Besides links, you will be able to tryplaying these streams in any of the popular players. First you choose URL to play then an player from list of available players based on the chosen protocol. E.g. dash.js will be shown only if you choose MPEG-DASH link - manifest.mpd. For the selected player you will be able to see its source code for embedding.



Adaptive bitrate


Having outgoing streams defined, you may also create adaptive bitrate (ABR) streams for HLS and MPEG-DASH. Check the article for HLS and this one for DASH as examples.

Further usage


Having the output streams ready for usage, you may follow various scenarios from playback to live media delivery between origins and edges. For example, check RTMP re-publishing feature set which uses stream publishing rather then stream pulling.


If you have any feedback or feature requests for RTSP, just let us know about it.

Related documentation


Verimatrix VCAS live streams DRM support via Nimble Streamer

$
0
0
Monetizing the content requires various techniques for media protection. Nimble Streamer team helps streamers protecting their content via paywall capabilities which include hotlink protection, pay-per-view, geo-restriction, HLS AES-128 encryption support and some other features.
Now we introduce DRM capabilities for live streaming via Verimatrix Video Content Authority System (VCAS™) support.



VCAS pay-TV operator solution consists of combinations of the components optimized for a specific market segment. Based on a highly modular system architecture and efficient form factor, VCAS is inherently cost effective for the smallest deployment while scaling easily to operations with millions of subscribers.

With VCAS, Nimble Streamer can be used for media encryption and delivery of live content. Having RTMP, RTSP or MPEG-TS input, it will produce HLS streams properly encrypted. Nimble is optimized for handling large amount of viewers and building robust infrastructure so it may be the only element which you need for delivery of media from content owner to consumers. As it's a freeware and it requires low amounts of resources, this would allow decreasing the cost of ownership for your solutions.

Let's see how you can set up Verimatrix VCAS with Nimble Streamer to protect your content.


We assume that we already have VCAS infrastructure ready to use and your system administrator has already installed and set up Nimble Streamer with streams ready to be protected by DRM. Here are the following steps.

1. Find server


Go to Server top menu to see the list of your server. Then click on designated server name to enter its details page.


Now click on "DRM setup link" to open DRM setup page. Here you can see 2 tabs - Global and Applications.

2. Global settings


This tab has settings applied for all apps and streams for designated server.

Verimatrix VCAS global settings for Nimble.
Verimatrix VCAS global settings for Nimble.

  • DRM key is the key which is used for AES-128 encryption by default in regular RFC-based encryption.
  • VCAS key server is the IP or host of the VCAS key server which you use for handling DRM keys.
  • Key rotation interval and Key position count are the ones which you'd like to use for your scenarios.
  • Resource ID may be left blank unless you want to specify it manually. If it's blank, Nimble will generate it.

Clicking on Advanced settings will show you the list of available Nimble Streamer instances from your account so you could apply settings to multiple instances at once.

3. Application settings


The next step is to specify what applications you'd like to apply DRM encryption to. Click on Applications tab.


Now click on Add application setting to see the dialog as shown below.

Verimatrix VCAS application settings for Nimble.
Verimatrix VCAS application settings for Nimble.

In the Application field you need to specify the name of existing streaming application which you'd like to protect. E.g. if you need to protect stream like http://server.com/live/stream/playlist.m3u8 then you need to specify "live". In this case all of its streams' content will be encrypted.

Key rotation interval, Key position count and Resource ID have the same purpose as for Global tab fields, but they will be applied specifically for this app.

You may also apply this app setting to several media servers at once - just check required servers in the servers list.

Saving the application will apply the settings to selected servers.

If no applications are created then the default AES-128 encryption will be applied to all outgoing content with DRM key from Global tab.

What's next


That's it, your content will now be protected with Verimatrix DRM solution and delivered to your content consumers.

Nimble Streamer allows building further delivery scenarios of any complexity:


Lots of other scenarios are possible depending on your streaming network topology. so if you need to build something different, let us know so we could advise.

Related documentation


Nimble Streamer, AES-128 encryption support in NimbleWMSPanel Paywall framework, SSL support for HTTP streaming in Nimble Streamer,

The State of Streaming Protocols - May 2015

$
0
0
WMSPanel team continues analyzing the state of streaming protocols. April had less views than March but the same share of protocols.

The metrics calculations are based on nearly 1.5 billion views, which is twice less than previous month. The stats are collected from 1700+ media servers (including WowzaNimble Streamer and Flussonic) so we consider May was a bit "relaxed" comparing to April for our customers. Also, we introduced HTTP origin for "CDN-friendly" outgoing streaming which was adopted by our key customers - this affected stats as well. However, the picture remained pretty much the same.

HLS share went down to 72% share while Icecast and MPEG-DASH numbers increased. Check the chart below for more numbers.

The State of Streaming Protocols - May 2015
The State of Streaming Protocols - May 2015.

You can compare that to April stats below.

The State of Streaming Protocols - April 2015
The State of Streaming Protocols - April 2015
This report is brought to you by WMSPanel team. We'll keep analyzing protocols to see the dynamics. Check our updates at FacebookTwitterGoogle+ or LinkedIn.

Transmux MPEG-TS into HLS, RTMP, MPEG-DASH and more via Nimble Streamer

$
0
0
MPEG2-TS is one of the most popular streaming protocols used by various types of businesses. It supports several streams types and allows carrying multiple programs within one stream. This is why Nimble Streamer had support for transmuxing MPEG-TS into HLS streams for a long time.

Now it's time to step forward and improve MPEG2-TS feature set with a few great capabilities.

Nimble is able to take MPEG2TS incoming stream via both UDP and HTTP. It transmuxes (i.e. re-packages) streams from either of sources into:


Examples of scenarios for MPEG2-TS streaming via Nimble Streamer.

Supported video formats are MPEG1, MPEG2, MPEG4 and AVC. Supported audio formats are MP3 and AAC. For the outgoing streams protocols that don't support these formats, only the respective subset is used for transmuxing.

The outgoing streams generated from MPEG-TS may be used in adaptive bitrate (ABR) streams produced from other protocols like RTMP and RTSP.

Let's see how it can be set up and used via WMSPanel.



1. Install Nimble Streamer


Use this installation instruction to get Nimble on your server or desktop. Or ask us to install it for you, we can do it free of charge.

To take MPEG-TS streams for transmuxing, you need to specify their sources. After that Nimble will pick them up and start producing streams for immediate use.

Go to Nimble Streamer -> Live Streams Settings menu to see live streaming setup page.

2. MPEG2-TS incoming streams


First thing you will see is the global settings. Here you need to select what output protocols will be generated by default.


You may also go to Applications tab and define the settings specific to some output application name.

Now you need to specify is the incoming stream. Go to MPEG2TS In tab to see available options for adding UDP and HTTP streams.

Defining incoming MPEG2TS streams.
Let's add HTTP stream as example. Click on Add HTTP stream to see the following dialog.

Adding MPEG2TS HTTP stream.
Saving the information will create an incoming stream for further use.

Incoming MPEG2TS stream.
Now you may define what outgoing streams will be created from incoming streams.

3. MPEG2-TS outgoing streams


Click on MPEGTS Out tab to see an empty list of outgoing streams.


Click on Add outgoing stream to see the dialog which allows creating a stream.

Outgoing MPEG2TS stream parameters.
The following fields are used:
  • Application name and Stream name are the strings which will be used for outgoing streams URLs so you can set them according to your naming conventions.
  • Video source and video stream. This is where the video will be taken from for further mix. The source is the incoming stream defined in step 2. The stream can be selected from the drop down list based on the source information. If no information has been received yet, you may select "First video stream" to get whatever is transmitted. If the source has just one stream, it will be picked up by default with no special setup.
  • Audio source and audio stream works the same way as "Video source".

Outgoing MPEG2TS stream.

4. Streams usage


When you're finished with the setup, click on Nimble Streamer -> Live streams and click on the server name to see what we have now.


You'll see the list of incoming streams as received from media sources.

Clicking on Outgoing streams you will see the list of result streams ready for usage.



Besides their parameters, you can see the question mark icon. Clicking on it you will get Sample URL for player dialog showing all possible streams URL for further usage and also several sample players to test the stream.

Sample playback dialog.
You can select the stream name for further usage. The protocols used in drop down list are chosen from the global or per-application settings which you set up on step 2.

5. Adaptive bitrate setup


Having the MPEG-TS, RTMP or RTSP outgoing streams being set up, you may create adaptive bitrate streams output. Go to Adaptive stream area.



Now click on Add ABR setting.

Defining new ABR stream for single MPEG2TS streams.
Here you need first to specify ABR application name and ABR stream name which will be used for URLs of the streams.
After that you need to enter 1 or more sources by entering Source application name and Source stream name. You can add any number of sources so that it would be true adaptive stream.
This setting may be applied to any number of available servers - just select them from the list.

After saving the information you'll see new stream in the list.



You may also assign current server to existing ABR settings previously created for other servers by clicking on respective button above the page.

Now when the ABR stream is defined, you can click on question mar icon and view Sample URL for player dialog to test the streams and to get URL for further usage like you did at step 4 for single stream.


No just copy the URL or the player code and go ahead with using it on your website or application.

What's next


With outgoing single bitrate and adaptive bitrate streams you can use them for streaming scenarios of any complexity. E.g. besides playback, you can use those streams for streams aliasing, hotlink protection, RTMP republishing, HTTP re-streaming and more.

Contact us if you have any feedback or questions regarding Nimble Streamer functionality and usage.

Peer-to-peer streaming with Nimble Streamer

$
0
0
Nimble Streamer can be used as an origin for various streaming scenarios. One of them is HTTP peer-to-peer streaming. This technology allows off-loading origin server or delivery network by exchanging media data between viewers.

Nimble Streamer has a number of features that are required by P2P networks to handle Nimble as an origin. They are the following:
  • Choosing the number of segments in the playlist - it's part of common live streaming setup per-server and per-application.
  • Specifying segment length, this is also set up globally and per-application.
  • Segments may be obtained via byte range HTTP requests.
  • OPTIONS request is also supported.
  • CORS (Cross-Origin Resource Sharing) headers support which includes headers like Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Allow-Methods etc. Read this article for setup details.

You can easily combine P2P infrastructure and traditional streaming. Nimble Streamer works perfectly in both worlds. Take a look at those examples of partner solutions which confirmed their compatibility with Nimble Streamer. If you need any P2P solution for your business, you can definitely give them a try.



Streamroot


Streamroot has built a hybrid peer-to-peer video delivery solution for online VoD and live streaming platforms. Working in tandem with Nimble Streamer, Streamroot optimizes delivery by connecting users viewing the same content at the same time, helping broadcasters reduce bandwidth costs, improve performance and better manage traffic peaks. Streamroot is plugin-free for viewers and is plug-and-play in a variety of popular video players. Check Streamroot demo on their website.

Viblast


Viblast PDN is an advanced peer-assisted video delivery technology. It makes streaming live and on-demand video very efficient through peer-to-peer connections between viewers: you can offload up to 70% of your bandwidth and handle unexpected viewer spikes. Viblast PDN also features Customer portal, Mobile SDK for Android and iOS and plugin-free HTML5 player.
Check Viblast demo on their website.

Related documentation


RTSP streaming control API

$
0
0
WMSPanel provides rich API for getting stats data from WMSPanel and controlling Nimble Streamer.

So in addition to existing RTMP control API and routes control API, we introduce API for controlling RTSP streaming behavior. Manual set up can be done via Nimble Streamer -> Live streams set up menu.

To use this feature set, run the designated methods from listed below. Full list can be found in WMSPanel products API reference. Please also refer to RTSP setup scenarios to see the purpose of each method.

Start using API


Enable API access - this is where all API usage starts from.

RTSP interfaces

RTSP pull settings


Create a RTSP live pull setting
Update a RTSP live pull setting
Delete a RTSP live pull setting 


Each method is illustrated by running respective "curl" command but you may use any technique or programming language to do the same. If you run it from command line, check this FAQ question as well.

Please contact us in case of any issues or questions.

Related documentation


WMSPanel API reference, Nimble Streamer status API, RTSP streaming via Nimble,

Dispersa monitoring multiple edit

$
0
0
Dispersa streams availability monitoring is widely used by our customers around the globe. Many of them monitor dozens and even hundreds of streams. So in addition to having monitoring alerts API to automate notifications, people need a way to make bulk edit of their streams as least from web UI.

That's why we introduce multiple edit for Dispersa monitoring entries. It allows setting the streams and their monitoring behavior.

Go to Monitoring top menu to see list of your streams.

Streams monitoring console.

Here you can see Multiple edit button. Clicking on it you see a dialog with a formatted text representing current settings.




Here's an example of an entry:

  {
    "url": "http://146.185.139.54/local/raw/nimble.mp4/playlist.m3u8",
    "alias": "Nimble Promo Video 1",
    "alert": true,
    "paused": false,
    "checkpoints": [
      "AMS",
      "SFO",
      "NYC",
      "SGP",
      "FRA"
    ]

Each entry has the following structure:

  • url is the URL of the stream to monitor;
  • alias is the name which you see in streams list;
  • alert is a flag defining whether Dispersa must notify account admin or not;
  • paused is a flag defining if this stream is actively checked or if it's not monitored at the moment;
  • checkpoints is the list of checkpoint where the stream is checked. It uses checkpoint 3-character aliases or server ID in case of private checkpoint.


So, setting up these options you can control all stream in your list at once.

Let us know if you think of any other improvements your business might need from Dispersa.

Related articles


Dispersa streams monitoringMonitoring alerts API, Nimble Streamer media server,

Data disaster recovery for Nimble Streamer

$
0
0
WMSPanel collaborates with Nimble Streamer via sync-ups exchange. Nimble is sending statistics data to WMSPanel service for further processing and gets responses.

This scheme assumes that a Nimble Streamer media server is constantly online and it keeps sending sync-ups continuously. Internet is a very complex network and sometimes some of sub-networks and entire countries become invisible to other segments. In this case our server will not be able to send data and this might cause data losses.

Nimble Streamer now has proper improvements to prevent data losses and recover from disasters like that. Here is how it works now.
  1. When Nimble Streamer is launched after installation and registration in WMSPanel, is starts sending sync-ups.
  2. If wmspanel.com is not available for some reason, Nimble still tries to reach it, trying to send sync-ups for several times.
  3. If the service in unavailable for a long time, then the delta for the most useful daily statistics are accumulated on the server side.
  4. When the service becomes available, the calculated data is sent and WMSPanel fills the gap between the moment when the server "disappeared" and current moment.

The following most useful daily statistics are saved and recovered:
  • Connections count - total and per-protocol;
  • Traffic;
  • Peak bandwidth - incoming and outgoing;
  • Average view time;
  • Total view time.

This is the most critical data often used for billing customers, that's why it's saved and recovered. So your critical stats are always safe and you can rely on WMSPanel daily reporting.

Let us know if there are any other WMSPanel data recovery and consistency concerns.

Related documentation


CDN-friendly streaming via Nimble Streamer

$
0
0
Our customers build their own streaming infrastructures using Nimble Streamer in order to have low cost and reliable delivery networks. However, sometimes they need to reach audience which is located in the regions where they don't have their coverage yet.

This is where they start using 3rdparty CDNs. Nimble may serve as an origin for these networks and provide streams for further re-streaming. Some CDNs may require streams URLs without any variable parts, such as sessions identifiers. Nimble uses nimblesessionid parameter to track viewers' sessions but it allows skipping that.

Let's see how Nimble Streamer helps handling it.



Create alias


WMSPanel allows creating aliases for your Nimble streaming applications. This provides capabilities to define different levels of security for same streams and also to have flexible reporting for your end-users.

So you need to create an alias for each HTTP stream which you'd like to provide to your CDN. Please follow streaming alias creation article to see how it's done. It has proper screenshots and examples.

Set up HTTP origin


Now when you have an alias, set it up as HTTP origin. It means that you will inform Nimble that some specific outgoing streams apps will be handled without session information.
Read this article for details and screenshots of the setup.

Now, after passing described 2 steps, CDN won't get sessions info when obtaining the stream and will handle it properly.

You may also secure this new HTTP origin application by defining IP ranges where it will be allowed or forbidden. E.g. your CDN will be able to obtain streams while other viewers will not. Check geo-location restriction capabilities of Nimble Streamer in our Paywall feature set.



If you are able to deliver RTMP to your CDN, you can use RTMP re-publishing capabilities. Take a look at Fastly CDN RTMP publishing setup example.


Let us know if your CDN use case requires any additional setup. It should be possible with Nimble Streamer, so we'll help you.


Related documentation


The State of Streaming Protocols - June 2015

$
0
0
WMSPanel team continues analyzing the state of streaming protocols. April had less views than March but the same share of protocols.

The metrics calculations are based on nearly 1.3 billion views. The stats are collected from 1800+ media servers (including WowzaNimble Streamer and Flussonic). As we introduced HTTP origin for "CDN-friendly" outgoing streaming, part of outgoing connections is not shown in monthly stats.

HLS share is down at 68% share with slight increase of RTMPIcecast and MPEG-DASH numbers. Check the chart below for more.

The State of Streaming Protocols - June 2015
The State of Streaming Protocols - June 2015.


You can compare that to May stats below.



The State of Streaming Protocols - May 2015
The State of Streaming Protocols - May 2015.

This report is brought to you by WMSPanel team. We'll keep analyzing protocols to see the dynamics. Check our updates at FacebookTwitterGoogle+ or LinkedIn.

Protecting media links from web scraping

$
0
0
Security and billing are often considered as most valuable tasks for every media business. It's hard to imagine a company that doesn't care about protecting its own content, which in fact underlies company's gain. Unprotected content can be used by other people for commercial purposes and that actually means missed profit for the content owner.

WMSPanel team provides their customers with set of paywall features for Nimble Streamer and Wowza, those are dedicated to solve the above tasks. The best-known feature is hot-linking protection, which allows to protect specified links from re-streaming and further re-use. Briefly, media URL is accompanied with special signature, which contains information about IP address of viewer and period of time the URL is valid for. So, protected URL can't be used to retrieve media content from any different IP address and expires after predefined period of time. Perfect!

However sometimes, our customers report, that hot-linking protection is broken, because they've seen an application, playing their protected streams. The application's name is usually Kodi, SimpleTV or Targa.me, but that isn't a full list. Reported case looks like re-streaming, but in fact it's not. Those applications don't produce media URL, but scrape it from a web page, which is in most cases accessible for everyone. Roughly speaking, they act as "man-in-the-middle", requesting web page from viewer's IP address, taking URL from that page and pasting it inside its own media player.

So, nothing to worry about? Not exactly.
Content owner may earn a part of his income through the use of advertisement or may want to show press releases to his audience, or anything else. Mentioned applications prevents him from doing all of the above. That's the point, where new task appears: protect media links from web scraping.

And it appears to be not very easy. The only reliable way to protect streams from such applications is using website authorization with some tracking system on media server's side, like WMSPanel pay-per-view framework. In such way, content owner can monitor every user, detect those having too much activity, views or view time and block them.

However, the described approach isn't always applicable for all customers. Especially, if they really want their pages to be accessible without authorization, but nevertheless protect them from URL scraping. In this case, various obfuscation techniques can be used. The point is to generate media URL on web-page instead of just statically assign it. Of course, these technics don't guarantee, that protected URL can't be retrieved, but they can make that task very hard. Especially, if obfuscation processing periodically changes.

The basic approach is to use javascript to generate media URL and store part of the URL inside a web page hidden element. Better to surround it with similar fake elements to avoid preparsing. Another part can be inserted into javascript code as, for example, array of strings and then joined.

<spanstyle="display:none"id="ghniBkSitfacreteus">Ut3lzmz0WGmh5WTFWWsS5aavQdNTmP5=WTUORUbVZtcI1RPd</span>
<spanstyle="display:none"id="ftkgieaechSisruBnt">vdzcW105Fbl=TUsGR3RIWtmZThmPSmWUUWadTtWON5zQ5PVa</span>
<spanstyle="display:none"id="gkSeirausinBathtfc">bmtWSW5QOUIvWlRzcTh5NUZ3PT0mdmFsaWRtaW51dGVzPTU=</span>

<scripttype="text/javascript">
varleatarnAreesuSrbUrigy=["aF9","8xN","ydm","Q25","x1Z","c6N","2YW","I",
"3Rp","T1N","VyX","c2V","GFz","0ma","1ID","TQ6",
"9Ny","gQU","y8y","NDI","bWU","MDE"];
varbteulrSeariAresyraUgn=["Q25","c6N","bWU","1ID","MDE","gQU","c2V","y8y",
"NDI","0ma","TQ6","8xN","ydm","x1Z","T1N","GFz",
"2YW","9Ny","3Rp","I","VyX","aF9"];
varatgauAUesreiynrbSlrre=["c2V","NDI","Q25","0ma","MDE","GFz","gQU","8xN",
"y8y","T1N","1ID","ydm","I","3Rp","c6N","VyX",
"x1Z","9Ny","2YW","TQ6","bWU","aF9"];

functiongetHttpUrl(){
return( ["h","t","t","p",":","\/","\/","l","i","v","e","1",".",
"m","y","s","i","t","e",".","t","v",":","3","4","5","6",
"\/","m","y","a","p","p","\/","m","y","s","t","r","e",
"a","m","1","\/","p","l","a","y","l","i","s","t",".",
"m","3","u","8","?","w","m","s","A","u","t","h",
"S","i","g","n","="].join("")+atgauAUesreiynrbSlrre.join("")+ 
                  document.getElementById("gkSeirausinBathtfc").innerHTML);
}
</script>

So, application would have to use HTML parser and analyze javascript code in order to get the URL. Next steps could be using multiple javascript files, AJAX and even custom player, to make scraping work hard and annoying.

You can download full sample code from our Github repository.

The described approach works both for Nimble Streamer and Wowza media servers. However, if you use Nimble Streamer, you can apply javascript obfuscation to stream-based signature, which allows to provide unique signature for every stream.

Besides that, WMSPanel provides several more security features, such as: Geo-location and IP range restrictions, Domain lock, HLS AES encryption for DRM and more.

Related documentation

WMSPanel, Nimble Streamer, Hotlink protection for Nimble Streamer, Paywall for Nimble Streamer, Paywall FAQ
Viewing all 436 articles
Browse latest View live