DVR
This tutorial shows how to configure DVR playback on AMP properly.
-
Pre-requisites
-
Enabling DVR mode
-
Media Temporal Types
-
Calculating UTC timecode
1. Pre-requisites
To leverage the player’s API, the stream must have a valid sliding window regardless of the format HLS, or Dash; most live streams do not have this feature enabled by default and may depend on the CDN capabilities.
2. Enabling DVR mode
AMP does provide a player API to handle the DVR stream playback properly, progress on the sliding window, and a featured player UI.
To enable DVR mode on AMP, the "temporalType"
attribute on the media configuration object should be set to "dvr"
as follow.
var config = {
media: {
guid: "Video 1",
title: "Windowed DVR",
temporalType: "dvr",
source: [{
src: "http://mcqalivesmdvr1-f.akamaihd.net/i/mav001_1@22121/index_800_av-p.m3u8?sd=10&dw=600&rebase=on",
type: "application/x-mpegURL"
}]
};
3. Media Temporal Types
The values for temporalType
represent the following functionality:
-
"vod"
: Used for most finite streams, i.e., clips, movies, series. -
"live"
: Stream will be set on the edge, and most of the player controls will be prohibited, i.e. seeking, rewinding, and forward jumping. -
"dvr"
: Allows users to move through the sliding window during live streaming.
If the temporal type is not provided, the player will detect and choose between live and vod, but not for dvr. |
4. Calculating UTC timecode
UTC timecode can be determined using toUTC
player helper, this function
akamai.amp.AMP.create("amp", config, function(event) {
amp = event.player;
amp.addEventListener("timeupdate", function(event){
const utc= amp.toUTC(event.detail)
})
});
If required, the UTC timecode can be adjusted using startDate property only for for browser native playback
config = {
autoplay: true,
startDate: Date.now()
}