Mo Q
FOMS 2024 - Media over QUIC, Web Transport
Web Transport
Overview:
- WT is an API that works on different browsers
- Gives you direct access from JS to QUIC streams
- QUIC streams are reliable datagrams
- API is almost complete, good shape to wrap it up by EOY
- In terms of transport: excellent for low latency. It can be used outside media.
- It’s closer conceptually to WebSockets?.
Roadmap for exposing network statistics:
- GetStats? method, tradeoff with fingerprinting
- Which network stats would you like to collect? They are already detailed and mandatory.
Discussion:
- Luke: at twitch they used http. The issue was http: one request at a time. He was the first user of the origin The nice part of HTTP: cache-ability. That’s the idea of MoQ.
- Do we get stats for the rate of change of RTT?
- Stats are pulled. You can pull whenever you want.
- JB: WT in production. Chrome works perfectly fine, Firefox has some bugs depending on the platform. Safari challenges with certificate handling.
- DRM: Kyber is trying DRM with Castlabs. Common Encryption on the Elementary Stream
- You lose the rest of the WebRTC? / MSE blackbox. You have to reimplement everything but the network.
- Twitch needed lower latency, but better quality than WebRTC?. They didn’t care about device-latency matching.
Congestion control:
- It depends on the browser. It implements congestion control.
- Chrome is using cubic. It has packet timing.
- Quic has congestion states: is that exposed?
- No state information is shared intentionally.
- Rationale: the user agent owns the quic stack. You cannot do your own congestion control on JS. That’s why UDP isn’t available in the browser.
- Smoothing algorithm not standardized.
There is two main use cases:
- low latency streaming (twitch-ish) without having to hack webrtc
- real-time interaction (like controlling machines)
Media Over Quic
Overview:
- It offers new layouts for distributions. Now you can use the same network to publish stats to the CDN. Same delivery surface that delivers, also accepts data back from the player.
- The idea is that MoQ is generic. Chat, controller input, etc. is just a live track. It’s cachable
- It’s a replacement for HTTP.
- WebRTC? was not designed to be a generic transport.
- IETF MoQ Transport WG is a group that has enough influence from some large companies (Cisco).
We need actual media applications using it! For CDNs? to adopt it, they need large scale. Usually the least common denominator.
Demo -> https://quic.video/
Adoption:
- Adoption challenges for p2p? No conferencing tools use p2p.
- Adoption: Advocate big companies to adopt it. Big companies will do vertical integrations. Then CDNs? will roll it out.
Action Items:
- Get involved in the IETF. It will take time, don’t judge success on whether this is implemented by Q1-25 or not.