Media over QUIC is a live media protocol powered by QUIC: a super-charged TCP/UDP replacement that powers HTTP/3. It’s being developed by the IETF* and your favorite big tech companies such as Google, Meta, Cisco, Akamai, Cloudflare, etc.
That’s right, you no longer need to hack WebRTC! There’s a new way to achieve real-time latency in the browser, including contribution and mass distribution via generic CDNs.
Try out the web demo! Watch or Publish a broadcast
Want a better demo? hang.live uses the same open-source libraries. But with more features and cringe layered on top.
✨ Features
- 🔓 Open Source: Production-ready Rust and TypeScript libraries.
- 🌐 100% Web: Utilizes WebTransport, WebCodecs, WebAudio, WebEtc.
- ⚡ Real-time: Minimal latency by skipping less important media during congestion.
- 🚀 Massive Scale: Host your own CDN with moq-relay or use Cloudflare.
- 🎬 Multi-Platform: Web, FFmpeg, GStreamer, and native clients available.
- 🔍 Discoverable: Live notifications when broadcasts are published or finish.
- 💪 Efficient: No encoding or bandwidth usage until a viewer needs it.
- 🌍 Compatible: TCP fallback via WebSocket, Safari fallback via libav.js.
- 🔧 Customizable: Hardware accelerated encoding, the rest is in your control.
*Standards
This website uses a fork of the IETF draft called moq-lite and a media layer called hang. The principles behind MoQ are fantastic, but standards are SLOW and involve too much arguing. My goal is to build something simple that you can use now, even if it’s not a standard yet.
Learn More
Check out the blog for more information and a smattering of jokes. Once you’re ready for more, check out the Github and/or join Discord.
Contributions are welcome, of course.
But also feel free to just yoink the code, fork it, and make it your own.
If you’re using some flavor of MoQ in the wild, I’d love to hear about it!
My DMs are always open; @kixelated on Discord.
![]()