Adaptation set does not declare segment alignment
Players cannot assume segments line up across representations, so bitrate switching is not clean.
What it means
An adaptation set with several representations declares neither @segmentAlignment nor @subsegmentAlignment as true.
Why it matters
The attribute promises that segment boundaries occur at the same media times in every representation. That is what lets a player switch bitrate by simply requesting the next segment from a different representation. Without the promise, a careful player will not switch at all, or will refetch to be safe — so your ladder is there but barely used.
How to fix it
- Add segmentAlignment="true" to the <AdaptationSet> for live-profile content.
- On-demand content with indexed single files uses subsegmentAlignment="true" instead.
- Make sure it is true before declaring it — it requires aligned GOPs across the ladder.
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 "Adaptation set does not declare segment alignment" mean?
- An adaptation set with several representations declares neither @segmentAlignment nor @subsegmentAlignment as true.
- Why does it matter?
- The attribute promises that segment boundaries occur at the same media times in every representation. That is what lets a player switch bitrate by simply requesting the next segment from a different representation. Without the promise, a careful player will not switch at all, or will refetch to be safe — so your ladder is there but barely used.
- How do I fix it?
- 1. Add segmentAlignment="true" to the <AdaptationSet> for live-profile content. 2. On-demand content with indexed single files uses subsegmentAlignment="true" instead. 3. Make sure it is true before declaring it — it requires aligned GOPs across the ladder.
- 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.