MPEG-DASH Player to Test, Debug & Demo .mpd Streams
Paste any MPEG-DASH (.mpd) URL - live or VOD - and play, inspect and debug it right in your browser with dash.js. See representations, bitrate, buffer health, latency, dropped frames, the event log and the raw MPD manifest.
DRM playback needs HTTPS and the Encrypted Media Extensions (EME) API. Widevine works in Chrome, Firefox and Edge; PlayReady in Edge. ClearKey streams that carry their key in the MPD need none of this.
Player configuration
Tune common dash.js settings below, or drop any advanced options into the config editor. Changes apply on the next Play - use Apply & reload to re-run the current stream.
The raw .mpd XML will appear here after you play a stream.
If the server blocks cross-origin requests (CORS), the raw text can’t be fetched even when dash.js can still play the stream.
Use this stream URL in your own app
How to Test an MPEG-DASH (.mpd) Stream
- Paste your URL - drop any MPEG-DASH
.mpdmanifest URL into the box, or click a sample Live / VOD stream. - Hit Play - the stream loads with dash.js and starts playing.
- Read the Player Info - watch the resolution, bitrate, bandwidth estimate, buffer health, dropped frames and (for live streams) latency update in real time.
- Switch representations - force a specific quality level or leave it on Auto to test adaptive bitrate (ABR) switching.
- Debug - use the event log to trace manifest loading, quality changes, fragment loads and errors, and open the raw MPD viewer to inspect the manifest itself.
- Share - copy the share link to reopen the exact same test, or grab the ready-made code to embed the stream in your own app.
Why Use This MPEG-DASH Test Player?
- Live & VOD - automatically detects whether a stream is dynamic (live) or static (on-demand) and adapts the stats it shows.
- Powered by dash.js - the official DASH Industry Forum reference player, so what you see here matches real-world MSE playback.
- Deep debug info - representations, per-quality bitrate, segment duration, measured throughput, buffer level, dropped frames, live latency and a full event log.
- Raw MPD inspection - view the actual
.mpdXML to catch manifest issues. - 100% in-browser - nothing is uploaded; the player fetches the stream directly from its origin, just like your users’ browsers do.
- Copy-paste integration - ready-made JavaScript, HTML5 and cURL snippets for the exact URL you tested.
Frequently Asked Questions
What is an MPEG-DASH (.mpd) stream?
MPEG-DASH (Dynamic Adaptive Streaming over HTTP) is an international standard for adaptive streaming. The .mpd manifest is an XML document describing periods, adaptation sets and representations (quality levels), each pointing to media segments. The player picks the best representation for the current bandwidth and switches on the fly. DASH is codec-agnostic, which is a key difference from HLS.
Why won’t my stream play here?
The most common cause is CORS: the stream’s server must send Access-Control-Allow-Origin headers for a browser on another domain to load it. Other causes are an incorrect URL, a 404, an expired signed URL, a missing DRM license, or a codec the browser can’t decode. The status message and the event log will tell you which one it is.
Does it support live streaming?
Yes. Dynamic (live) manifests are detected automatically; the tool then shows the live latency (how far behind the live edge you are) alongside the other stats. Enable Low latency mode in Player configuration for LL-DASH streams.
Can I force a specific quality?
Yes. The Renditions panel lists every representation from the manifest - click one (or use the dropdown) to lock playback to that quality, or choose Auto to let dash.js pick based on bandwidth.
Which browsers work?
Any modern browser with Media Source Extensions (Chrome, Edge, Firefox and Chromium-based browsers) runs dash.js with full debug data. Safari on desktop also supports MSE. Note that browsers have no native MPEG-DASH playback, so a JavaScript player like dash.js is always required.
What is the difference between DASH and HLS?
Both are adaptive HTTP streaming formats. HLS (Apple) uses .m3u8 playlists and plays natively in Safari/iOS; DASH (an open ISO standard) uses an .mpd manifest, is codec-agnostic, and needs a JS player in the browser. Many platforms ship both. If you work with HLS too, try our HLS / M3U8 test player.
Is my stream URL sent anywhere?
No. The player runs entirely in your browser and fetches the stream directly from its origin server. The only thing that ever contains your URL is the optional share link you choose to copy.
How do I DRM-protect a DASH stream?
DASH streams are typically protected with Widevine or PlayReady DRM (via Common Encryption / CENC), delivered through the browser’s EME API and a license server. Enable the DRM option above and enter your license server URL to test it. To learn more, see our guide to streaming encryption and DRM, or use VdoCipher’s secure player for encrypted, DRM-protected, watermarked playback out of the box.
Terms & Privacy
- This free MPEG-DASH test player is provided on an “as is” basis for general testing and debugging. We do not guarantee playback of every stream, browser compatibility, or fitness for any purpose.
- Playback happens locally in your browser and streams are fetched directly from their origin. We do not proxy, store, or transmit your stream content or URLs to our servers.
- By using this tool you confirm you have the right to access and test the streams you load. You are solely responsible for the URLs you enter and for complying with all applicable laws and the stream provider’s terms.