VL Group

Rhymba v3.6 Documentation

HTTP Progressive Streaming vs. HLS

Rhymba Streaming provides two different streaming methods: HTTP progressive and HLS. Which is right for you?

Pros & Cons of HTTP Progressive Streaming

First, a clarification: when we discuss HTTP Progressive Streaming, we're really talking about what amounts to a fancy buffered download, not HTTP Live Streaming. Users can't easily skip around an HTTP progressive stream — they can only jump to a portion of the file that's been loaded. Also, tech-savvy users can relatively easily discover methods to capture & save the stream; in fact, several extensions for Firefox and other browsers exist to make just that as easy as a single click.

But, in terms of ease-of-implementation, it doesn't get much simpler than throwing an HTTP URL to an MP4 or MP3 file at a player (discussions about cross-browser HTML5 vs. other plugin-based approaches aside).

Pros & Cons of HLS (HTTP Live Streaming)

HTTP Live Streaming is a protocol implemented by Apple Inc. as part of their software suite. It works by breaking the overall stream into a sequence of small HTTP-based file downloads, each downloading and loading one short chunk of an overall potentially unbounded transport stream. The biggest advantage of using this protocol is on mobile. Since this protocol was implemented by Apple it naturally works on iOS without the use of libraries, wrappers, or the use of an App. Android has made strides to implement this into their software as well. Third party libraries like hls.js can make implementation much simpler. The ability to encrypt content via AES-256 can also help address security concerns.

So, Which Is Best?

Well... neither. We've used both when dogfooding our APIs, depending on the implementation. It's going to depend on your target audience, your business requirements, and your technical expertise. We can always discuss the two options with you if you have further questions.

Fortunately, however, regardless of which stream delivery protocol you select, your entry point is exactly the same: the Content API's GetStream method.