ce47528c by David LaPalomento

Add notes on live stream implementations

Start a doc to track some popular HLS live streams and the manifest features they utilize. Fill out info for Unicorn Media streams.
1 parent e8fc6fc0
1 # Live HLS Research
2 This document is a collection of notes on Live HLS implementations in the wild.
3
4 ## Akamai HD2
5
6 ## OnceLIVE
7
8 ### Variant Playlists
9 Once variant playlists look like standard HLS variant playlists.
10
11 ### Media Playlists
12 OnceLIVE uses "sliding window" manifests for live playback. The media
13 playlists do not have an `EXT-X-ENDLIST` and don't declare a
14 `EXT-X-PLAYLIST-TYPE`. On first request, the stream media playlist
15 returned four segment URLs with a starting media sequence of one,
16 preceded by a `EXT-X-DISCONTINUITY` tag. As playback progressed, that
17 number grew to 13 segment URLs, at which point it stabilized. That
18 would equate to a steady-state 65 second window at 5 seconds per
19 segment.
20
21 OnceLive documentation is [available on the Unicorn Media
22 website](http://www.unicornmedia.com/documents/2013/02/oncelive_implementationguide.pdf).
23
24 Here's a script to quickly parse out segment URLs:
25
26 ```shell
27 curl $ONCE_MEDIA_PLAYLIST | grep '^http'
28 ```
29
30 An example media playlist might look something like this:
31 ```m3u8
32 #EXTM3U
33 #EXT-X-TARGETDURATION:5
34 #EXT-X-MEDIA-SEQUENCE:3
35 #EXTINF:5,3
36 http://example.com/0/1/content.ts?visitguid=uuid&asseturl=http://once.example.com/asset.lrm&failoverurl=http://example.com/blank.jpg
37 #EXTINF:5,4
38 http://example.com/1/2/content.ts?visitguid=uuid&asseturl=http://once.example.com/asset.lrm&failoverurl=http://example.com/blank.jpg
39 #EXTINF:5,5
40 http://example.com/2/3/content.ts?visitguid=uuid&asseturl=http://once.example.com/asset.lrm&failoverurl=http://example.com/blank.jpg
41 #EXTINF:5,6
42 http://example.com/3/4/content.ts?visitguid=uuid&asseturl=http://once.example.com/asset.lrm&failoverurl=http://example.com/blank.jpg
43 ```
44
45 ## Zencoder Live