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 Iceast 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.

Applications' individual settings list.


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

Adding new Iceast application 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.

Adding new source of RTMP media.


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.

List of individual RTMP pulled streams settings.

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

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.
To make sure your streams are available, set up Icecast streams monitoring with Dispersa.

Related documentation


No comments:

Post a Comment