Search code examples
video-streamingplaylisthttp-live-streamingmpeg-dash

Adaptive Streaming player playlist update interval


Regarding the behavior of an adaptive streaming player (concretely I'm interested in HLS and DASH), how often should it reload the playlist? Is this specified or up to the player implementation?

When it reloads the playlist, is it done only for the so-called variant playlist or also the master is every time reloaded?

Is this different for live and for on demand content?


Solution

  • In case of MPEG-DASH, the MPD specifies the minimumUpdatePeriod attribute which signals the client the smallest period between potential changes to the MPD. This helps the client application to determine the frequency at which it should update/re-download the MPD. If for example minimumUpdatePeriod is 10 seconds you could update/re-download the MPD every 10 seconds and you should be fine.

    HLS does not contain a specific attribute for that (to the best of my knowledge -> the draft changes) but you can update the M3U8 based on the segment duration, e.g., if the playlist contains segments with 10s you should update every 10s (every 10s a new segment could be available in case of a live stream). If the segment duration varies you could calculate an average based on the segments that you already downloaded and update on that interval.

    You could also take a look at existing implementations such as JWPlayer, which both support HLS and DASH. If you want to generate HLS and DASH content for testing you could use ffmpeg&mp4box.