August 25, 2014

Transmuxing RTMP to Icecast with Nimble Streamer

Icecast remain a very popular protocol for streaming audio over the Internet. Numerous online radio stations use this way to deliver their content due to its simplicity and low overhead.

Nimble Streamer allows transmuxing any RTMP stream into Icecast stream. You may both pull existing RTMP or get published RTMP and produce stream with audio/mpeg MIME type output. Check also Icecast to HLS/MPEG2TS transmuxing and Icecast re-streaming.

This article also applies to other supported protocols like RTSP and MPEG-TS as Nimble has same transmuxing engine for all protocols.

To produce Icecast stream you need to follow these simple steps.

1. Install Nimble Streamer


Follow this easy to use instruction to set up Nimble Streamer instance.

2. Define RTMP settings


Now you need to describe how Nimble will take data from available RTMP source.

Go to Nimble Streamer / Live streams settings menu.

Global tab has service-wise settings.
Chunk duration sets the default duration of chunks for all outgoing streams.
Protocols field allow defining which protocols will be used for providing output streams. If you need Icecast use "Icecast" checkbox. You may have several types of simultaneous streams like HLS and Icecast or Icecast and MPEG2TS.



If you use published RTMP for further transmuxing, you may define Push login and password for applied to all incoming RTMP publishing by default.

These settings can be overlapped by individual applications settings. Click on Applications tab to see list of individual apps.



Click on Add application settings to see a dialog for adding new app setting.



If you pull RTMP streams for further transmuxing, the next tab you may need is Live pull settings. It allows defining live streams from multiple media sources.



Click Add RTMP URL to define new media source.



Here you need to enter URL of RTMP stream and then application and stream name which you'd like to use for outgoing HLS stream.



3. Use outgoing streams


Once the incoming streams accepted by Nimble, you will see the outgoing stream available in Outgoing streams page. Click on Outgoing link or Outgoing section on the streaming scheme picture.

List of ourgoing streams transmuxed from incoming RTMP streams.

Here you can see result streams available for your viewers. You can see its basic parameters of video and audio stream as well as bandwidth and resolution. In case of audio stream it has less details. To use the outgoing stream, click on URL for Player to see dialog showing URLs to insert into client's player.




If you select URLs for the protocols which you defined in global or application-wide settings. If your server has several IP addresses, there will be more URLs to use.


That's it. You may use it now for streaming and use full variety of reporting features to know more about your audience and your streams' popularity and performance.If you select several protocols in application of server-wise settings, or if your server has several IP addresses, there will be more URLs to use.
Having same application my produce URL for several media type like:

  • http://192.168.0.4:8081/sample/stream/icecast.audio - for Icecast
  • http://192.168.0.4:8081/sample/stream/playlist.m3u8 - for HLS output

Metadata


If your Icecast streams have metadata and you want to use it effectively, please read Icecast metadata section here. If your RTMP has Icecast metadata in it, you can insert that metadata into your result Icecast streams, read this article for more details. You may also pass that metadata through Live Transcoder, as described in this article.


You may also consider using RTMP streaming API and Icecast control API to control this behavior remotely. RTMP republishing is also available for scenarios of multiple edge servers live delivery.
You may also apply full featured Paywall framework for your audio streams.

Quality

Qosifire quality monitoring service allows tracking the availability of Icecast streams and perform silence detection.


Example

Online radio snapshot page shows how to use Nimble Streamer and other Softvelum products for building audio delivery.


Related documentation


August 22, 2014

Disaster recovery for Wowza agent

WMSPanel interacts with Wowza Streaming Engine agent via the "agent" - it's an add-on which is installed into Wowza. This agent is sending statistics data to WMSPanel service for further processing.

This interaction scheme assumes that a media server is constantly online and it keeps sending sync-up all the time. However, Internet is a complex infrastructure and sometimes some networks and entire countries become invisible to the global networks. In this case our agent was not able to send data which might cause data losses.

Now WMSPanel team introduces agent improvements to prevent data losses and recover from disasters like that. Here is how it works now.

  1. When Wowza is restarted after agent installation, this agent starts sending sync-ups
  2. If wmspanel.com is not available for some reason, agent 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 agent.
  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. With this feature your critical statistics 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


End user reporting for WowzaIn-depth statistics frameworkDaily statisticsBilling customers using daily stats

August 20, 2014

MPEG-TS over HTTP transmuxing to HLS with Nimble Streamer

Nimble Streamer can already take MPEG2TS over UDP and make HLS transmuxing to produce outgoing HLS stream. This allows accepting multicast and unicast UDP transmissions. Besides UDP, lots of devices and software solutions use MPEG-TS transmission over HTTP for variety of use cases.

Update:
 New article about MPEG-TS transmuxing to HLS, RTMP etc is available. Also, read general Nimble Streamer MPEG2TS feature set page.

Nimble can now accept MPEG2TS over HTTP to produce HLS. The output HLS can be used for single bitrate and adaptive bitrate HLS. Let's see step by step setup for incoming MPEG-TS stream.
  1. Using WMSPanel, define which MPEG-TS stream will be listening for incoming streams via HTTP. Those streams will be used as a source for generating outgoing streams.
  2. Define what outgoing streams will be generated from previously defined incoming streams. They can be used as fixed bitrate streams for your viewers and re-used as a source for ABR set up.
  3. If you'd like to create ABR streams, define adaptive streams using the variety of previously defined outgoing streams.
Nimble Streamer is getting the incoming stream and converting the MPEG-TS stream into HLS chunks. These chunks are being sent to the player right after the request comes in.

You may provide origin streams via HLS protocol, both with fixed bitrate and with adaptive bitrate. This diagram visualizes the described workflow.



Here's the step-by-step instruction for fixed bitrate and adaptive bitrate set up.


August 17, 2014

Publish RTMP from Wowza to Nimble for HLS transmuxing

This article is outdated. Please refer to this article for setting up RTMP incoming streams and use your Wowza documentation to set it up on Wowza side.

Also take a look at Nimble Streamer RTMP feature set digest page to learn more about other features.

August 10, 2014

Utilizing all bandwidth with Nimble Streamer

Our customers use Nimble Streamer for wide variety of scenarios. Some of them use it in extreme use cases when they need to utilize all the bandwidth they have to serve their video to the maximum number of users. Since Nimble is very light-weight, it is possible to get the most of any network available long before running out of resources.

Recently our customer used Nimble Streamer to take all he can from his 10 Gbps channel. And he succeeded. Thousands of viewers were pulling 7 streams of various bitrates, mostly 1.5Mbps.

Here's what collectd monitoring shows, 10Gbps at peak.

Collectd stats.
WMSPanel stats shows similar numbers. The panel gets peak data number each 30 seconds so the data varies a bit from what we see in collectd chart.

Peak bandwidth as seen from Nimble Streamer perspective.

Nearly 13K connection were established within 15-minute intervals, you can see that on the screenshot below. Having in mind real-time monitoring during the event we can say that it had nearly 6000 simultaneous connections to this instance.

Retrospective chart for streaming event.


Did it go well for the host server which Nimble Streamer was running on? Yes, it feels fine. Check the charts for CPU and memory usage. CPU level for 8 cores was less than 40% and RAM amount grew up to 4GB on the topmost peak. The majority of RAM was used by OS networking according to "htop" output.

Nimble Streamer host server parameters.

Fine tuning


This significant amount of connections and bandwidth required additional performance fine tuning. Read this article to learn more about available setup options and check our "Example" section where you can see some reference steps which might be used in case like the one described above.


This is one of the example of how Nimble Streamer can be used for creating high-performance streaming infrastructure. You may also take a look at Nimble's usage as part of large CDN and get familiar with live streaming use cases.

If you have any question regarding Nimble Streamer and its usage, just contact us any time.

Related documentation


Nimble Streamer performance tuningLive streaming with NimbleTransmuxing RTMP to HLSAdaptive bitrate for RTMP to HLSPull RTMP to transmux into HLSNimble configs explainedCPU and RAM level alertsLive Transcoder for Nimble StreamerBuild streaming infrastructure with Nimble Streamer,

August 7, 2014

WMSPanel in-depth stats API

WMSPanel provides a wide variety of statistics for media servers. This includes In-depth statistics, or "Deep stats". This report gives a high detail picture of streaming, so no wonder that our users may need that for integration with their own assets management systems, administration consoles or public appearance.

This is why we introduce a pull API which will help integrating WMSPanel with any system which may need the streaming statistics. All you need to use it, is to make some setup on WMSPanel side and then make proper API calls using any programming technology you like.

Let's go step by step.

1. Set up API on WMSPanel side


To start using the API, you need to make small setup on WMSPanel side.

First, the API should be enabled by WMSPanel team, so please contact us to enable it for your account. Then you need to follow these steps:
  1. Go to Control menu -> API setup -> Pull API tab.
  2. Copy Client ID for further usage in your scripts.
  3. Click on "Generate New Key" to copy API key as well. This will be used for further authorization.
  4. Populate white list with IPs of the hosts where you will be making API call from, like your development machine or your web server. Just enter new IP and click on "Add IP to Whitelist" one by one.
Check this screenshot as a reference:

August 5, 2014

WMSPanel real-time stats API

WMSPanel is often used as part of complex streaming infrastructure. This may require interaction between various system parts hence the need for application programming interface (API). Our team previously introduced a series of APIs like daily statistics push API, pay-per-view framework and RTMP publish/unpublish notifications. Now it's time to provide more statistics.

This article describes the real-time statistics API. It allows getting the data which is used for drawing real-time chart on a client dashboard for data slice and for a given stream.

Let's follow these steps to get the info.

1. Set up API on WMSPanel side


To start using the API, you need to make small setup on WMSPanel side.

First, the API should be enabled by WMSPanel team, so please contact us to enable it for your account. Then you need to follow these steps:
  1. Go to Control menu -> API setup -> Pull API tab.
  2. Copy Client ID for further usage in your scripts.
  3. Click on "Generate New Key" to copy API key as well. This will be used for further authorization.
  4. Populate white list with IPs of the hosts where you will be making API call from, like your development machine or your web server. Just enter new IP and click on "Add IP to Whitelist" one by one.
Check this screenshot as a reference:

Setting up pull API parameters.

August 4, 2014

Streaming sports events with Rocksoft Cloud Media Solution and Nimble Streamer

The whole world spent 4 exciting weeks in June and July of 2014 watching the most anticipated premium sports event in the world. The most prestigious tournament brought a lot of attention and people from around the globe watched it via streaming both in real time and on demand.

Our team has also made a contribution to this festival of sports streaming.

Rocksoft Cloud Media Solution (RCM), the streaming project of Cloud CDN Sdn. Bhd., has used Nimble Streamer and WMSPanel as integral parts of their streaming network to perform this event streaming to one of its client.

RCM solid integrated platform is powered by several key elements such as Ethernet Fabric networking serving as a basis for self-forming, self-healing and highly resilient automated cloud network ensuring non-stop networking, traffic director anycast DNS technology allowing closest and best possible connection to the end-user and dynamic stream optimization to compress the video and provides superb video quality at lowest possible bit-rates allowing the stream to be played even in slow 3G mobile connection. And of course secure streaming servers running Nimble Streamer with excellent analytic in WMSPanel.

The initial video was taken directly from stadiums via live satellite downlink and ingested to RCM. After that the live stream was both delivered to viewers real-time and recorded for further on-demand watching. The major delivery protocol for end users was HLS (Apple’s HTTP Live Streaming) . Let’s see how this was handled.


Nimble Streamer as used in Rocksoft Cloud Media Solution.