Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

HTTP Live Streaming - Videos On Demand (HLS - VOD)

0.00/5 (No votes)
13 Aug 2013CPOL1 min read 14.4K  
Videos on demand.

Introduction

HTTP Live Stream, also known as HLS, is cool.  Really cool. The concept is fairly simple, people have numerous different network speeds and those speeds can change over time as well - so how do we deliver the user the best quality streaming media in the fastest way possible? The short answer is take your media and encode it to numerous different outputs that range in bitrate so that you can dynamically select which source to be shown at any given time. Now the specification for the protocol can be daunting and the vast configuration possibilities can be overwhelming, but truly, the simplicity of creating a video on demand that supports HLS is quite easy - and all platforms support it.  In this article I will go step by step through the process of how to take a source video and then output it into the numerous bitrate videos we wish to use and I will then convert those videos into HLS compliant streams and stitch them together. I'll finish with a link to my github repo that has an open source Mac OS X project for converting a source video into a variable bitrate HLS stream, which can easily be hosted (I use an S3 bucket) and immediately start providing dynamic video content to your users.  See Apple's documentation of the technology for more thorough explanation and detail of how to use the protocol.

Anatomy of an HTTP Live Stream

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)