HTTP Live Streaming (HLS). Built For Developers.

Our video encoding platform offers a powerful and flexible HTTP Live Streaming solution.

Enhance users' mobile video playback

HTTP Live Streaming (HLS) is a media streaming communications protocol developed by Apple Inc. It is the best way to adjust video quality in real-time according to available bandwidth speeds. With HLS your users will always enjoy the best possible viewing experience, regardless of whether they are connected via WiFi, 4G, 3G or even Edge. No video lag is permitted: you will always stream the right video quality for the right connection.

The delivery process consists of three steps: Multi-Encoding, Segmentation and Delivery.



HTTP Live Streaming HLS

Compatible with iPhone, iPad, iPod Touch,
Android > 3.0, Quicktime, Safari


1. Multi-Encoding

To use HTTP Live Streaming, you first need to convert your original video into an HTTP-based video format ready for streaming. The specifications for this are as follows: H264 video codec, AAC or MP3 audio codec and MPEG-TS video container. Using these standards, you then need to create several output formats with different video bit-rates and different levels of resolution. This will ensure that users will be able to view the videos over connections with different levels of speed.

HTTP Live Streaming - Multi-Encoding

Convert Video

2. Segmentation

HTTP Live Streaming segmentation works by "segmenting" or splitting the main video file into small pieces, usually between 5 and 10 seconds in length. It then generates a m3u8 file listing each segment (like a playlist). During transmission, the built-in player checks this playlist and determines when to switch from one segment to another to ensure that users always experience the best possible video playback.

HTTP Live Streaming - Segments

Convert Video

3. Delivery

At the end of the segmentation process, all of these new, small files will be automatically sent to your CDN or FTP server. When someone connects via a faster connection such as WiFi, high-quality video will be streamed; conversely, if they connect via a slower connection, such as 3G or Edge, lower-quality video will be delivered.

HTTP Live Streaming - Delivery


HTTP Live Streaming made simple

$ curl -u HW-API-Key:apikey -X POST \
-d "video_id=21738377" \
-d "format_ids=HLS_416x234_110K,HLS_416x234_200K,HLS_360p_600K,HLS_360p_1000K,HLS_720p_1500K" \
-d "output_url=s3://accesskey:secretkey@bucket/hls/" \
-d "ping_url=http://mysite.com/heywatch/ping/hls" \
https://heywatch.com/hls/job.json

HTTP Live Streaming API

Using the HTTP Live Streaming feature through our API is easy as pie. You'll just need to add a few lines of code to enjoy our adaptive bit-rate technology.


Read the Documentation »


Sign up for free No credit card required