Free tool
Free HLS stream tester & online M3U8 player
A free online HLS player and stream tester: play any browser-accessible HLS / M3U8 stream with a live stats panel, no downloads or sign-up.
Paste an HLS (.m3u8) URL to play and test the stream directly in your browser, then read live technical diagnostics as it plays. This free HLS player uses Media Source Extensions with native HLS fallback on Safari, so it works as an m3u8 viewer across modern browsers.
.m3u8 (or DASH .mpd) URL above, or load a sample stream, and press Play. ABR rendition ladder
Available qualities appear here on playback.| Quality | Resolution | Bitrate | FPS | Codec |
|---|---|---|---|---|
| No renditions loaded yet. | ||||
How to test an HLS / M3U8 stream
This free online HLS player loads your stream in the browser and reports exactly what is happening, so you can confirm a feed is live and healthy before you point real viewers at it.
- Paste the full HTTPS URL to your .m3u8 playlist into the field above (or click a sample stream to load one instantly).
- Press Play & test. The player fetches the manifest, builds the ABR ladder, and starts playback muted so it can autoplay.
- Watch the live diagnostics panel for resolution, bitrate, buffer health, dropped frames, and the full rendition ladder.
- If playback fails, read the error diagnostics under the input, which explain whether it is a CORS, 404/offline, manifest, or codec problem.
What the stream stats mean
The diagnostics panel reads the player API in real time so you can debug delivery, not just confirm a picture appears. Here is how to read the key numbers.
- ABR rendition ladder: every quality level advertised in the manifest (resolution, bitrate, frame rate, codec). Adaptive bitrate (ABR) streaming switches between these based on measured bandwidth, and the active rendition is highlighted.
- Playback vs downloaded bitrate: the bitrate of the rendition currently on screen versus the one the player is fetching. When they diverge, the player is mid-switch or the network changed.
- Buffer health: seconds of video buffered ahead of the playhead. Healthy playback keeps several seconds in reserve, while a buffer that keeps draining toward zero causes stalls.
- Dropped / total frames: frames the browser decoded but could not paint in time, usually a sign the device or connection can't sustain the current rendition.
- Live latency & live-edge offset: how far playback sits behind the live edge, which matters for low-latency and interactive live streams.
What is an HLS player (M3U8 player)?
An HLS player is a video player that reads an .m3u8 playlist, downloads the short video segments it points to, and plays them back in order, switching quality as the viewer's bandwidth changes. Every browser, phone, and smart TV that shows a live stream runs some form of this player, whether it is built on hls.js, Video.js, JW Player, Bitmovin, ExoPlayer, or Apple's AVPlayer.
The player on this page is a free HTML5 HLS video player and M3U8 player that runs entirely in your browser. Because HLS is a standard, a stream that plays correctly here will play the same way in any standards-compliant player or SDK, which makes this tester a quick compatibility check before you wire a URL into your own site or app.
Free HLS test streams you can use
If you need an HLS test stream and don't have your own URL handy, the sample buttons above load a live Castr feed delivered over the Akamai and Fastly CDNs, so you can watch real ABR behavior immediately. These public test streams are also widely used for player development and work in this tester:
- Mux Big Buck Bunny (VOD, multi-rendition ABR ladder): https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
- Apple's advanced fMP4 example (multiple codecs, captions, and audio tracks): https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8
- Unified Streaming Tears of Steel (VOD): https://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel.ism/.m3u8
How to play an M3U8 file
An .m3u8 file is a playlist, not the video itself, so double-clicking it rarely works. The quickest way to play one is to paste its URL into the m3u8 player above and press Play.
You can also open an M3U8 URL in desktop VLC (Media → Open Network Stream), in Safari on macOS and iOS (which supports HLS natively), or in a mobile HLS player app. A local .m3u8 that points to segment files needs those segments reachable at the paths it references.
Who uses this HLS stream tester
The tester accepts any public .m3u8 URL regardless of where it is hosted, so it works as a neutral M3U8 tester for streams delivered by Akamai, AWS CloudFront, Cloudflare, Fastly, Wowza, or Castr itself.
- Developers confirm a manifest is well-formed and plays before wiring the URL into a custom player, app, or SDK.
- Broadcast and QA engineers verify the bitrate ladder, codecs, and live latency minutes before an event instead of during it.
- Support teams reproduce a viewer's playback complaint by loading the exact stream URL the viewer was watching.
- Teams comparing CDNs or encoders load the same feed from each provider and compare buffer health and rendition behavior side by side.
Browser support and limitations
This HLS stream tester plays through the Bitmovin Player Web SDK, which uses Media Source Extensions on most desktop Chrome, Edge, and Firefox browsers and falls back to the browser's built-in HLS support where MSE isn't available (for example Safari on macOS and iOS).
The URL must be served over HTTPS and the streaming server must send permissive CORS headers, otherwise the browser blocks the request and the tester reports the failure instead of failing silently. Provider-specific tokens, geo restrictions, and unsupported codecs (such as some HEVC/H.265 or DRM-protected streams) are surfaced in the error diagnostics rather than handled by this browser tester.
Frequently asked questions
What is an HLS / M3U8 stream?
HLS (HTTP Live Streaming) delivers video as a series of short segments described by an .m3u8 playlist. Players download the playlist, then fetch and play the segments in order, adapting quality to the viewer's connection.
Why won't my stream play?
The most common causes are a non-HTTPS URL, missing CORS headers on the streaming server, a stream that isn't currently live, or DRM/token protection this simple tester doesn't handle. Check the error message shown under the player.
Can I test a DASH stream here?
Use the MPEG-DASH player for .mpd streams. This tester is for HLS / M3U8.
How do I play an M3U8 file?
Paste the .m3u8 URL into the player above and press Play, or open the URL in VLC (Media → Open Network Stream) or Safari, which supports HLS natively. For browser playback here, the playlist must be reachable over HTTPS and served with permissive CORS headers.
Can VLC open M3U8?
Yes. In VLC, choose Media → Open Network Stream and paste the .m3u8 URL. VLC is a good option for streams a browser blocks because of CORS, or that use protocols this browser tester does not support.
Can I convert M3U8 to MP4 here?
No. This is a free online M3U8 player and HLS stream tester for playback only. It does not download or convert streams. To keep an HLS stream as on-demand video, record it: Castr can turn a live HLS feed into a reusable VOD asset.
Is this M3U8 player free?
Yes. The HLS / M3U8 stream tester is completely free, runs in your browser, and needs no account or download.
What do the live stream stats mean?
The diagnostics panel reads the player in real time. It shows the current resolution and active rendition, playback and downloaded bitrate, buffer health in seconds, dropped versus total frames, video and audio codecs, live latency and live-edge offset, plus the full ABR rendition ladder (every quality level with its resolution, bitrate, and codec). Together these tell you whether a stream is healthy or where delivery is struggling.
Can I use this as an m3u8 viewer to inspect the rendition ladder?
Yes. Load any HLS or M3U8 URL and the tester lists every quality variant the manifest advertises, with its resolution, bitrate, frame rate, and codec, and highlights the one currently playing. It's a quick way to verify your adaptive bitrate ladder and codecs are set up the way you expect.
Why is my HLS stream buffering or dropping frames?
Buffering usually means the buffer health is draining toward zero because the connection can't sustain the current rendition, while dropped frames mean the device can't decode and paint fast enough. Watch the buffer health and dropped/total frames counters while playing: if they degrade at a high rendition, the source bitrate ladder or the viewer's bandwidth is the likely bottleneck.
What is an M3U8 player?
An M3U8 player is any player that can read an .m3u8 playlist and stream the video segments it references, which is exactly what HLS players do, so the two terms describe the same thing. The player on this page is a free online M3U8 player, so you can paste a URL and watch the stream without installing anything.
Where can I find a free HLS test stream URL?
Use the sample buttons above to load a live Castr feed over the Akamai or Fastly CDN, or paste a public test stream such as Mux's Big Buck Bunny (https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8) or Apple's fMP4 example manifest. Both are published specifically for player testing and exercise a full ABR ladder.
Can I test streams hosted on any CDN?
Yes. The tester accepts any public HTTPS .m3u8 URL, whether the stream is delivered by Akamai, AWS CloudFront, Cloudflare, Fastly, Wowza, or Castr. It is a neutral tool: it plays the real manifest your CDN serves, so provider-side problems show up here exactly as viewers would see them.
Can I embed this HLS player on my website?
This page is a tester, not an embeddable widget. If you want a branded HLS player on your own site, Castr provides an embeddable HTML5 player with adaptive bitrate, security controls, and monetization as part of its hosting plans, so your viewers get the playback quality you verified here.
If a stream plays here, will it work in hls.js, Video.js, or my app?
Almost always, yes. This tester plays standards-compliant HLS, the same format consumed by hls.js, Video.js, JW Player, ExoPlayer, and AVPlayer. If a stream plays here but fails in your app, the difference is usually player configuration, DRM, or CORS on the page hosting your player rather than the stream itself.
Ship a branded player, not just a test
Castr delivers HLS with adaptive bitrate, security controls, and monetization behind a player you can embed on your own site or OTT app.