Open source MoQ player for low-latency live streaming.

GitHub Publisher
Try It
Enter a relay URL and namespace to start
Features

Sub-Second TTFF

~350-550ms time-to-first-frame on nearby relays. Direct MSE rendering with no player library overhead.

Adaptive Bitrate

Buffer-based ABR with automatic track switching. Supports multi-rendition CMAF streams.

Player Stats

Press 'I' for real-time overlay: TTFF, buffer health, ABR state, framerate, dropped frames, and stale fragment tracking.

Usage

Embed in your page

For MoQ Lite relays, include the namespace in the relay URL path. For MoQ v14 (Cloudflare), omit it.

<video id="video" autoplay muted playsinline></video>
<script src="https://moqplay.com/js/qmux.js"></script>
<script src="https://moqplay.com/js/fragment-appender.js"></script>
<script src="https://moqplay.com/js/moqt-player.js"></script>
<script src="https://moqplay.com/js/stats.js"></script>
<script>
  const video = document.getElementById('video');
  // MoQ Lite: namespace in URL path
  const player = new MoqtPlayer(video, 'https://relay.example.com/my-stream', 'my-stream');
  // MoQ v14 (Cloudflare): namespace NOT in URL path
  // const player = new MoqtPlayer(video, 'https://relay.example.com', 'my-stream');
  player.connect();
  video.play().catch(() => {});
</script>