Validate HLS and DASH
Find manifest errors, filter findings by rendition, and probe segment reachability before release.
When an adaptive stream fails, the manifest may describe something a player cannot follow, or the manifest may be valid while its segments are missing. Video Commander checks both sides of that problem.
Load a stream
Paste an HLS playlist or DASH manifest URL into the address bar, or open a local
.m3u8, .m3u, or .mpd file. Local manifests are useful for checking
packager output before it reaches a CDN.
Video Commander detects the protocol and opens two relevant views:
- Manifest shows what the stream declares.
- Validator checks whether those declarations are valid and whether their media URLs can be reached.
Read the manifest
For DASH, the Manifest view separates Overview, Periods and Tracks, Representations, XML, and Raw. Each adaptation set shows its type, language, role, MIME type, and maximum resolution; expand it to see representation codecs, profiles, dimensions, and bitrates.
Use this view to confirm the ladder has the intended rungs, codec profiles, audio languages, and roles. A manifest can be perfectly valid while still describing the wrong stream.
Run the validator
The left panel shows the parsed structure down to individual segments. The right panel groups findings by severity:
| Level | Meaning |
|---|---|
| Error | A specification violation or condition likely to break playback |
| Warning | Legal but likely to cause compatibility or delivery problems |
| Info | An advisory worth reviewing, not a defect by itself |
Every finding has a stable code, a plain-language message, and the node it applies to. Select a finding to highlight that node in the structure tree. Include the code when documenting an exception or reporting a problem.
HLS checks
The validator checks master and media playlists for missing attributes, inconsistent codecs, target-duration violations, invalid playlist versions, empty segment lists, and discontinuity problems. For example:
HLS_006reports a segment longer thanEXT-X-TARGETDURATION.HLS_007reports an old playlist version that may not support the tags or duration precision in use.HLS_009reports a discontinuity without a corresponding discontinuity sequence.HLS_008notes when playlist type is absent and the stream is therefore treated as live.
Select a rendition in the manifest tree to filter the findings to that part of the stream.
DASH checks
DASH validation covers MPD duration and buffering metadata, empty adaptation sets, missing codec or bandwidth attributes, incomplete segment templates, period gaps, and ambiguous language groupings.
Probe segment URLs
Conformance does not prove that referenced media exists. Probe URLs resolves the addressable segments and fetches a sample. Results show how many URLs were tested, which failed, HTTP status and latency, plus detected codec, container, and duration information for media that could be read.
An unreachable segment is a delivery problem even when the playlist passes every conformance check. Common causes include an incorrect relative path, access-control rules, an incomplete upload, or an unexpectedly slow origin.
Select one segment, media playlist, or representation to probe only that resource. Sample a few segments for a quick first pass; probe the full range when you suspect a particular section is missing.
Triage findings
- Fix Errors first; they are the findings most likely to break playback.
- Probe segments. If they are unreachable, fix delivery before investigating manifest warnings.
- Review Warnings for device-specific or intermittent failures.
- Return to Manifest and confirm the ladder is the one you intended to ship.
- Play the stream and exercise adaptive switching on a target device.
The integrated Player includes quality and bandwidth selectors plus a debug overlay for buffering state, dropped frames, bitrate, and resolution.
Revalidate after a fix
Choose Revalidate or Refresh after editing or republishing a manifest. A local file can prove its structure; remote probing confirms the deployed URLs resolve from the location viewers will use.
