October 14, 2013

Prototyping HLS VOD for MP4

When our team started working on Nimble HTTP Streamer we wanted to concentrate on basic HTTP streaming use cases. First basic things to cover were edge re-streaming and progressive download. Now when basic cases are mostly covered we wanted to try ourselves in handling origin HTTP streaming.

First use case to try is HLS VOD streaming. People want to take their VOD media libraries and stream them to a variety of devices which support HLS (which is quite a lot). So we started implementing this feature set with a prototype to estimate the effort and see major implementation problems.

So some time ago we've completed a small prototype implemented with Ruby and released it on our gihub account. It make re-packaging of MP4 content into MPEG-TS chunk.

It is used as follows:
ruby mp4hls.rb sample.mp4 sample.ts
where sample.mp4 is input MP4 file and sample.ts are output file

This prototype supports the following formats:
  • video+audio;
  • video;
  • audio;
  • original MP4;
  • Apple QuickTime extension;
  • files with CTTS atom in TRAK.
The implementation is available via MIT license and it's not eligible for patent fees according to confirmation from MPEGLA.

We are currently working on this feature set as part of Nimble Streamer so soon it's going to be available as part of the major product.

UPDATE: We've implemented it as part of Nimble Streamer: MP4 transmuxing to HLS VOD streaming

Contact us if you have any questions regarding this product.

Related documentation


Nimble HTTP StreamerMP4 transmuxing to HLS VOD streamingHLS re-streaming set upHTTP pseudo-streaming progressive download, WMSPanel githubWMSPanel Slideshare

No comments:

Post a Comment