DASH Service Description
To test this feature and view the example code, please see the Browsers and Connected TV SDK 5 Example Code Quick Start guide.
DASH Streams
A DASH manifest must have support for Service Description to use this feature.
The CONNECT Player SDK has low latency support for the DASH ServiceDescription
tag, which the application can use for live synchronization. The encoder generates the content with this tag to give the user experience the desired latency and playback speed as guided in the service description tag of the Manifest.
<ServiceDescription>
<Scope schemeIdUri="urn:dvb:dash:lowlatency:scope:2019"/>
<Latency min="1000" max="20000" target="3000" />
<PlaybackRate min="0.96" max="1.04"/>
</ServiceDescription>
Example code
Latency on Live must be enabled while setting up the player for each stream. Once the player is set up and loaded, the desired Service Description values can be accessed from the Manifest as demonstrated below and are part of the example code.
let maxPlayRate;
let maxPlayLatency;
if(manifest) {
if(manifest.serviceDescription) {
maxPlayRate = manifest.serviceDescription.maxPlaybackRate;
maxPlayLatency = manifest.serviceDescription.maxLatency;
}
}
Live Sync mode is always true by default, which means the player obliges the service description values in the Manifest under the ServiceDescription
tag. If the Live Sync Mode is set to false, the default MaxPlaybackSpeed
is 1.1, and MaxLatency
is 5000, irrespective of the ServiceDescription
tag values.
If the application wants to disable this feature and keep it to normal low latency playback, with a catch-up speed of 1x, despite the content manifest having the Service Description tag, it needs to deactivate it by configuring the player streaming configuration during player setup.
player.otvtoolkit().configure({streaming: {liveSync: true, liveSyncPlaybackRate: 1}})
By setting the above configuration, the ServiceDescription
tag values are overridden, and the player speed is maintained at 1x, which never catches up to the live.
This feature is enabled in the player by default, i.e., it is automatically enabled for any live stream containing the ServiceDescription
tag, regardless of whether low latency is enabled.
Currently, there is no support for target
Latency and min
PlaybackRate, which may cause the playback latency to go up abruptly depending on the network bandwidth, content resolution, larger segment size, etc., causing the playbackSpeed
to remain on the higher boundary as per the ServiceDescription
tag in the Manifest.