Re: [dispatch] WHIP - WebRTC HTTP ingestion protocol

Lorenzo Miniero <lorenzo@meetecho.com> Thu, 29 October 2020 13:56 UTC

Return-Path: <lorenzo@meetecho.com>
X-Original-To: dispatch@ietfa.amsl.com
Delivered-To: dispatch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7D3483A0AFA for <dispatch@ietfa.amsl.com>; Thu, 29 Oct 2020 06:56:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=aruba.it
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gYEnK91TD1qb for <dispatch@ietfa.amsl.com>; Thu, 29 Oct 2020 06:56:16 -0700 (PDT)
Received: from smtpcmd0986.aruba.it (smtpcmd0986.aruba.it [62.149.156.86]) by ietfa.amsl.com (Postfix) with ESMTP id 800DE3A0AD7 for <dispatch@ietf.org>; Thu, 29 Oct 2020 06:56:15 -0700 (PDT)
Received: from lminiero ([93.35.209.44]) by Aruba Outgoing Smtp with ESMTPSA id Y8PUk2berboZEY8PUkHOxz; Thu, 29 Oct 2020 14:56:14 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aruba.it; s=a1; t=1603979774; bh=8cFbmtlBOPXNhlf8pe+4XXHq06/xg+tY2r5lUBvWf5M=; h=Date:From:To:Subject:MIME-Version:Content-Type; b=SspzFomJYz8j3nDdcpvUlX2miE7GWXBYJlesim6QLEx6RIOfaElwfUXOheAKvudag /7vDdQopGvHwEEMuSNhP/R2KLBFKhHbVSRnXdsEhJJTkDXqSLiSxJPFFXOhWklxKR+ 57zibY0zMsanqCJZg+3ZDLDTYTi++zoOXYz6QuLrIj78uKwh7UXU6EnJWsXeBf4tut nkHs3Cak2D8heOWOseU5J+zvhWpYC62cZNtuGEu9RypoqQzAWs+0gGhZRQRYjI230R CllH4icq2UhUpbIvZ3yRbMl0KLB7UGM1GGPQuSwvDhq9gHmeCv79kgsfrxPMhfFHJF +SwKwYFsx9knQ==
Date: Thu, 29 Oct 2020 14:56:11 +0100
From: Lorenzo Miniero <lorenzo@meetecho.com>
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Cc: dispatch@ietf.org
Message-ID: <20201029145611.66571764@lminiero>
In-Reply-To: <e9d8ad8f-da2d-32ca-c4bd-c0eba532f82f@gmail.com>
References: <085505e3-9899-f817-b6df-db8022d52e26@gmail.com> <0E35658D-D768-4DF2-BF0F-95D6F5889B4F@nostrum.com> <566085E5-B555-4314-BCFE-9A03CD082C8E@westhawk.co.uk> <e9d8ad8f-da2d-32ca-c4bd-c0eba532f82f@gmail.com>
Organization: Meetecho
X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-CMAE-Envelope: MS4wfHkb9W8ib9VbCqm5lZveqkZOWx1Bf2sHBz28h1dRd62D17x+mT2J/js/htBtDXqg2myrTsIcPlwHHuvxJ6vbtup49f5CdQOn6fIxqs6UI3RyQ4DAzb/c LmHIWlhOpe2i7JEQUhtgrTOM1KGzSJ7xTalI509OhlEqtJE4Pmj+Y31j2pts6SHnpO7p6Da/lSgBcUlwJfh0HJJP91Y0qh7Rb9s=
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/65guCByhT8PSA20-Hos5gjEPsvM>
Subject: Re: [dispatch] WHIP - WebRTC HTTP ingestion protocol
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DISPATCH Working Group Mail List <dispatch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dispatch>, <mailto:dispatch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dispatch/>
List-Post: <mailto:dispatch@ietf.org>
List-Help: <mailto:dispatch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dispatch>, <mailto:dispatch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 29 Oct 2020 13:56:20 -0000

I personally think the currently proposed approach is fine and simple
enough. Going for further simplification may actually complicate things,
paradoxically: if we assume some parameters are known already, it means
potentially crafting and munging SDPs on the client side if the
existing APIs don't allow for such flexibility, which in case of
browsers may be suboptimal (not to mention SDP munging may actually not
even be possible sooner or later). The alternative would be letting the
server offer and the client answer, but that means you can't do it with
a single HTTP request as WHIP does now.

The only feedback I have is adding the ability to expose a further URL
(e.g., something you can send an HTTP DELETE to) to interrupt the
ingestion, as I think just relying on ICE and DTLS may not be reliable
or quick enough, not to mention the fact that there would be no way to
distinguish between a user dropping their connection, and the user
actually meaning to close the connection in the first place.

Lorenzo


On Thu, 29 Oct 2020 14:24:19 +0100
Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> wrote:

> Hi Tim,
> 
> I see the merits for an uri-based signal-less and sdp-less setup for 
> webrtc, specially for p2, in which you could even use datachannel as 
> control channel for adding and removing tracks later on. However,
> that is far beyond the scope of my current draft.
> 
> You say that this may not go far enough, and I could agree to that,
> but relying on current SDP O/A mechanism, HTTP and webrtc specs
> allows to have simple spec that we can have ready and working really
> fast. I agree to add constrains or force usage of certain optional
> features defined in other specs to simplify the implementation
> complexity on both servers and clients, but if we plan to redefine
> SDP I am afraid that we will get into a rabbit hole that will keep us
> discussing for months/years.
> 
> As I said, I see the benefits of it, but I would prefer to leave it
> out of scope of current WHIP draft spec and if anyone is interested
> in leading the work, start an independent draft for that. I will be
> willing to collaborate anyway.
> 
> Best regards
> Sergio
> 
> On 29/10/2020 12:07, T H Panton wrote:
> > My feedback:
> >
> > 1) this is a good idea - we need something like this. Full webRTC
> > O/A is too complex for simple ingestion usecases.
> > 2) A URI is an excellent hook to hang this on.
> > 3) I don't think it goes far enough.
> >
> > Almost all of the offer/answer content is redundant, because most
> > of it is _known_ by both sides already.
> > The ingestion services typically specify what 
> > codecs/bitrates/framerates they will accept.
> > They don't output any media.
> >
> > I claim we can simplify the O/A to something that looks more like 
> > RTSP's SDP or even simpler.
> >
> > - So I support this, but would want to discuss simplification.
> >
> > Tim.
> >  
> >> On 28 Oct 2020, at 20:10, Ben Campbell <ben@nostrum.com 
> >> <mailto:ben@nostrum.com>> wrote:
> >>
> >> Hi Everyone,
> >>
> >> Did anyone have feedback or other thoughts on Sergio’s proposal?
> >>
> >> Thanks!
> >>
> >> Ben.
> >>  
> >>> On Sep 30, 2020, at 5:24 AM, Sergio Garcia Murillo 
> >>> <sergio.garcia.murillo@gmail.com 
> >>> <mailto:sergio.garcia.murillo@gmail.com>> wrote:
> >>>
> >>> Hi all!
> >>>
> >>>
> >>> While WebRTC has been very successful in a wide range of
> >>> scenarios, its adaption in the broadcasting/streaming industry is
> >>> lagging behind. Currently there is no standard protocol (like SIP
> >>> or RTSP) designed for ingesting media in a streaming service, and
> >>> content providers still rely heavily on protocols like RTMP for
> >>> it.
> >>>
> >>> These protocols are much older than WebRTC and lack by default
> >>> some important security and resilience features provided by
> >>> WebRTC with minimal delay.
> >>>
> >>> The media codecs used in older protocols do not always match
> >>> those being used in WebRTC, mandating transcoding on the ingest
> >>> node, introducing delay and degrading media quality. This
> >>> transcoding step is always present in traditional streaming to
> >>> support e.g. ABR, and comes at no cost. However webrtc implements
> >>> client-side ABR, by means of simulcast and SVC codecs, which
> >>> otherwise alleviate the need for server-side transcoding. Content
> >>> protection and Privacy Enhancement can be achieve with End-to-End
> >>> Encryption, which preclude any server-side media processing.
> >>>
> >>> We have been working on a proposal for a simple HTTP based
> >>> protocol that will allow WebRTC endpoints to ingest content into
> >>> streaming services and/or CDNs to fill this gap and facilitate
> >>> deployment:
> >>>
> >>>   * https://tools.ietf.org/html/draft-murillo-whip-00
> >>>   * https://github.com/murillo128/webrtc-http-ingest-protocol/
> >>>
> >>>
> >>> We have already implemented it on Janus and Medooze media servers:
> >>>
> >>>   * https://www.meetecho.com/blog/whip-janus/
> >>>   *
> >>> https://medium.com/@medooze/whip-webrtc-meets-the-broadcasting-world-86772eba8ae7
> >>>
> >>>
> >>> And added support into a WebRTC version of OBS studio:
> >>>
> >>>   *
> >>> https://github.com/CoSMoSoftware/OBS-studio-webrtc/releases/tag/m84v23.2-RC2
> >>>
> >>>
> >>> We also plan to have an interop session on the next IETF
> >>> hackhaton, that will allow to check the interoperability between
> >>> different WebRTC implementations.
> >>>
> >>>
> >>> What would be the best way of moving this forward? Obviously, any 
> >>> feedback will be very welcome.
> >>>
> >>>
> >>> Best regards
> >>>
> >>> Sergio
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> dispatch mailing list
> >>> dispatch@ietf.org <mailto:dispatch@ietf.org>
> >>> https://www.ietf.org/mailman/listinfo/dispatch  
> >>
> >> _______________________________________________
> >> dispatch mailing list
> >> dispatch@ietf.org <mailto:dispatch@ietf.org>
> >> https://www.ietf.org/mailman/listinfo/dispatch  
> >
> >
> > _______________________________________________
> > dispatch mailing list
> > dispatch@ietf.org
> > https://www.ietf.org/mailman/listinfo/dispatch  
> 
> 



-- 
I'm getting older but, unlike whisky, I'm not getting any better
https://twitter.com/elminiero