As promised today, here is a list of resources and some ideas to get you started working on MoQ.
You may have already found the MoQ page in the IETF datatracker. I would especially recommend reading these two drafts:
[x] Media over QUIC Transport (https://datatracker.ietf.org/doc/html/draft-ietf-moq-transport-03)
[x] Design Space Analysis of MoQ (https://datatracker.ietf.org/doc/html/draft-shi-moq-design-space-analysis-of-moq-03)
Then, there are a few (very) short papers on the topic:
[x] Media-over-QUIC Transport vs. Low-Latency DASH: a Deathmatch Testbed https://dl.acm.org/doi/10.1145/3625468.3652191
[x] Media over QUIC: Initial Testing, Findings and Results https://dl.acm.org/doi/10.1145/3587819.3593937
Lookup: DASH, HLS, Warp by Twitch, LL DASH.
[x] Design and Implementation of a Low-Latency Origin and Relay for Media-over-QUIC Transport https://dl.acm.org/doi/10.1145/3625468.3652914
[x] This is The Way: Prioritization in Media-over-QUIC Transport https://dl.acm.org/doi/10.1145/3638036.3640280
[x] Need for Low Latency: Media over QUIC https://dl.acm.org/doi/10.1145/3588444.3591033
You said you are already familiar with QUIC and HTTP/3. In addition to that, I think it would be good to familiarize yourself with the WebTransport protocol suite and API, as they will be important blocks when building applications using MoQ:
As I mentioned today, we are working on implementing MoQ using quic-go. The code is hosted on GitHub:
To see an example of media streaming using the implementation, you can check out this application using Gstreamer:
That app could also be used and extended as a first step for a relay or live-streaming app. For example, you could implement a small intermediary server that forwards tracks between the sender and receiver. However, the implementation is still a work in progress and will evolve, so please let me know if you run into any issues while using it.
Please let me know if you have further questions.