Re: [Moq] Scope of MOQ and ULL Streaming

Luke Curley <kixelated@gmail.com> Wed, 08 February 2023 17:53 UTC

Return-Path: <kixelated@gmail.com>
X-Original-To: moq@ietfa.amsl.com
Delivered-To: moq@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 75CA8C13631C for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 09:53:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.994
X-Spam-Level:
X-Spam-Status: No, score=-1.994 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3TxVZJaGkvXH for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 09:52:56 -0800 (PST)
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3AF36C14CF01 for <moq@ietf.org>; Wed, 8 Feb 2023 09:52:56 -0800 (PST)
Received: by mail-ej1-x631.google.com with SMTP id ud5so53121308ejc.4 for <moq@ietf.org>; Wed, 08 Feb 2023 09:52:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2O54Skm5BSzBypUlRMCsFfexreIsPLwsA+S84U/ARc4=; b=GWz1FOISE5G4iwj7a/TPxAqVyvSss9fYInuccNV2A3ztM4f1Nvc1tk+hwrzSgLmQJ6 C3XbQmUhMXWfWb1RLds4JA//U/wSOlF7Whlc9D7KD5D3woVW7yMWO3UUchjhwheoNcjh ZhaxBI0Xb/gzI8Rj4ZrfpnkSW4bFk4eLyboJWn3C41Y9xKqwOx+pnXFyiqfwEZukIVvG bgnCwzf1C2Hqo3dp17H9feaBxzfbYJhmP8FgM8UfzzPPxnFPMAMwo+1SOGRLqEDH2QNJ ltFIxXUXTRt67NV3/w+2raQd9I3HE0E5Y2yDO0dPinxjjfsL/ZXrscZDZ8uw6hpSC9ib AZLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2O54Skm5BSzBypUlRMCsFfexreIsPLwsA+S84U/ARc4=; b=Poj396rHfAKrchvl3QSphghn0d/TPnwlLsNOGDzpYBzOW+KvlBal0Nj8UefTsHF/4i YGvwGHY9xbveF4qjOdGJcajEXiBVGaQmGRYrFk1BXP3I9SINfFsSZofp/haFf1vIwxaf 1PC6jXar0wz/Sbqc11C+bZfmebZ7JYW/bdJvEkt8fS8oEUz+w3xcw1fCDByZNpgTJZh1 5U4G8XB7dmzLJa3HcVO3ZI1pHkBxLztPPdMB+DNOBLJGbQmuSdl/9xmqvn8ojBqCZQXM KRrppl2a/QMBKbCTmoNZ8ShclM4eMXuh0mo5I280A3Pev2LmcItUSzEo6WefXN0ZNtub /G2Q==
X-Gm-Message-State: AO0yUKXpTHASzpDxKeXz+/rWKLmedW6NOKh408iIWBl2NEYWImXFBU14 at5deSTx1ElUTu7cN9Z2vkpJ6WvF66M0nsDybEc=
X-Google-Smtp-Source: AK7set/l+P3kVdAHSokg3LbfOxx/i/qRWQx75hpad6FQpjBp729T/u2w8g0gkfk8AIvu7Bgu78dHwTI/KuCtl0TrCGg=
X-Received: by 2002:a17:906:4d58:b0:87b:d491:4311 with SMTP id b24-20020a1709064d5800b0087bd4914311mr1811585ejv.275.1675878774415; Wed, 08 Feb 2023 09:52:54 -0800 (PST)
MIME-Version: 1.0
References: <CANG3SPyuA=pThgpZCwUYT9KjGT0xogonruQpSiSiGwgcRATknw@mail.gmail.com> <2bb53060da504a679e8e97c4ad583eb1@huawei.com> <CANG3SPwK7J-F5b9brtE7Lhv8o6pUeOeNsgNNTgTmHbHEYD-UzQ@mail.gmail.com>
In-Reply-To: <CANG3SPwK7J-F5b9brtE7Lhv8o6pUeOeNsgNNTgTmHbHEYD-UzQ@mail.gmail.com>
From: Luke Curley <kixelated@gmail.com>
Date: Wed, 08 Feb 2023 09:52:42 -0800
Message-ID: <CAHVo=Z=uEAFrDGwgavO1r04oHCmL20M_rLzMtoAO59x8OuWKfw@mail.gmail.com>
To: nathan.burr@paramount.com
Cc: "Shihang(Vincent)" <shihang9@huawei.com>, MOQ Mailing List <moq@ietf.org>
Content-Type: multipart/related; boundary="000000000000096ebe05f433efed"
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/_VIIYYekdWvXQZnXTAeJvqj8vSs>
Subject: Re: [Moq] Scope of MOQ and ULL Streaming
X-BeenThere: moq@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Media over QUIC <moq.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/moq>, <mailto:moq-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/moq/>
List-Post: <mailto:moq@ietf.org>
List-Help: <mailto:moq-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/moq>, <mailto:moq-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Feb 2023 17:53:00 -0000

I also have a mostly HLS background. It's important to take a step back and
explore *why* we want to replace HLS/DASH, and what we lose by doing so.

The best part about HLS/DASH is the HTTP ecosystem. That includes CDN
support, optimized software, and general interoperability. We lose a lot of
this by creating a custom pub/sub mechanism.

The worst part about HLS/DASH is the latency. This is caused by
head-of-line blocking (buffering) and the client being in charge
(requesting playlists and segments). The Warp draft tackles these problems
with QUIC prioritization (delivery order) and WebTransport push
respectively.


The premise behind specifying a generic pub/sub protocol is that we can
support non-media applications, so it's then more attractive for a CDN to
support MoQ. However I'm terrified that we don't have any other
applications in mind, and we're too eager to sacrifice media functionality
in the pursuit of a bigger pie.

I'm not saying that we can't fulfill all of our media requirements with a
generic pub/sub protocol. That being said, I think it's telling that I
haven't seen an existing pub/sub protocol used for media. I would like to
know why "Media over MQTT" or "Media over RabbitMQ" is not adequate.
Routing objects based on a path and wildcard subscriptions has been done
many, many times before and I want a reason why this time is different.


So I strongly urge us to focus on media first. That means pull media with
HTTP/3, or push media with WebTransport. The middle ground is the worst of
both: we won't produce something generic enough and/or we won't produce
something media-specific enough.



On Tue, Feb 7, 2023, 4:48 AM Nathan Burr <nathan.burr@paramount.com> wrote:

> MQTT is a Pub/Sub protocol used for sending data generally for the
> "Internet of Things" devices to the cloud. I wouldn't use it here for this
> type of thing. but something similar could work. What I like about it is
> how you can create topics ( looks like paths ) and use wildcards. This
> site
> <https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/>
> might help if you would like to learn more.
>
> encoders would publish data to a topic.
>
> anyone can subscribe to a topic and so any updates get sent to all people
> who subscribe as soon as they are available
>
> You could make it so you could subscribe to Big_Buck_Bunny/Metadata  and
> then have it send the current persistent data for that topic and all future
> updates or just do a regular GET request for the current metadata and not
> subscribe to any changes.
>
> On Mon, Feb 6, 2023 at 9:04 PM Shihang(Vincent) <shihang9@huawei.com>
> wrote:
>
>> <External Email>
>>
>>
>> Hi Nathan,
>>
>>
>>
>> “In my opinion, MOQ should be a stateless forwarding machine. I would
>> like to do two basic types of requests.
>>
>>    - Subscribe
>>       - I picture this is something similar to how MQTT works with
>>       topics. Subscribe to a topic or sub topics and use wildcards. Example:
>>
>> Big_Buck_Bunny/VideoTrack{N}/Representation{N}/
>> Big_Buck_Bunny/AudioTrack{N}/Representation{N}/
>> Big_Buck_Bunny/SubtitleTrack{N}/Representation{N}/
>>
>>    - GET
>>       - I feel like this would still be important to discover
>>       information about the channel without having to subscribe. IMO each topic
>>       should have an associated metadata endpoint. that describes the channel,
>>       track, representation. This way a client can get stream details without
>>       needing information from a manifest.”
>>
>> I am not familiar with the MQTT. What is the difference between the
>> Subscribe and GET?
>>
>>
>>
>> Cheers,
>>
>> Hang
>>
>> *From:* Moq <moq-bounces@ietf.org> *On Behalf Of *Nathan Burr
>> *Sent:* Tuesday, February 7, 2023 1:05 AM
>> *To:* moq@ietf.org
>> *Subject:* [Moq] Scope of MOQ and ULL Streaming
>>
>>
>>
>> *Discussion #1:*
>>
>>
>>
>> I've spent a bit of time trying to wrap my head around what MOQ is and I
>> feel like this needs to be discussed further. I've seen everything from VR,
>> Conferencing, ULL Broadcasting and gaming as possible use cases. I feel
>> like this is an important discussion because MOQ could be a base layer spec
>> that supports all of these. But that means possibly the need for more
>> specs. Such as VR ov MOQ or ULL Streaming over MOQ. Or it could be a Spec
>> that is more specific to just one thing. The original work around WARP
>> seemed to lean more towards ULL Streaming while RUSH leaned more towards VR
>> and gaming.
>>
>>
>>
>> So where does MOQ fit into all of this? Maybe this has already been
>> discussed and I'm just missing context..
>>
>>
>>
>> My expertise is around ABR Streaming. So I'll be providing more feedback
>> on that side of the conversation of where I would like things to go.
>>
>>
>>
>> *Discussion #2:*
>>
>>
>>
>> What is the target latency? Maybe that depends on the answer to
>> Discussion #1. For ULL Streaming I would think somewhere between 500ms -
>> 2.5s.
>>
>>
>>
>> *Discussions around ULL Streaming involving MOQ:*
>>
>>
>>
>> [image: image.png]
>>
>>
>>
>> In my opinion, MOQ should be a stateless forwarding machine. I would like
>> to do two basic types of requests.
>>
>>    - Subscribe
>>
>>
>>    - I picture this is something similar to how MQTT works with topics.
>>       Subscribe to a topic or sub topics and use wildcards. Example:
>>
>> Big_Buck_Bunny/VideoTrack{N}/Representation{N}/
>> Big_Buck_Bunny/AudioTrack{N}/Representation{N}/
>> Big_Buck_Bunny/SubtitleTrack{N}/Representation{N}/
>>
>>    - GET
>>
>>
>>    - I feel like this would still be important to discover information
>>       about the channel without having to subscribe. IMO each topic should have
>>       an associated metadata endpoint. that describes the channel, track,
>>       representation. This way a client can get stream details without needing
>>       information from a manifest.
>>
>> Relaying is probably out of scope for MOQ. Looks like some are working on
>> that process. But I would imagine some sort of smart relaying where you
>> only relay what is being subscribed to down the subscription chain.
>>
>>
>>
>> In order to support channel composition (inserting ads, blackout, slate,
>> scheduling, switching channels, PiP, contributor feed, commentary, etc.) I
>> feel like we will still need a manifest of some sort that contains
>> different metadata from different assets and channels. In this scenario
>> having the ability to share a session ID between the manifest and transport
>> would be important. This would probably fall under some of the other AuthZ
>> type of discussions.
>>
>>
>>
>> Session ID would be needed to make sure to terminate any subscriptions
>> after their subscription has expired.
>>
>>
>>
>> *Next Gen ULL Streaming Wish List:*
>>
>>    - "Synchronization Tracks" for quick channel switching and recovery.
>>    https://media.idlab.ugent.be/keyframe-insertion-electronics
>>    <https://urldefense.com/v3/__https://media.idlab.ugent.be/keyframe-insertion-electronics__;!!CxwJSw!LOoclAmKobZ09z6p5IugHIWxEy8E7fyRwvdOA-UWtCTQzsvTqJ403kaIhBxVsr9_yhbH5gPzeBRAn6qOXBJq$>
>>
>>
>>    - AV1 - Switch Frames
>>
>>
>>    - DRM - EME requires ISOBFF. Would be nice if EME supported raw ES.
>>    Some discussions around content protection and WebCodecs:
>>    https://github.com/w3c/webcodecs/issues/41
>>    <https://urldefense.com/v3/__https://github.com/w3c/webcodecs/issues/41__;!!CxwJSw!LOoclAmKobZ09z6p5IugHIWxEy8E7fyRwvdOA-UWtCTQzsvTqJ403kaIhBxVsr9_yhbH5gPzeBRAn56wzYmv$>
>>    Could make it so we transport CMAF over MOQ or make a polyfill around
>>    EME/MediaSource that muxes content into ISOBFF format. as long as the ES
>>    conforms to CENC spec.
>>    - No more polling. Updates to the manifest are streamed.
>>
>>
>>
>> -Nate
>>
>>
>>
>>
>>
>>
>>
>> --
> Moq mailing list
> Moq@ietf.org
> https://www.ietf.org/mailman/listinfo/moq
>
>