Hi,
I am generating a live dash content with an AllegroDVT encoder.(version 2.53.18),
using the templating mode $Number$.
It seems that MP4Client( version 0.5.1-DEV-rev5173M )
So there is the UTC availabilityStartTime, which is correct, so chunk1 starts at this reference time. And this reference never changes, so availabilityStartTime never changes.
Each chunk has a duration of (duration/timescale)seconds=640ms.
If i start the player very fast, it starts playing.
if i wait let's say 2 minutes, then launch the player, it then tries to download chunks in the future, chunks which are not existing.
In our understanding:
- the startnumber is supposed to represent the first available chunk of the DVR.
- the current chunk number, the most recent chunk, is supposed to be computed like that: (current_UTC - availabilityStartTime_UTC)/duration
It seems mp4client has another computation to find the current chunk number:
- what is its computation?
- why?
BR.
here is a manifest example:
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:mspr="urn:microsoft:playready" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:hbbtv:dash:profile:isoff-live:2012" type="dynamic" availabilityStartTime="2014-04-23T09:27:31Z" minBufferTime="PT8S" minimumUpdatePeriod="PT1S">
<Period id="1">
<AdaptationSet id="1" bitstreamSwitching="true" segmentAlignment="true">
<SegmentTemplate startNumber="2535" timescale="1000" duration="640" initialization="36cdfaa453dce959e0d5d5e7a06f9745/1/$RepresentationID$/init.mp4" media="36cdfaa453dce959e0d5d5e7a06f9745/1/$RepresentationID$/chunk_$Number$.mp4"/>
<Representation id="0" bandwidth="300000" width="352" height="288" startWithSAP="1" frameRate="25/1" scanType="interlaced" mimeType="video/mp4" codecs="avc1.640033"/>
</AdaptationSet>
<AdaptationSet id="2" segmentAlignment="true" lang="und">
<SegmentTemplate startNumber="2534" timescale="1000" duration="640" initialization="36cdfaa453dce959e0d5d5e7a06f9745/2/$RepresentationID$/init.mp4" media="36cdfaa453dce959e0d5d5e7a06f9745/2/$RepresentationID$/chunk_$Number$.mp4"/>
<Representation id="0" bandwidth="64000" audioSamplingRate="32000" startWithSAP="1" mimeType="audio/mp4" codecs="mp4a.40.2">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
the missing manifest sample:
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:mspr="urn:microsoft:playready" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:hbbtv:dash:profile:isoff-live:2012" type="dynamic" availabilityStartTime="2014-04-23T10:04:32Z" minBufferTime="PT8S" minimumUpdatePeriod="PT1S">
<Period id="1">
<AdaptationSet id="1" bitstreamSwitching="true" segmentAlignment="true">
<SegmentTemplate startNumber="730" timescale="1000" duration="640" initialization="a73446230653912955e43523116b389c/1/$RepresentationID$/init.mp4" media="a73446230653912955e43523116b389c/1/$RepresentationID$/chunk_$Number$.mp4"/>
<Representation id="0" bandwidth="300000" width="352" height="288" startWithSAP="1" frameRate="25/1" scanType="interlaced" mimeType="video/mp4" codecs="avc1.640033"/>
</AdaptationSet>
<AdaptationSet id="2" segmentAlignment="true" lang="und">
<SegmentTemplate startNumber="729" timescale="1000" duration="640" initialization="a73446230653912955e43523116b389c/2/$RepresentationID$/init.mp4" media="a73446230653912955e43523116b389c/2/$RepresentationID$/chunk_$Number$.mp4"/>
<Representation id="0" bandwidth="64000" audioSamplingRate="32000" startWithSAP="1" mimeType="audio/mp4" codecs="mp4a.40.2">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>