JIT trick play support

To enable trick play, no additional configuration changes are required in the Origin Server. Trick play assets can be created while accessing them using the URL that contains the kfonly or HDS-KFOnly tags.

When a file that contains the kfonly or HDS-KFOnly tags in the URL is accessed through the Origin server, it's is created from the asset located at the same URL if it doesn't exist. In this case:

For example, if the file at the URL http://localhost:8090/_default_/_default_/kfonly/livestreamSeg1-Frag39679is accessed and the file doesn't exist on the disk, then a keyframe-only HDS fragment is generated just-in-time from the source fragment at the URL http://localhost:8090/_default_/_default_/livestreamSeg1-Frag39679.

The following is a sample set level F4M that lists a JIT derivable trick play stream:

http://ns.adobe.com/f4m/2.0" 
<manifest xmlns="> 
	<baseURL>http://localhost:8090/_default_/_default_/</baseURL> 
	<dvrInfo windowDuration="1800" /> 
	<media href="livestream.f4m" bitrate="1500" /> 
	<media href="kfonly/livestream.f4m" type="video-keyframe-only" bitrate="1500" /> 
</manifest>

For HLS, trick play assets can be JIT created on Primetime Origin Server 1.2 and accessed using a URL containing kfonly tags. For a published live/vod stream, the corresponding trick play stream will be available at:

Original URL JIT Trick Play URL
http://host:port/container/module/rel_path/streamName.m3u8 http://host:port/container/module/rel_path/kfonly/streamName.m3u8

The trick play m3u8 is generated as per the requirements mentioned in section 3.4.12 of HLS Specifications.

HLS Trick Play requires HLS version 4 or higher. The value of the EXT-X-VERSIONtag in all JIT Trick Play HLS streams is 4 or higher (even if the corresponding original stream is at a lower version).

For the above example, it is possible that http://host:port/container/module/rel_path/streamName.m3u8 has #EXT-X-VERSION:3 whereas http://host:port/container/module/rel_path/kfonly/streamName.m3u8 can have #EXT-X-VERSION:4

For HLS, JIT trick play is available for both the HLS streams directly published to Origin and those that are JIT generated at Origin.

Note: For this feature to work, the segment URIs inside the m3u8 should be relative URIs. If m3u8 contains absolute segment URI, JIT Trick Play doesn't work.