Search code examples
algorithmlive-streamingmpeg-dash

How to know when a Live Streaming has ended in MPEG DASH?


I'm doing a player for MPEG DASH and, after reading the ISO, I'm not sure how to know if the Live Streaming ended?

So far, I build the URL based on the BaseURLs with the (SegmentTemplate + Representation) combination and, I can do the download of the segments from the SegmentTimeline but, there is an easy attribute to check for:

  • Know how often should I update the MPD
  • Know what attribute/formula should I validate in order to stop streaming?

Is not like I can download until it breaks. Isn't it?


Solution

  • There's a section in the DASH-IF Interoperability Points document:

    5.2.9.5.3. End of live content

    Live services can reach a point where no more content will be produced - existing content will be played back by clients and once they reach the end, playback will cease.

    This document requires:

    • When this occurs, services SHALL define a fixed duration for the last period, remove the MPD@minimumUpdatePeriod attribute and cease performing MPD updates to signal that no more content will be added to the MPD.
    • The MPD@type MAY be changed to static at this point or later if the service is to be converted to a static MPD for on-demand viewing.

    See also the discussion here.