In the ongoing debate around WebRTC vs. MoQ, the most practical answer may be, “why not both?” The IETF is now examining whether QUIC offers real-time media applications any advantage over WebRTC, with WebTransport and MoQ positioned as possible foundations for the next generation of real-time protocols. 

In this episode of WebRTC Live, we welcomed back Lorenzo Miniero, Chairman at Meetecho and author of the Janus WebRTC Server. Lorenzo has been experimenting with MoQ and QUIC for several years, looking at MoQ from the perspective of a WebRTC developer. He talks about building the imquic library and adding QUIC-based protocols to Janus, including RTP over QUIC (RoQ) and MoQ, and discusses the problems he ran into integrating these protocols with an existing WebRTC server, the gaps between WebRTC and QUIC-based frameworks, and the right use cases for WebRTC, MoQ, or both.

The episode includes our monthly WebRTC Industry Update with Tsahi Levent-Levi. This month’s topic: Deepgram Acquires Daily: Was It a Bet on Pipecat?

WebRTC Live #119: WebRTC, MoQ, or Both? A QUIC Study

Episode takeaways below.

Takeaways

Lorenzo sees MoQ as a better fit for broadcasting than for conferencing.

He views it as a lower-latency, more efficient alternative to HLS and DASH. For conferencing, he prefers WebRTC’s fire-and-forget delivery to the way QUIC handles congestion control. Half a second of delay is a large improvement over HLS for a broadcast, but too much for a conversation.

MoQ carries any data type on the same connection, which Lorenzo expects will make it easier to sync non-media data with video.

In WebRTC, aligning data channel messages with a specific video frame in the browser takes workarounds such as insertable streams, because the browser hides timestamps. He cited use cases from others’ work: remote driving, with car camera video and steering commands on one QUIC connection; cloud gaming; and sensor data publishing as an MQTT replacement.

MoQ’s configurable latency lets a viewer get live and past objects in the same session.

His examples: seeing video immediately after joining seconds past the last keyframe, and rewinding 20 minutes to watch a missed Napoli goal. WebRTC can do both with custom server-side work. MoQ includes them in the protocol.

MoQ has no true peer-to-peer mode because QUIC is client-server, and Lorenzo considers that a small limitation.

Most WebRTC deployments already route media through a server. The StreamYard session they were recording on is one example. Two endpoints can simulate P2P by having one act as the server, plus a discovery mechanism. Arin added that the remaining true-P2P cases still favor WebRTC. The MoQ relay plays a role similar to an SFU in a publish-subscribe model, but MoQ relays have no simulcast equivalent yet.

Lorenzo learned QUIC by writing his own implementation from scratch before adding MoQ and RoQ to Janus.

Little of that first code survives in imquic, his current library, but writing it taught him session setup, encryption levels, connection migration, and how streams differ from datagrams. He submitted a conference talk on the topic before he knew the protocols, as a forcing deadline. He started at MoQ draft version 3; the draft is now around version 23.

Lorenzo built bridges between WebRTC and MoQ in Janus because he expects both protocols to coexist for years.

Media published over WebRTC can be consumed over MoQ, and the reverse. He tied this to Janus’s early support for SIP, RTSP, and plain RTP. He rejects both the claim that WebRTC is finished and the claim that MoQ is useless.

MoQ replaces SDP negotiation with declarative catalogs and one-directional tracks.

In the MoQ Streaming Format, the publisher declares what each track contains and subscribers take it as published, so the same video in VP8 and H.264 becomes two tracks. LOC (Low Overhead Container) carries the timing and frame metadata RTP carries in WebRTC. Encryption and connection migration come from QUIC itself, so ICE and DTLS have no counterpart.

Lorenzo sees RTP over QUIC as most useful for server-to-server trunking.

RoQ adds a flow identifier so many RTP sessions can share one QUIC connection. As a WebRTC alternative he sees little value, since RTP packetization exists to fit MTU limits that QUIC streams do not impose. A RoQ trunk could replace the SSRC arithmetic Janus’s VideoRoom plugin uses for cascading, and could link two SIP infrastructures over a single port.

Meetecho already runs MoQ in production for IETF remote participation.

At the previous IETF meeting, media entering through Janus over WebRTC was re-published over MoQ for the three MoQ sessions, and one participant watched from a plane. Lorenzo said they planned to repeat it at the San Francisco IETF meeting the following week.


Up Next! WebRTC Live #120: Adding Emotional Intelligence to Voice AI Agents

with Chloe Duckworth of Valence AI

Wednesday, December 9, 12:30 pm Eastern

Register for WebRTC Live 120

Recent Blog Posts