Files
mediamtx/docs/3-publish/01-moq-clients.md
T
Alessandro RosandGitHub b5b63d02fc support reading and publishing with Media-over-QUIC (#5815)
Media-over-QUIC is a streaming protocol built upon cutting edge
protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs).
It's slightly faster than WebRTC, has an advanced data recovery
mechanism (placed at the frame level and not at the packet level), it
supports additional codecs (FLAC) and is less complicated to route.
2026-06-02 23:04:24 +02:00

2.5 KiB

Media-over-QUIC clients

supported codecs
video AV1, VP9, VP8, H265, H264
audio Opus, MPEG-4 Audio (AAC)

Media-over-QUIC is a streaming protocol built upon cutting edge protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs) that can be used to publish and read live media streams. It's slightly faster than WebRTC, has an advanced data recovery mechanism, it supports additional codecs (FLAC and future ones) and is less complicated to route.

Media-over-QUIC has a wide range of features and variants, most of them in active development. We currently support the following:

  • We support draft-18 of the main specification.
  • We only support using Media-over-QUIC through browsers and in particular through the WebTransport API. We do not support using QUIC directly.
  • We support the PUBLISH and SUBSCRIBE messages only, which are the ones meant to be used by a routing solution like MediaMTX.
  • We use the MOQT Streaming Format (MSF) to advertise tracks, described in this specification.
  • We use the Low Overhead Media Container (LOC) to ship frames, described in this specification.
  • We host web pages through a HTTP/2 listener and host the WebTransport endpoint through a HTTP/3 listener. This hybrid setup allows to use self-signed certificates, that are normally forbidden in pure HTTP/3.

There are some server requirements:

  • HTTPS is mandatory.
  • Clients must be able to access both the HTTP/2 listener (:8892) and the HTTP/3 listener (:8892), the latter of which runs over UDP.

And there are some client (browser) requirements:

You can publish a stream with Media-over-QUIC and a web browser by visiting:

https://localhost:8892/mystream/publish

The only clients that can currently publish with Media-over-QUIC are Web browsers.