StreamTest

On-demand MPD declares no mediaPresentationDuration

A static manifest must say how long it is, or players cannot build a seek bar.

What it means

The manifest is type="static" but omits @mediaPresentationDuration, so it describes on-demand content without saying how long that content runs. The attribute is required for static manifests.

Why it matters

For on-demand content the duration is how the player knows the total length. Without it the seek bar cannot be drawn correctly, seeking to a percentage is impossible, and some players fall back to treating the content as live.

How to fix it

  1. Add mediaPresentationDuration to <MPD> as an ISO 8601 duration, for example PT1H2M3S.
  2. It must cover every period; if periods declare their own durations, the total should match their sum.

Check your own stream

The free DASH validator runs this check on every analysis and links each finding straight back here.

Open the DASH validator

Frequently asked questions

What does "On-demand MPD declares no mediaPresentationDuration" mean?
The manifest is type="static" but omits @mediaPresentationDuration, so it describes on-demand content without saying how long that content runs. The attribute is required for static manifests.
Why does it matter?
For on-demand content the duration is how the player knows the total length. Without it the seek bar cannot be drawn correctly, seeking to a percentage is impossible, and some players fall back to treating the content as live.
How do I fix it?
1. Add mediaPresentationDuration to <MPD> as an ISO 8601 duration, for example PT1H2M3S. 2. It must cover every period; if periods declare their own durations, the total should match their sum.
How can I detect this automatically?
Paste your MPEG-DASH streaming URL into StreamTest's free DASH validator. It runs this check on every analysis, flags the finding, and links straight back to this page — no sign-up required.

Related DASH checks