Skip to content

Http Live Streaming

Benoît edited this page Feb 1, 2018 · 8 revisions

This app implements Http Live Streaming (HLS).

About HLS

From wikipedia:

HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of its QuickTime, Safari, OS X, and iOS software. It resembles MPEG-DASH in that it works by breaking the overall stream into a sequence of small HTTP-based file downloads, each download loading one short chunk of an overall potentially unbounded transport stream. As the stream is played, the client may select from a number of different alternate streams containing the same material encoded at a variety of data rates, allowing the streaming session to adapt to the available data rate. At the start of the streaming session, HLS downloads an extended M3U playlist containing the metadata for the various sub-streams which are available.[2]

Since its requests use only standard HTTP transactions, HTTP Live Streaming can traverse any firewall or proxy server that lets through standard HTTP traffic, unlike UDP-based protocols such as RTP. This also allows content to be offered from conventional HTTP servers as origin and delivered over widely available HTTP-based content delivery networks.

Client

HLS is consumed by videojs with its HLS dedicated lib.

Encoding

Basic shell encoder

sudo apt-get -y install inotify-tools ffmpeg

inotifywait will be used ti monitor the filesystem and ffmpeg will be used to split video in chunk and generate a .m3u8 playlist.

Checkout encoding shell scripts

External encoder

coming soon...

Clone this wiki locally