Dash-Industry-Forum / livesim2

DASH Live Source Simulator v2 in Go
Other
36 stars 6 forks source link

Low-latency does not work well with SegmentTimeline #181

Closed tobbee closed 4 months ago

tobbee commented 4 months ago

The low-latency streaming for SegmentTimeline does not work as well as for SegmentTemplate with Number.

Looking at the download times in Chrome for dash.js, it is clear that the segments are only downloaded after MPD updates, and that full segments are then downloaded. Since the segments are the same in both cases, it seems that the update of the MPD is too late.

This was tested by requesting MPDs for specific times like:

curl https://livesim2.dashif.org/livesim2/segtimelinenr_1/ato_1.75/chunkdur_0.25/ltgt_2500/testpic_2s/Manifest.mpd?nowMS=1715096210000

Here, the MPD updates should happen 0.25s after efter even second, but when looking at what is published, it is clear that a new version of the MPD is only available at a full second.

2024-05-07T15:36:48.0Z => publishTime = 2024-05-07T15:36:46.25Z
2024-05-07T15:36:48.3Z => publishTime = 2024-05-07T15:36:46.25Z
2024-05-07T15:36:48.6Z => publishTime = 2024-05-07T15:36:46.25Z
2024-05-07T15:36:48.9Z => publishTime = 2024-05-07T15:36:46.25Z
2024-05-07T15:36:49.2Z => publishTime = 2024-05-07T15:36:46.25Z
2024-05-07T15:36:49.5Z => publishTime = 2024-05-07T15:36:46.25Z
2024-05-07T15:36:49.8Z => publishTime = 2024-05-07T15:36:46.25Z
2024-05-07T15:36:50.0Z => publishTime = 2024-05-07T15:36:48.25Z

The expected result is that the response at 2024-05-07T15:36:48.3Z should have resulted in an MPD with publishTime 2024-05-07T15:36:46.25Z.