Segment template variables are used incorrectly
The template cannot resolve to a distinct URL per segment, so playback cannot advance.
What it means
Either the media template uses $Time$ without a <SegmentTimeline> to supply the times, or it contains neither $Number$ nor $Time$, so every segment resolves to the same URL.
Why it matters
$Time$ values come from the timeline; without one there is nothing to substitute. A template that varies by neither means the player fetches the same file forever. In both cases playback either fails immediately or loops on one segment.
How to fix it
- If the template uses $Time$, add a <SegmentTimeline> with <S> entries giving t, d and r.
- If it uses $Number$, make sure @duration and @startNumber are present so numbers can be derived.
- Remember $RepresentationID$ distinguishes renditions but not segments — you still need $Number$ or $Time$.
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 "Segment template variables are used incorrectly" mean?
- Either the media template uses $Time$ without a <SegmentTimeline> to supply the times, or it contains neither $Number$ nor $Time$, so every segment resolves to the same URL.
- Why does it matter?
- $Time$ values come from the timeline; without one there is nothing to substitute. A template that varies by neither means the player fetches the same file forever. In both cases playback either fails immediately or loops on one segment.
- How do I fix it?
- 1. If the template uses $Time$, add a <SegmentTimeline> with <S> entries giving t, d and r. 2. If it uses $Number$, make sure @duration and @startNumber are present so numbers can be derived. 3. Remember $RepresentationID$ distinguishes renditions but not segments — you still need $Number$ or $Time$.
- 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
- DASH manifest has no UTCTiming elementA live MPD without UTCTiming forces players to trust the device clock, so any skew on the viewer’s machine becomes stalls or missing segments.
- DASH availabilityStartTime is in the futureThe manifest claims the presentation starts later than the current time, so no segment is available yet and playback cannot begin.
- The DASH manifest is not well-formed XMLThe document could not be parsed as XML, so nothing else could be checked.
- The document has no MPD root elementThe XML parsed, but its root is not <MPD>, so it is not a DASH manifest.
- MPD declares no profileWithout @profiles a player cannot tell which DASH feature set the manifest expects.
- MPD declares no minBufferTimePlayers use this required attribute to size the initial buffer before starting playback.