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.

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.

List of applications for RTMP to HLS transmuxing.


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

RTMP application setting.


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

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.

Adding interface to listen to RTMP.


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, like Open Broadcaster, check this article describing Open Broadcaster 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.

What's next



As you can see WMSPanel provides easy way of configuring HLS streams with few manual actions. Please read more about all benefits of using Nimble Streamer for handling ABR HLS.

You may also pull RTMP by Nimble to make HLS. It will also be available for ABR HLS setup.

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.

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 NimbleEasy ABR HLS setup from RTMPPay-per-view for Nimble Streamer

2 comments:

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

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

    ReplyDelete