Enforce specific live delay to non low latency stream?
Created by: spoeschel
We have the use case that someone watches a DASH stream and meanwhile generates subtitle content that shall be synchronised to the stream then. So this stream (e.g. this one, which is geoblocked to Germany) is required to be reproducibly played with a specific, fixed live delay, let's say with 500ms plus/minus of the desired delay at most.
Currently we work with a two step approach that plays the stream the first time and retrieves the current live latency. After a certain, calculated amount of time (considering the segment size and the fact that playback starts only on segment borders), the stream playback is started a second time, in order to achieve the desired live latency then. This roughly works as expected, but is rather a workaround than a suitable, precise solution.
Reading the documentation and playing around a bit with the configuration, it turned out that dash.js already has a catch-up mechanism (which requires low latency mode to be used) that is used to achieve a specified live delay. This seems to be a good solution (though getting dash.js to seek instead of changing the playback rate by using liveCatchUpMaxDrift
didn't work here).
The stream mentioned above is not a low latency stream. Nevertheless the catch-up feature worked (e.g. using a live delay of 12 seconds). So there is the question, whether the mentioned workaround could be replaced by this feature.
Are there any plans to enable this catch-up mechanism also for non low latency mode? At the moment, the resulting live latency in such a case varies in a range as large as the segment size (therefore the workaround solution decribed above).
Are there any problems to expect, by using the low latency mode with a non low latency stream?