Re: [dispatch] WHIP - WebRTC HTTP ingestion protocol

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Thu, 29 October 2020 13:24 UTC

Return-Path: <sergio.garcia.murillo@gmail.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 080B63A0978 for <dispatch@ietfa.amsl.com>; Thu, 29 Oct 2020 06:24:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.344
X-Spam-Level:
X-Spam-Status: No, score=-2.344 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_MESSAGE=0.001, NICE_REPLY_A=-0.247, 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=gmail.com
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 sEwk0Vsuid-1 for <dispatch@ietfa.amsl.com>; Thu, 29 Oct 2020 06:24:26 -0700 (PDT)
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D3D193A0990 for <dispatch@ietf.org>; Thu, 29 Oct 2020 06:24:25 -0700 (PDT)
Received: by mail-wm1-x334.google.com with SMTP id d3so2403090wma.4 for <dispatch@ietf.org>; Thu, 29 Oct 2020 06:24:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=kqv4miRx1vp+Ty59CkoekT+A/MyktMXh/uiOARbEp3k=; b=o9BjEbhVlMBpFNJ/MBBw5Xl90e34keDs6V6yKl0nULXoqu+YuxKEsxm6KVrhZGSUBj 3hBlvuo0TnfXf1pmqbZP9DSjdIsOVN7sxOt+Tf7Rmyj1kiVBlvWZ7y+uEkXHfy14fp4x rH8DLYe8gT/OaARqjT2sO/5myXm9I9bSE+AthR26Cbx3SAY7v+VfgblzfCe0j6lSprPt 7Y1UBfsvctpavWDHtf8NEEujrM0t2scd+Vj1Um4KWZCSsCpQno95qpjHtvyRnhcbywub 2FqG6Oh3FlV9kOGLXQBX51/xniFrlylxT/6FNN3HRAB2FBKxy1MvRpzC+DdUCPCoUEoi nEZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=kqv4miRx1vp+Ty59CkoekT+A/MyktMXh/uiOARbEp3k=; b=mRRxhcxOzHNAtjGS9Q3OPxnNxKe0Knp8GhrP9SkpyhNYqEOx7JByMACQpG71ucnIME O2nQJmAl483K//X6O240YUSvrKWowqkqpgeQj46PXWoktoKiWMrUyphNGkbBKRl/XBEk ZLY5+KojfMFLYpf6WtAXUt7mz21M15xFua6MAUQ3ezoBv6e60u/bUkqpPLjQo2OYGepB yWO/+aCrRWvQRKddubU2OM8ec3FuPt3xJ7m/dEWKsBt3jAvZZMp4FQ+/yh52GIzrYULI XDBlqU83q+vQCJFUDv35moExGWyNs68a7wMGoSIjRsPe39urKfupK9aJgE0HoEOCJgEO fgMA==
X-Gm-Message-State: AOAM53027JjA6IiMfMGYxG445CwL0gMJAyjKpHNY0zvHi5ThUbcIqyTH WqxLI7ru76ABsv5Qe32/p0w7ho5VG+1ZYg==
X-Google-Smtp-Source: ABdhPJxS4XssnsJYSaaTnkGp6Ja/ghjCiMukKzKKv4i1hdqtMeLPO7MhXgsJTbzlkUXSiPQ371ED0g==
X-Received: by 2002:a1c:96ca:: with SMTP id y193mr4441223wmd.22.1603977861189; Thu, 29 Oct 2020 06:24:21 -0700 (PDT)
Received: from [192.168.0.11] (79.108.125.160.dyn.user.ono.com. [79.108.125.160]) by smtp.googlemail.com with ESMTPSA id c8sm4802088wrv.26.2020.10.29.06.24.20 for <dispatch@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 29 Oct 2020 06:24:20 -0700 (PDT)
To: dispatch@ietf.org
References: <085505e3-9899-f817-b6df-db8022d52e26@gmail.com> <0E35658D-D768-4DF2-BF0F-95D6F5889B4F@nostrum.com> <566085E5-B555-4314-BCFE-9A03CD082C8E@westhawk.co.uk>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Message-ID: <e9d8ad8f-da2d-32ca-c4bd-c0eba532f82f@gmail.com>
Date: Thu, 29 Oct 2020 14:24:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.1
MIME-Version: 1.0
In-Reply-To: <566085E5-B555-4314-BCFE-9A03CD082C8E@westhawk.co.uk>
Content-Type: multipart/alternative; boundary="------------2D4997EBB9E1477277116895"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/0ZRIW6Mpf-G8-nOagjBfoVghoVA>
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:24:28 -0000

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