Skip to main content

Minutes interim-2024-moq-15: Mon 16:00
minutes-interim-2024-moq-15-202407081600-00

Meeting Minutes Media Over QUIC (moq) WG
Date and time 2024-07-08 16:00
Title Minutes interim-2024-moq-15: Mon 16:00
State Active
Other versions markdown
Last updated 2024-07-10

minutes-interim-2024-moq-15-202407081600-00

2024-07-08
MoQ Working Group virtual interim

Agenda:

  • Note Well
  • Administrivia

    • scribe: Mike English
    • today is draft deadline
    • interop?

      • draft-04 to draft-05 diff is almost entirely priorities
      • need to add priority fields (at least) to try interop even
        if not able to implement priority handling behaviors fully
        in time
        • Cullen: we've done OK with just link conditioning for
          testing, happy to try interop testing of priorities with
          others if you let us know what you'd like to test
        • Will: do we know Apple's link conditioner is robust for
          QUIC?
          • Jana: it works fine if you're just trying to create
            some simple congestion conditions, good starting
            point, probably adequate
          • Luke: doesn't model bufferbloat well, but that's
            probably OK for this stage
    • MoQ-based live stream of IETF sessions?

      • Jordi: need to work with A/V team and get dedicated
        connection because connectivity at these events is often not
        good
      • Alan: was thinking more ad hoc with a laptop or similar, but
        can ask about more
      • Jordi: our implementation can be used, but interop might be
        tricky because we use LoC whereas Luke's implementation uses
        CMAF
      • Suhas: we can test with some relays
      • Luke: we haven't focused on standardizing media yet in the
        WG, relays are generic
    • other topics for Vancouver?

      • Cullen: would be nice to wrap up our discussions of timeout
        before folks forget what we've discussed
      • Ian: subscribe done, announce issues, would be nice to have
        PRs for some of the proposals
      • Ian: subscribe ids... should subscriptions be their own
        streams (do we use QUIC max streams or create our own
        mechanism?)
      • Alan: if people have issues they want to resolve, please
        flag to chairs in the next week
        • someone will need to write things down on slides we can
          discuss (not just presenting the GitHub issues)
  • PRs in flight:

  • Jordi: priorities are definitely the big thing to work on since
    we've talked about how MoQ can do this a lot, but haven't done it
    until now

  • Jordi: also curious if others have implemented the different modes
    of delivery on the server side (datagrams, etc.)

    • Alan: moxygen can forward all of them at least

      • Jordi: no...
        • Alan: well it should be able do, we can discuss offline
    • Luke: I've implemented them all and it's painful, they require
      several distinct code paths

    • ... (scribe falling behind)
  • Victor: question about metrics: what do you want to do if you're
    falling behind and can't send metrics?

    • this highlights problem with stream per track
    • also with stream per track if anything goes wrong it means you
      need to tear down and start over
    • Luke: you could get almost the same behavior by using just one
      group
      • Want to force people to use groups, use GoP per stream, not
        just reimplement RTMP in QUIC with little benefit
      • Alan: for what it's worth, what Meta does today is kind of
        like this and we do see some benefits (which is why we did
        it), so there's not no benefit
  • Ian: added stream mapping to list of things to talk about

  • Ian: let's try to focus on sorting out timeout before IETF
  • Ian: can someone write up slides for announce issues? Or even a PR?

    • Cullen: I can. Already have some material from previous make
      before break discussions
  • Luke: can you summarize the announce topic?

    • Alan: clarifying what happens when A announces something and B
      announces the same thing, also things about make before break,
      redundant publishers, and similar issues
    • Luke: we need to talk about whether relays forward announces or
      not
    • Alan: yes, this has come up with moq-chat and other people
      trying to build similar systems
  • Will: made a request to get agenda time for catalog and WARP
    streaming format

    • Not wanting to take up too much time, but we should keep in the
      back of our mind building something that can interop at the
      media / streaming format layer
    • Alan: yes, Jordi also brought up LoC earlier, don't remember if
      we've adopted that yet, but if people see value there maybe we
      should?
  • ...

  • Jordi: player can send subscribe before announce which can lead to
    subscribe error, one solution is to sleep and retry

    • also, LoC plays really nicely with WebCodecs in the browser
  • Luke: I have a service that can advertise/aggregate announces as a
    new track with wildcard matching (moq-dir)

    • might be nice to have something like this in the protocol itself
  • Will: working on making WARP both LOC and CMAF compatible. Can see
    value in using both.

  • Jana: what are the big rocks/boulders we still need to move in this
    group?

    • Alan: besides what we mentioned earlier?
    • Cullen: security. Don't want to deal with that until after
      Vancouver, but that's something we've largely punted on so far

      • Alan: what aspects, specifically?

        • Cullen: authn/authz tokens, things that integrate with
          billing models, need a systematic pass through the whole
          draft for security, also privacy, need to write down
          more guardrails
      • Alan: Ian, would it be useful to capture these in issues?
        e.g. with a DoS tag, etc.?

        • Ian: yes. DoS, Auth, etc.
        • Ian: we haven't really decided if namespaces mean
          something yet...?
        • Ian: let's label these DoS and/or security/privacy
          • Ian: I'll create a DoS tag and a security tag today
          • happy to punt until after Vancouver
  • Will: we're building a fundamentally open system by default and
    retrofitting content protection after the fact (something I promised
    I'd never do again), also advertising / dynamic ad insertion,
    personalized ad injection will require the edge to do something
    different, also congestion response for non-realtime - something
    more like bitrate adaptation like what Zafer has raised

    • (three main points)

      • content protection
      • ad insertion
      • bitrate adaptation
    • Jana:

      • re: content protection: ...
      • ad insertion: don't understand well what's used today
        • Alan: probably a good number of folks here who do
          understand this, should we use one of these virtual
          interim sessions to do some education on this?
        • Will: yes, especially since we should support existing
          infrastructure for this as a baseline
  • Lucas: we did talk about qlog at one point, would be happy to talk
    more about that face to face, will also be around at the hackathon,
    can treat that as open office hours time to ask question or whatever

  • Luke: need feedback for RTC use case

    • need some mechanism for adjusting the encoder's bitrate
    • this is one of the hardest layering things to get right for
      scaling
    • don't do the full WebRTC thing, but we need something
  • Ian: re: congestion control - maybe we can define some properties
    for what works well for CC in this context, but we're not the CC WG
    so we're not designing those algorithms here

    • Jana: it is slightly different in that there's a different
      entity responding to signals
  • Jana: are there people wanting to use MoQ for live streaming?

    • [terminology clarifications]
    • ...
      • (several people chimed in that they have this use case)

Google Meet chat:

Ian Swett
12:04 PM
https://github.com/moq-wg/moq-transport/pull/479
Luke Curley
12:06 PM
WebRTC does prioritize audio above video :p
libwebrtc I mean
Ian Swett
12:07 PM
I'm on a Disney Cruise, so we're on opposite sides of this
Lucas Pardue
12:16 PM
its 100% inadequate if you're not on a mac LOL
Jana Iyengar
12:17 PM
netem on linux, dummynet on BSD, NLC on macOS (which is based on
dummynet AFAIK)... and if you're on windows, why?
Luke Curley
12:38 PM
quic.video is basically JSON catalog + CMAF groups
Will Law
12:39 PM
I may put a short little survey together to compare how quic.video,
moxygen, LOC and QUICR work on the media mapping side.
Ian Swett
12:44 PM
Everything
Luke Curley
12:45 PM
ANNOUNCE auth to, so you can't just ANNOUNCE to hijack an existing
broadcast since latest wins
too*
somebody is going to ANNOUNCE "bbb" to steal my demo stream
Luke Curley
12:55 PM
warp-01 had a section like that
if you want to yoink it
Mirja Kühlewind
12:56 PM
we used to have a whole wg on real-time media congestion control: rmcat

Luke Curley
12:57 PM
https://www.ietf.org/archive/id/draft-lcurley-warp-01.html#name-congestion-control

Ian Swett
12:58 PM
Yes
Luke Curley
12:58 PM
yes when I was representing Twitch :)
MoQ is great for 1s - 3s latency, but it's probably too expensive for
anything higher @Jana
Mirja Kühlewind
1:01 PM
bye