Why use HTTP Live Streaming (HLS)? When should you use HLS? What is HLS?

 

 

 

HTTP Live Streaming (HLS)

Why use it? What does it do? Why do I even care at all?

[/vc_welcome1]

 

[vc_text_separator title=”3 Reason Why You Want to Use HTTP Live Streaming” title_align=”separator_align_center” title_heading=”h1″ separator_type=”type1″ margin_top=”0″][vc_toggle title=”Reason #1″ open=”true”]

You want your video in an iOS app, either iPhone or iPad. Apple requires HTTP Live Streaming for that, and they are very strict about enforcing their guidelines.

[/vc_toggle][vc_toggle title=”Reason #2″ open=”true”]

You wanted multi bit rate video for iOS devices. You can save bandwidth by not forcing HD video to someone who can receive it, or ensure your video is seen at all (see reason #3)

[/vc_toggle][vc_toggle title=”Reason #3″ open=”true”]

You anticipated iOS devices requiring rapid quality changes (for example: someone on a bus in San Francisco watching your video, going from 3G to 4G to LTE, back to 3G, as they moved through the city).

[/vc_toggle]

 

 

So what is HLS good for? Why not just use mp4?

 

Visualize someone riding around San Francisco in a bus. As the bus drives around, they move from WiFi, to 3G to 4G LTE to Edge (anyone remember that? it’s slow). Their internet connection changes as they move about.

 

HLS allows the bit rate quality of the stream to rapidly adjust to the user’s bandwidth. Here’s a visual representation (saying visual representation is being liberal, I know, but bear with me here) of what Apple’s HTTP Live Streaming does for this person’s iphone / ipad on the bus:

 

(For purposes of this demo, “>>” represents a chunk of video (it’s a .ts chunk of mpeg2)

 

>> User requests the video from your page.
>>The player embed references the ‘main’ m3u8 file as the ‘source’ that points to the HLS video on gravlab’s CDN

>>> — http://yourcompany.gravlab.net/your_account/your_video.m3u8

 

then the bandwidth negotiation begins at 800k, which was determined by Gravitylab’s streaming servers to be the highest quality the requesting iPhone would allow in its current network environment:

 

>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–600k.m3u8
>>—————–600k.m3u8
>>—————–600k.m3u8
>>—————–600k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–200k.m3u8
>>—————–200k.m3u8
>>—————–200k.m3u8
>>—————–400k.m3u8
>>—————–200k.m3u8
>>—————–110k.m3u8
>>—————–64k.m3u8 (audio only, the bus must be in South America now)
>>—————–200k.m3u8
>>—————–200k.m3u8
>>—————–400k.m3u8
>>—————–400k.m3u8
>>—————–400k.m3u8
>>—————–400k.m3u8
>>—————–600k.m3u8
>>—————–600k.m3u8
>>—————–600k.m3u8
>>—————–400k.m3u8

** [ Back to Wifi !! ] **

>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8
>>—————–800k.m3u8

 

>> Video Ends >>

 

So what you’re looking at up there, is different pieces of video being delivered depending on the user’s connection speed as they travel around through different areas of connectivity.

 

You could also apply that to a household or office environment, where the bandwidth changed depending on network congestion or heavy usage locally (e.g. in a house, the bandwidth getting throttled when the kids got home from school because they’re playing online games or watching internet TV).

 

Gravitylab can transcode your source video to HLS, as well as host and stream Apple HLS: Get started.

 

 

 

4 karma points