Set the MPD type to 'static' and supply a mediaPresentationDuration in ISO 8601 format for VOD
Group video representations with the same codec and SAR into one AdaptationSet; set contentType='video', par, and maxWidth/maxHeight at the AdaptationSet level
For each video Representation, declare id, bandwidth (bits/s), width, height, and a SegmentTemplate with a media pattern and an initialization pattern referencing the init segment
Add a separate AdaptationSet for audio with lang and codecs attributes; add accessibility descriptors for captions/subtitles as additional AdaptationSets with mimeType='text/vtt' or 'application/ttml+xml'
Validate the MPD with a DASH-IF conformance validator before serving; confirm SegmentTimeline entries sum to the declared mediaPresentationDuration
Known gotchas
Forgetting the @profiles attribute (e.g., 'urn:mpeg:dash:profile:isoff-on-demand:2011') causes strict clients to reject the MPD; choose the profile that matches your segment format
For CMAF+DASH, the initialization segment URL must end with 'init.mp4' or be explicitly declared in the SegmentTemplate initialization attribute — a missing init segment causes immediate playback failure
Clock drift between encoder and MPD generator causes availabilityStartTime errors in live streams; use a shared NTP-synchronized clock source
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp