Opened 7 years ago

Closed 5 years ago

#4571 closed enhancement (fixed)

HLS VOD m3u8 manifest support

Reported by: Chris Ballinger Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: hls m3u8
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Currently hlsenc.c supports generating a "live" manifest that is updated with a moving window of segments. There are two other types of manifests, VOD and event.

VOD manifests contain every segment and are useful to generate simultaneously with the live manifest, so when an event is over, a full version of the event is immediately available.

This could be achieved by simply adding "#EXT-X-PLAYLIST-TYPE:VOD" as the second line at the top of another manifest that contains all segments.

#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
fileSequenceA.ts
#EXTINF:10.0,
fileSequenceB.ts
#EXTINF:10.0,
fileSequenceC.ts
#EXTINF:9.0,
fileSequenceD.ts
#EXT-X-ENDLIST

The "event" type (#EXT-X-PLAYLIST-TYPE:EVENT) is similar to the live type, however instead of a sliding window, the manifest grows only by appending new segments. This allows a user to join a live event but seek to the beginning of a stream. When an event is finished, an event manifest is more or less equivalent to a VOD manifest.

Full documentation is here:

https://developer.apple.com/library/ios/technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238-CH1-TNTAG2

Change History (4)

comment:1 by Chris Ballinger, 7 years ago

Keywords: hls vod apple m3u8 added

comment:2 by Carl Eugen Hoyos, 7 years ago

Keywords: vod apple removed
Priority: normalwish

comment:3 by Steven Liu, 5 years ago

-f hls hls_playlist_type can fix this

  -hls_playlist_type <int>        E....... set the HLS playlist type (from 0 to 2) (default 0)
     event                        E....... EVENT playlist
     vod                          E....... VOD playlist

comment:4 by Carl Eugen Hoyos, 5 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.