June 15, 2014

Streaming RTMP to HLS

RTMP (Realtime Messaging Protocol) still remains very popular for live streaming. However more and more devices become capable of HLS with no RTMP support. So they need to get live streams with all quality profiles provided by live stream RTMP source.

Nimble Streamer allows transmuxing RTMP into HLS with both single quality and adaptive bitrate if it's provided by the streaming source. Currently the H.264 codec is supported. To set up this transmuxing you need an instance of Nimble Streamer and a video source that will push a stream to that instance.

Let's follow a few easy steps to make it work. Please also check RTMP to ABR HLS set up article and general description of all RTMP related features of Nimble Streamer.

First you may take a look at video tutorial about RTMP setup.

1. Install Nimble Streamer

Installing Nimble is easy. Just follow this easy instruction to install and register Nimble Streamer instance in WMSPanel for further setup. You will see Nimble in servers list.

2. Define application for incoming streams

First you need to describe an application used to process data from streaming source. This application will have settings for a group of incoming streams. This will include authorization and chunks duration.

Go to Nimble Streamer / Live streams settings menu. Global tab has service-wise default Chunk duration for all outgoing HLS streams. It also has 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.

As you see it has application name, chunk duration setting and then publishing login and password.

Notice that you may also select multiple protocols which will be used as output. Just check those which you need for your streaming scenarios - they'll be available for output.

To start receiving data you need to define which interfaces will server listen to. Click on Interfaces tab to see list of defined interfaces.

Click on the "Add RTMP interface" button. To have Nimble get published RTMP, you need to add IP and port to listen to. If you don't specify IP, server will listen to all interfaces on given port. You can add any number of interfaces this way. Make sure interface is not bound by other program.

Once the interface is defined, you may publish media to Nimble.

3. Start publishing

Now you can start streaming from your media source, like FLME, FFMPEG, Wowza or any other encoder with RTMP support. Use application or server credentials which you defined on step 2.

Setting up live stream in FMLE.

If you use encoders which do not support FMLE-like authentication, check this article describing URL authentication RTMP publishing to Nimble Streamer.

4. Define 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 HLS streams transmuxed from RTMP.

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. To use the outgoing stream, click on URL for Player to see dialog showing stream in popular players, their sample code and all URLs to insert into client's player.

5. Defining adaptive bitrate

If you have several streaming sources you can combine them into HLS ABR streams.
Read this article for all details regarding ABR setup and usage.

6. DVR - recording and playback

RTMP may be recorded for further playback via HLS and MPEG-DASH using the DVR feature set. Read this article for setup details.

7. Transcoding

If you need to change content parameters, like change the bitrate, use our Live Transcoder for Nimble Streamer to transform. It has high performance and low resource usage.

8. Server-side ads insertion

When transmuxing incoming RTMP streams, you can use Nimble Advertizer for server-side ads insertion. It provides a framework for inserting pre-roll and mid-roll ads into live streams for further output via RTMP, SLDP and Icecast with custom business logic and per-user ads.
Visit Advertizer web page to find out more.

What's next

As you can see WMSPanel provides easy way of configuring HLS streams with few manual actions.
You may also pull RTMP by Nimble to make HLS. It will also be available for ABR HLS setup.

If you need to secure your RTMP streams, you can also use SSL for RTMP transmission.

RTMP to HLS transmuxing is part of live streaming feature set and may be used as the baseline for many combinations of streaming infrastructures.

Related documentation

Live Streaming featuresLive Transcoder for Nimble StreamerRTMP feature setBuild streaming infrastructure with Nimble StreamerRTMP republishing via Nimble,  


  1. Hi, i can watch from my internal IP. What how can i see my stream from outside my network?

  2. Hi Churu, just replace your local network ip with your external server ip


If you face any specific issue or want to ask some question to our team,

This will give much faster and precise response.
Thank you.

Note: Only a member of this blog may post a comment.