May 6, 2014

Streaming MP3 and AAC via HLS

Video-on-demand feature set is popular among Nimble Streamer customers. Initially we took MP4 format as the most popular one and made its transmuxing into HLS. So Nimble Streamer can be used as an origin for HLS streams in VOD mode.
Another use case requested by our customers is producing HLS stream from MP3 sound files into HLS in VOD mode. This transmuxing allows reducing traffic overhead for streaming audio comparing to traditional MP4 to HLS transmuxing. This is feasible because HLS allows using ID3 PRIV tag with com.apple.streaming.transportStreamTimestamp PTS time mark and produce HLS chunks with bare MPEG audio frames avoiding MPEG2TS transport overhead.
In addition to that, AAC to HLS VOD is supported.

We've made some prototyping and recently has released its support within Nimble Streamer.

So now you can stream MP3 audio transmuxed into HLS. Having your internet radio archive stored in classical MP3, you can make it available on any HLS-enabled device.

Current implementation supports MPEG 1, MPEG 2, MPEG 2.5 codecs with full set of Layer 1, Layer 2 and Layer 3.

It also supports AAC files transmuxing.

Setting up MP3 for HLS transmuxing


Once you install Nimble Streamer, you need to go to Nimble Streamer / Edit Nimble routes.


There you can click on Add VOD streaming route. There you need to enter the source directory where you store your MP3 archive and specify URL path which you will use for access.


Entering MP3 transmuxing route.
In our example it's /var/www/content/mp3/ directory and /radio/ URL path. You also need to select which servers this route is applied to.

Route is ready.
With this route, and some sample.mp3 file in your directory, your media URL may look like this:
http://ny2.video.wmspanel.com/radio/sample.mp3/playlist.m3u8
Please make sure "nimble" user have a read+execute access to /var/www/content/mp3/ directory.

You see that we've selected 3 servers to get this route for processing so you may address your requests to any of those servers. You may also set up DNS failover to make those 3 servers work as a single streaming pool to improve robustness and improve user's viewing experience.

Let us know if you'd like to cover some other use cases related to MP3 streaming.


Related documentation


Nimble HTTP StreamerPay-per-view for Nimble StreamerMP4 transmuxing to HLS VOD streamingTransmuxing RTMP to ABR HLSStreaming VOD with Nimble StreamerVOD re-streaming cache controlCalculating HLS statisticsHTTP pseudo-streaming progressive downloadProgressive download re-streamingDispersa streams monitoring

No comments:

Post a Comment