A free HLS test stream that never stops: a 24/7 channel of Blender Open Movies, 1080p down to audio-only, with fMP4 segments and real discontinuities. No signup, no token, CORS open, and it has been running continuously since 2021.
Last verified: 19 August 2026. Every URL and every figure below was checked against the live manifest on that date.
The stream
| URL | What it is |
|---|---|
https://ireplay.tv/test/blender.m3u8 copy | Multivariant playlist: four video renditions, an audio-only rendition, redundant failover copies and an I-frame trick-play playlist |
https://ireplay.tv/test/hd_blender.m3u8 copy | Same channel, single 1080p rendition only. Use it when you want to take adaptive switching out of the equation |
https://ireplay.tv/test/rate_0_28.m3u8 copy | Audio-only media playlist, AAC-LC. For audio fallback and radio-style testing |
https://ireplay.tv/test/iframe_5_28.m3u8 copy | I-frame-only playlist at 1080p. For scrubbing and trick-play testing |
The rate ladder, as the manifest actually declares it
| Rendition | Resolution | Average bitrate | Peak | Codec string | H.264 profile | Frame rate (measured / declared max) |
|---|---|---|---|---|---|---|
| rate_5_28 | 1920x1080 | 7 000 kbps | 7 700 kbps | avc1.64002a | High, level 4.2 | 24 / 60 |
| rate_4_28 | 1280x720 | 3 000 kbps | 3 300 kbps | avc1.64001f | High, level 3.1 | 24 / 60 |
| rate_3_28 | 960x540 | 1 800 kbps | 1 980 kbps | avc1.64001f | High, level 3.1 | 24 / 60 |
| rate_2_28 | 480x270 | 650 kbps | 715 kbps | avc1.640015 | High, level 2.1 | 24 / 60 |
| rate_0_28 | audio only | 161 kbps | mp4a.40.2 | AAC-LC, 44.1 kHz stereo | ||
| iframe_5_28 | 1920x1080 | 300 kbps | avc1.64002a | I-frames only |
Bitrates and the frame-rate ceiling are what the multivariant playlist declares. Resolutions, profiles, levels and the measured frame rate are what ffprobe reads off the segments, checked on the date above. Every rendition is also a media playlist you can load on its own, which is the fastest way to pin a bug to one bitrate.
Why this is a harder test than a sample VOD
Most published test streams are a single film, encoded once, sitting still. They will not catch the bugs that hurt in production. This one is a real 24/7 channel assembled from many separate assets, so the manifest carries the things a player only meets on live services.
- Real discontinuities. The channel concatenates different source files, so
#EXT-X-DISCONTINUITYappears constantly and#EXT-X-DISCONTINUITY-SEQUENCEis well past 34 000. If your player resets the decoder badly at a boundary, you will see it here within minutes rather than never. - Redundant renditions. Each video variant is declared twice with identical attributes and different URIs. That is how HLS signals a failover copy, and almost no public test stream exercises it.
- fMP4, not TS. Segments are CMAF
.m4sserved asvideo/iso.segment, with an#EXT-X-MAPinitialisation segment. Modern, and a different code path from MPEG-TS in most players. - Wall-clock time. Every media playlist carries
#EXT-X-PROGRAM-DATE-TIME, so you can test date-based seeking and DVR positioning. - A sliding window with no end. There is no
#EXT-X-ENDLIST. The playlist keeps moving, which is what breaks naive players that assume a fixed duration. - A start offset. The playlists declare
#EXT-X-START:TIME-OFFSET=36.0, so you can check that your player honours the authored start position instead of always jumping to the live edge. - A frame-rate ceiling, not a frame-rate claim. Every variant declares
FRAME-RATE=60.0, which in HLS is the maximum frame rate the variant may contain, not the rate of whatever is playing right now. The channel is a real playout and can carry 60 fps assets, so the ladder is declared at its ceiling; the Blender films currently in rotation are 24 fps. That combination is worth testing against: a player should size its buffers from the declared ceiling and render at the bitstream rate.
Serving details you may need
| Property | Value |
|---|---|
| Manifest content type | application/vnd.apple.mpegurl |
| Segment content type | video/iso.segment |
| CORS | Access-Control-Allow-Origin: * on manifests and segments |
| Cache-Control on the multivariant playlist | no-cache, it is generated per request |
| Transport | HTTPS, HTTP/2 |
| Encryption | None. Clear content, no DRM, no AES-128 key |
| Target duration | 7 seconds |
Because CORS is open, the stream plays in a browser from your own page with no proxy. That is the part people usually get stuck on with other public streams.
Quick start
hls.js in a browser
<video id="v" controls muted playsinline></video>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
const v = document.getElementById('v');
const src = 'https://ireplay.tv/test/blender.m3u8';
if (Hls.isSupported()) { const h = new Hls(); h.loadSource(src); h.attachMedia(v); }
else if (v.canPlayType('application/vnd.apple.mpegurl')) { v.src = src; }
</script>
Safari and iOS play it natively, no library: set the src attribute directly.
ffplay
ffplay https://ireplay.tv/test/blender.m3u8
ffprobe, to read the ladder without playing it
ffprobe -v error -show_streams -show_format https://ireplay.tv/test/blender.m3u8
VLC: File, Open Network, paste the URL.
curl, to look at the manifest itself
curl -s https://ireplay.tv/test/blender.m3u8
What you can actually test with it
- ABR switching under a throttle. Four rungs from 7 Mbps to 650 kbps. Throttle to 1 Mbps in devtools and watch whether your player settles or ping-pongs.
- Discontinuity handling. Leave it running for ten minutes and look for decoder resets, audio drift, or a black frame at each junction.
- Audio-only fallback. Drop the throttle below 650 kbps and check the player degrades to the audio rendition rather than stalling.
- Trick play. Scrub the timeline and check whether your player uses the I-frame playlist instead of decoding full segments.
- Date-based seeking. Use the
#EXT-X-PROGRAM-DATE-TIMEvalues to seek to a wall-clock position. - Long-run stability. Leave it playing overnight. Memory leaks in player code show up after hours, not minutes, and a stream that ends after ten minutes will never surface them.
- Browser embedding. Open CORS means you can test in a page you serve yourself.
The content, and how to credit it
The channel plays the Blender Open Movies, the short films produced by the Blender Foundation and released under Creative Commons Attribution licences: Elephants Dream, Big Buck Bunny, Sintel, Tears of Steel, Cosmos Laundromat, Agent 327 and others. They are kept at their original frame rates, which is why the rungs currently measure 24 fps.
If you list this stream on your own site, please link back to this page or to ireplay.tv with a followed link. That is the only thing asked in return, and it is what keeps the channel funded and running.

Other public HLS test streams worth knowing
No single stream covers everything. These were checked on 19 August 2026 and were reachable.
| Stream | Useful for |
|---|---|
Apple, devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8 | The reference fMP4 example, with subtitles and multiple audio renditions |
Mux, test-streams.mux.dev/x36xhzz/x36xhzz.m3u8 | A widely used multi-bitrate VOD with a fixed duration |
Mux, test-streams.mux.dev/test_001/stream.m3u8 | Big Buck Bunny as a short VOD, handy for fast iteration |
Akamai, cph-p2p-msl.akamaized.net/hls/live/2000341/test/master.m3u8 | A genuinely live source with a moving window |
The gap those leave is a continuous channel built from many assets, which is why this one exists.
Frequently asked questions
What is a free HLS test stream URL I can use right now?
https://ireplay.tv/test/blender.m3u8. It is a 24/7 channel of Blender Open Movies with four video renditions from 1920x1080 down to 480x270, plus an audio-only rendition. No signup, no token, and CORS is open so it plays in a browser page you serve yourself.
Is this HLS test stream live or video on demand?
Live, in the sense that matters to a player. There is no #EXT-X-ENDLIST, the playlist window slides, and the content is a continuously scheduled channel rather than one file. That makes it a much better test of live playback behaviour than a fixed-duration sample.
Does it use MPEG-TS or fMP4 segments?
fMP4, specifically CMAF .m4s segments with an #EXT-X-MAP initialisation segment, served as video/iso.segment. If you need MPEG-TS instead, use one of the other public streams listed above.
Can I use it in my own product or documentation?
Yes. Use it in tests, demos, tutorials, bug reports and player documentation. The only request is a followed link back to this page or to ireplay.tv wherever you list it.
Is there a DRM or encrypted version of this test stream?
No. The content is clear, unencrypted, with no AES-128 key and no DRM system. If you are testing licence acquisition you need a different stream.
Why does the stream have so many discontinuities?
Because it is a real channel, not a single file. Each programme boundary is a genuine #EXT-X-DISCONTINUITY, which is exactly the condition that exposes decoder-reset bugs. The discontinuity sequence number is past 34 000 and rising.
Notes
The channel runs on iReplay's VOD2Live playout, which assembles a continuous linear stream from an on-demand library rather than encoding a live feed around the clock. The manifest is generated per request, which is why the multivariant playlist is served no-cache and carries session metadata tags. If a URL on this page ever stops resolving, it is a bug and we want to hear about it.