StreamTest

Segment template omits @timescale with large durations

Durations too large to be seconds are being read as seconds, so segment timing is wrong by orders of magnitude.

What it means

@timescale says what unit @duration and timeline values are in. Omitted, it defaults to 1, meaning seconds. Here the durations are far too large to be seconds, so the attribute was almost certainly meant to be there.

Why it matters

With a duration of 90000 read as 90000 seconds, the player computes segment boundaries a day apart. It requests the wrong segments, gets 404s, and playback never starts. Omitting @timescale when durations genuinely are in whole seconds is fine and common.

How to fix it

  1. Add @timescale to the <SegmentTemplate>, matching the media timescale — usually 90000 for MPEG-TS or 1000 for fMP4.
  2. Check the arithmetic: duration divided by timescale should give a sensible segment length in seconds.

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 omits @timescale with large durations" mean?
@timescale says what unit @duration and timeline values are in. Omitted, it defaults to 1, meaning seconds. Here the durations are far too large to be seconds, so the attribute was almost certainly meant to be there.
Why does it matter?
With a duration of 90000 read as 90000 seconds, the player computes segment boundaries a day apart. It requests the wrong segments, gets 404s, and playback never starts. Omitting @timescale when durations genuinely are in whole seconds is fine and common.
How do I fix it?
1. Add @timescale to the <SegmentTemplate>, matching the media timescale — usually 90000 for MPEG-TS or 1000 for fMP4. 2. Check the arithmetic: duration divided by timescale should give a sensible segment length in seconds.
Can a validator catch this before viewers do?
Yes. The free DASH MPD validator checks this on every run, together with UTCTiming, clock drift and segment addressing — the live problems that only appear on other people's devices.
What is the first thing to try?
Add @timescale to the <SegmentTemplate>, matching the media timescale — usually 90000 for MPEG-TS or 1000 for fMP4.

Related DASH checks