Opened 5 years ago

Last modified 15 months ago

#9281 new defect

wrong $Number$ value while reading mpd

Reported by: Kostik Owned by:
Priority: normal Component: avformat
Version: unspecified Keywords: dash
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by Carl Eugen Hoyos)

Hello,

using the latest static build ffmpeg version N-57631-gebedd26eef-static
I want to read mpd and convert to mpegts - this part works ok,
except one manifest
looks like ffmpeg make wrong calculation for $Number$

In my case I have
availabilityStartTime="2021-05-27T11:59:16Z"
media="$RepresentationID$-$Number$.m4s"
duration="180180"
startNumber="487925"
presentationTimeOffset="89360526151"

I expect $Number$ to be converted to 488430 (and other players do so), but ffmpeg try retrieve 397033568

here is full manifest

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" type="dynamic" minimumUpdatePeriod="PT6S" minBufferTime="PT1.000S" maxSegmentDuration="PT3.003S" availabilityStartTime="2021-05-27T11:59:16Z" timeShiftBufferDepth="PT36.036S" publishTime="2021-06-07T19:25:48Z" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period id="487925" start="PT976813.47S">
    <AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" maxWidth="1280" maxHeight="720" maxFrameRate="60000/1001" par="16:9">
      <InbandEventStream schemeIdUri="urn:mpeg:dash:event:2012" value="1"/>
      <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015" value="CC1:und;CC2:und"/>
      <SegmentTemplate timescale="90000" media="$RepresentationID$-$Number$.m4s" startNumber="487925"/>
      <Representation id="video1" width="1280" height="720" frameRate="60000/1001" sar="1:1" scanType="progressive" bandwidth="6562944" codecs="avc1.640029"/>
    </AdaptationSet>
    <AdaptationSet mimeType="audio/mp4" lang="en" segmentAlignment="true" startWithSAP="1">
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
      <SegmentTemplate timescale="90000" media="$RepresentationID$-$Number$.m4s" startNumber="487925"/>
      <Representation id="audio1" audioSamplingRate="44100" bandwidth="96000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet mimeType="audio/mp4" lang="es" segmentAlignment="true" startWithSAP="1">
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="dub"/>
      <SegmentTemplate timescale="90000" media="$RepresentationID$-$Number$.m4s" startNumber="487925"/>
      <Representation id="audio2" audioSamplingRate="44100" bandwidth="96000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
  </Period>
  <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2021-06-07T19:25:48Z"/>
</MPD>

Change History (2)

comment:1 by Carl Eugen Hoyos, 5 years ago

Component: ffmpeg → avformat
Description: modified (diff)
Keywords: dash added; mpd manifest removed

comment:2 by Chris Woods, 15 months ago

This is still an issue in latest ffmpeg builds. Some DASH manifests seem to cause ffmpeg to incorrectly calculate the segment numbers. This behaviour is being noticed in various programs which depend on ffmpeg for DASH playback.

A working example, using mpv

<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" profiles="urn:dvb:dash:profile:dvb-dash:2014,urn:dvb:dash:profile:dvb-dash:isoff-ext-live:2014" type="dynamic" availabilityStartTime="1970-01-01T00:01:00Z" publishTime="2025-05-27T10:34:23.736Z" minimumUpdatePeriod="PT8H" minBufferTime="PT10S" timeShiftBufferDepth="PT2M" maxSegmentDuration="PT4S">
  <Period id="1" start="PT0S">
    <AdaptationSet id="1" contentType="audio" mimeType="audio/mp4" segmentAlignment="true" audioSamplingRate="48000" codecs="mp4a.40.2" startWithSAP="1" group="1" lang="en">
      <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
      <Representation id="pa9" bandwidth="192000">
        <SegmentTemplate initialization="a=pa9/b=192000/segment.init" media="t=4000/a=pa9/b=192000/$Number$.m4s" timescale="48000" duration="192000"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="2" contentType="video" mimeType="video/mp4" segmentAlignment="true" sar="1:1" startWithSAP="1" group="2" par="16:9">
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
      <Representation id="pv54" bandwidth="24000000" width="3840" height="2160" codecs="hev1.2.4.L153.00.00.B0" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv54/b=24000000/segment.init" media="t=4000/v=pv54/b=24000000/$Number$.m4s" timescale="200" duration="800"/>
      </Representation>
      <Representation id="pv49" bandwidth="14000000" width="2560" height="1440" codecs="hev1.2.4.L150.00.00.B0" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv49/b=14000000/segment.init" media="t=4000/v=pv49/b=14000000/$Number$.m4s" timescale="200" duration="800"/>
      </Representation>
      <Representation id="pv46" bandwidth="10000000" width="1920" height="1080" codecs="hev1.2.4.L123.00.00.B0" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv46/b=10000000/segment.init" media="t=4000/v=pv46/b=10000000/$Number$.m4s" timescale="200" duration="800"/>
      </Representation>
      <Representation id="pv45" bandwidth="7000000" width="1280" height="720" codecs="hev1.2.4.L120.00.00.B0" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv45/b=7000000/segment.init" media="t=4000/v=pv45/b=7000000/$Number$.m4s" timescale="200" duration="800"/>
      </Representation>
      <Representation id="pv53" bandwidth="5500000" width="960" height="540" codecs="hev1.2.4.L93.00.00.B0" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv53/b=5500000/segment.init" media="t=4000/v=pv53/b=5500000/$Number$.m4s" timescale="200" duration="800"/>
      </Representation>
      <Representation id="pv52" bandwidth="2810000" width="960" height="540" codecs="hev1.2.4.L93.00.00.B0" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv52/b=2810000/segment.init" media="t=4000/v=pv52/b=2810000/$Number$.m4s" timescale="200" duration="800"/>
      </Representation>
      <Representation id="pv51" bandwidth="1600000" width="960" height="540" codecs="hev1.2.4.L93.00.00.B0" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv51/b=1600000/segment.init" media="t=4000/v=pv51/b=1600000/$Number$.m4s" timescale="200" duration="800"/>
      </Representation>
    </AdaptationSet>
  </Period>
  <UTCTiming schemeIdUri="urn:mpeg:dash:utc:http-xsdate:2014" value="https://time.akamai.com/?iso"/>
</MPD>
[   1.177][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/v=pv54/b=24000000/segment.init', offset 0
[   1.178][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.185][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.220][d][ffmpeg] AVIOContext: Statistics: 721 bytes read, 0 seeks
[   1.221][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/t=4000/v=pv54/b=24000000/437889944.m4s', offset 0
[   1.221][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.230][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.291][d][ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: advanced_editlist does not work with fragmented MP4. disabling.
[   1.291][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/v=pv49/b=14000000/segment.init', offset 0
[   1.291][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.300][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.341][d][ffmpeg] AVIOContext: Statistics: 721 bytes read, 0 seeks
[   1.341][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/t=4000/v=pv49/b=14000000/437889944.m4s', offset 0
[   1.342][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.350][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.405][d][ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: advanced_editlist does not work with fragmented MP4. disabling.
[   1.405][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/v=pv46/b=10000000/segment.init', offset 0
[   1.406][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.415][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.457][d][ffmpeg] AVIOContext: Statistics: 721 bytes read, 0 seeks
[   1.458][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/t=4000/v=pv46/b=10000000/437889944.m4s', offset 0
[   1.458][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.465][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.513][d][ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: advanced_editlist does not work with fragmented MP4. disabling.
[   1.513][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/v=pv45/b=7000000/segment.init', offset 0
[   1.513][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.521][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.557][d][ffmpeg] AVIOContext: Statistics: 721 bytes read, 0 seeks
[   1.557][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/t=4000/v=pv45/b=7000000/437889944.m4s', offset 0
[   1.558][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.565][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.618][d][ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: advanced_editlist does not work with fragmented MP4. disabling.
[   1.618][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/v=pv53/b=5500000/segment.init', offset 0
[   1.619][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.626][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.662][d][ffmpeg] AVIOContext: Statistics: 721 bytes read, 0 seeks
[   1.663][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/t=4000/v=pv53/b=5500000/437889944.m4s', offset 0
[   1.663][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.672][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.726][d][ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: advanced_editlist does not work with fragmented MP4. disabling.
[   1.726][d][ffmpeg/demuxer] dash: DASH request for url 'https://example.tld/working-dash-stream/v=pv52/b=2810000/segment.init', offset 0
[   1.727][d][ffmpeg] tcp: Starting connection attempt to 10.10.1.1 port 80
[   1.736][d][ffmpeg] tcp: Successfully connected to 10.10.1.1 port 80
[   1.780][d][ffmpeg] AVIOContext: Statistics: 721 bytes read, 0 seeks

An example of an incorrect playback attempt

<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" profiles="urn:dvb:dash:profile:dvb-dash:2014,urn:dvb:dash:profile:dvb-dash:isoff-ext-live:2014" type="dynamic" availabilityStartTime="2025-07-03T09:38:39.04Z" publishTime="2025-07-03T09:38:21.9Z" minimumUpdatePeriod="PT8H" minBufferTime="PT10S" maxSegmentDuration="PT4S">
  <Period id="1" start="PT0S">
    <AdaptationSet id="1" contentType="audio" mimeType="audio/mp4" segmentAlignment="true" audioSamplingRate="48000" codecs="mp4a.40.5" startWithSAP="1" group="1" lang="en">
      <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      <InbandEventStream schemeIdUri="urn:mpeg:dash:event:2012" value="1"/>
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
      <Representation id="pa3" bandwidth="96000">
        <SegmentTemplate initialization="a=pa3/al=en-GB/ap=main/b=96000/segment.init" media="t=3840/a=pa3/al=en-GB/ap=main/b=96000/$Number$.m4s" startNumber="456129032" timescale="48000" duration="184320" presentationTimeOffset="84073702993920"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="2" contentType="video" mimeType="video/mp4" segmentAlignment="true" sar="1:1" startWithSAP="1" group="2" par="16:9">
      <InbandEventStream schemeIdUri="urn:mpeg:dash:event:2012" value="1"/>
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
      <Representation id="pv4" bandwidth="281024" width="384" height="216" codecs="avc3.42C015" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv4/b=281024/segment.init" media="t=3840/v=pv4/b=281024/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv5" bandwidth="437056" width="512" height="288" codecs="avc3.4D4015" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv5/b=437056/segment.init" media="t=3840/v=pv5/b=437056/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv8" bandwidth="827008" width="704" height="396" codecs="avc3.4D401E" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv8/b=827008/segment.init" media="t=3840/v=pv8/b=827008/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv10" bandwidth="1604032" width="960" height="540" codecs="avc3.4D401F" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv10/b=1604032/segment.init" media="t=3840/v=pv10/b=1604032/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv13" bandwidth="2812032" width="960" height="540" codecs="avc3.64001F" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv13/b=2812032/segment.init" media="t=3840/v=pv13/b=2812032/$Number$.m4s" startNumber="456129032" timescale="50" duration="192" presentationTimeOffset="87576773952"/>
      </Representation>
      <Representation id="pv14" bandwidth="5070016" width="1280" height="720" codecs="avc3.640020" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv14/b=5070016/segment.init" media="t=3840/v=pv14/b=5070016/$Number$.m4s" startNumber="456129032" timescale="50" duration="192" presentationTimeOffset="87576773952"/>
      </Representation>
    </AdaptationSet>
  </Period>
  <UTCTiming schemeIdUri="urn:mpeg:dash:utc:http-xsdate:2014" value="https://time.akamai.com/?iso"/>
</MPD>
[  21.660][v][stream_callback] Opening https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/pc_hd_abr_v2.mpd
[  21.660][v][ffmpeg] Opening https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/pc_hd_abr_v2.mpd
[  21.796][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  21.796][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/v=pv4/b=281024/segment.init', offset 0
[  21.856][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649671.m4s', offset 0
[  21.905][w][ffmpeg] https: HTTP error 403 Forbidden
[  21.905][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  21.905][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  21.905][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649670.m4s', offset 0
[  21.946][w][ffmpeg] https: HTTP error 403 Forbidden
[  21.946][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  21.946][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  21.946][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649669.m4s', offset 0
[  22.004][w][ffmpeg] https: HTTP error 403 Forbidden
[  22.004][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  22.004][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  22.004][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649668.m4s', offset 0
[  22.060][w][ffmpeg] https: HTTP error 403 Forbidden
[  22.060][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  22.060][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  22.060][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649667.m4s', offset 0
[  22.101][w][ffmpeg] https: HTTP error 403 Forbidden
[  22.101][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  22.101][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  22.101][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649666.m4s', offset 0
[  22.147][w][ffmpeg] https: HTTP error 403 Forbidden
[  22.147][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  22.147][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  22.147][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649665.m4s', offset 0
[  22.204][w][ffmpeg] https: HTTP error 403 Forbidden
[  22.204][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  22.204][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  22.204][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649664.m4s', offset 0
[  22.262][w][ffmpeg] https: HTTP error 403 Forbidden
[  22.262][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  22.262][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  22.262][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649663.m4s', offset 0
[  22.315][w][ffmpeg] https: HTTP error 403 Forbidden
[  22.315][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
[  22.315][d][ffmpeg/demuxer] dash: new fragment: min[456135136] max[456135136]
[  22.315][d][ffmpeg/demuxer] dash: DASH request for url 'https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv4/b=281024/-1431649662.m4s', offset 0

An example of the same stream/manifest, correctly parsed and played using dash.js

<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" profiles="urn:dvb:dash:profile:dvb-dash:2014,urn:dvb:dash:profile:dvb-dash:isoff-ext-live:2014" type="dynamic" availabilityStartTime="2025-07-03T09:38:39.04Z" publishTime="2025-07-03T09:38:21.9Z" minimumUpdatePeriod="PT8H" minBufferTime="PT10S" maxSegmentDuration="PT4S">
  <Period id="1" start="PT0S">
    <AdaptationSet id="1" contentType="audio" mimeType="audio/mp4" segmentAlignment="true" audioSamplingRate="48000" codecs="mp4a.40.5" startWithSAP="1" group="1" lang="en">
      <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      <InbandEventStream schemeIdUri="urn:mpeg:dash:event:2012" value="1"/>
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
      <Representation id="pa3" bandwidth="96000">
        <SegmentTemplate initialization="a=pa3/al=en-GB/ap=main/b=96000/segment.init" media="t=3840/a=pa3/al=en-GB/ap=main/b=96000/$Number$.m4s" startNumber="456129032" timescale="48000" duration="184320" presentationTimeOffset="84073702993920"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="2" contentType="video" mimeType="video/mp4" segmentAlignment="true" sar="1:1" startWithSAP="1" group="2" par="16:9">
      <InbandEventStream schemeIdUri="urn:mpeg:dash:event:2012" value="1"/>
      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
      <Representation id="pv4" bandwidth="281024" width="384" height="216" codecs="avc3.42C015" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv4/b=281024/segment.init" media="t=3840/v=pv4/b=281024/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv5" bandwidth="437056" width="512" height="288" codecs="avc3.4D4015" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv5/b=437056/segment.init" media="t=3840/v=pv5/b=437056/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv8" bandwidth="827008" width="704" height="396" codecs="avc3.4D401E" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv8/b=827008/segment.init" media="t=3840/v=pv8/b=827008/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv10" bandwidth="1604032" width="960" height="540" codecs="avc3.4D401F" frameRate="25" scanType="progressive">
        <SegmentTemplate initialization="v=pv10/b=1604032/segment.init" media="t=3840/v=pv10/b=1604032/$Number$.m4s" startNumber="456129032" timescale="25" duration="96" presentationTimeOffset="43788386976"/>
      </Representation>
      <Representation id="pv13" bandwidth="2812032" width="960" height="540" codecs="avc3.64001F" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv13/b=2812032/segment.init" media="t=3840/v=pv13/b=2812032/$Number$.m4s" startNumber="456129032" timescale="50" duration="192" presentationTimeOffset="87576773952"/>
      </Representation>
      <Representation id="pv14" bandwidth="5070016" width="1280" height="720" codecs="avc3.640020" frameRate="50" scanType="progressive">
        <SegmentTemplate initialization="v=pv14/b=5070016/segment.init" media="t=3840/v=pv14/b=5070016/$Number$.m4s" startNumber="456129032" timescale="50" duration="192" presentationTimeOffset="87576773952"/>
      </Representation>
    </AdaptationSet>
  </Period>
  <UTCTiming schemeIdUri="urn:mpeg:dash:utc:http-xsdate:2014" value="https://time.akamai.com/?iso"/>
</MPD>
https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/v=pv8/b=827008/segment.init
https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/v=pv14/b=5070016/segment.init
https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/a=pa3/al=en-GB/ap=main/b=96000/segment.init
https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv14/b=5070016/456134427.m4s
https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/a=pa3/al=en-GB/ap=main/b=96000/456134427.m4s

https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/a=pa3/al=en-GB/ap=main/b=96000/456134428.m4s
https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv14/b=5070016/456134428.m4s

https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/v=pv14/b=5070016/456134429.m4s
https://ve-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_007/t=3840/a=pa3/al=en-GB/ap=main/b=96000/456134429.m4s

etc.

Note: See TracTickets for help on using tickets.