Re: [Wish] WHIP should also allow *media* to be sent over the HTTPS connection

Sean DuBois <sean@siobud.com> Sat, 13 March 2021 02:55 UTC

Return-Path: <sean@siobud.com>
X-Original-To: wish@ietfa.amsl.com
Delivered-To: wish@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AF59D3A128F for <wish@ietfa.amsl.com>; Fri, 12 Mar 2021 18:55:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, 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 (1024-bit key) header.d=siobud.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 NJCwIrrF0sDD for <wish@ietfa.amsl.com>; Fri, 12 Mar 2021 18:55:01 -0800 (PST)
Received: from mail.siobud.com (mail.siobud.com [165.227.221.230]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 22C5A3A128C for <wish@ietf.org>; Fri, 12 Mar 2021 18:55:01 -0800 (PST)
Date: Fri, 12 Mar 2021 18:54:53 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=siobud.com; s=mail; t=1615603896; bh=mdJslNEE8US8IVFvX6OE5gzu88WOt3fB/HFJaj1vKAQ=; h=From:To:Cc:Subject:References:In-Reply-To; b=qXq/x6Bjk2miRShW/iFK1J2QGUK+aj2HTQ8zRkGEEzEk+Uhf+d4UEHd5iahqYyFfL Cy3Da/SAgFgEejOE+XMFqIOGlrIjdsOs9CMPWZYsu/WJrKRmkDQsnb7/SStBoTgmMn J2yGiYom0FpdDs1ow9yc/FWZlbOpf8qkU/68VSUA=
From: Sean DuBois <sean@siobud.com>
To: Ross Finlayson <finlayson@live555.com>
Cc: wish@ietf.org
Message-ID: <YEwpfcKceVutkbQ5@SeanLaptop.sioBuD.com>
References: <EA0DDB88-D685-4646-8BC8-D694EA2274D7@live555.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <EA0DDB88-D685-4646-8BC8-D694EA2274D7@live555.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/BlpV1D2WnWSNvQif70rFGvJCJbA>
Subject: Re: [Wish] WHIP should also allow *media* to be sent over the HTTPS connection
X-BeenThere: wish@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: WebRTC Ingest Signaling over HTTPS <wish.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wish>, <mailto:wish-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wish/>
List-Post: <mailto:wish@ietf.org>
List-Help: <mailto:wish-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wish>, <mailto:wish-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Mar 2021 02:55:03 -0000

Hi Ross,

RTP/RTCP over HTTP totally works. These are some of the issues I anticipate or
things that I really like about WebRTC...

# Needs to get into the browser
WebCodecs + WebTransport might solve this, but it hasn't been proven to
be feasible yet.

# WHIP needs to define more
WebRTC has some complicated features that I think WHIP will benefit from

* Simulcast
* Negotiation (Codec support, Multiplexing tracks)
* Congestion Control/Error Correction (When using QUIC Datagrams)

Simulcast is a big one. It is expensive to run transcoders, I would much
rather have publishers upload multiple quality levels.

# WHIPs narrow usage will mean not many implementations
I can capture my webcam/distribute a file today on these platforms or
using these languages. These aren't just bindings. I don't see WHIP ever
matching this because of its narrow use case.

* C++/Mobile (Android/iOS) [0]
* C/RTOS [1]
* Go [2]
* Rust [3]
* Typescript [4]
* Python [5]
* C# [6]

# ICE is good for the client
Network switching (Wifi -> 4G) is nice to have. You have 'IRL Streamers'
who will be using WHIP. I am not familiar with the latest in
TCP/HTTP, but this is a 'solved problem' with WebRTC at least.

[0] https://webrtc.googlesource.com/src/
[1] https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c
[2] https://github.com/pion/webrtc
[3] https://github.com/webrtc-rs/webrtc (Rust, Full implementation)
[4] https://github.com/shinyoshiaki/werift-webrtc
[5] https://github.com/aiortc/aiortc
[6] https://github.com/sipsorcery-org/sipsorcery

On Fri, Mar 12, 2021 at 05:40:44PM -0800, Ross Finlayson wrote:
> One of the promises of WISH is that it might provide a way for relatively simple media sources (e.g. things like network cameras and real-time text (e.g., telemetry) feeds) to be more easily used within WebRTC applications.
>
> During the WISH meeting earlier this week, a few speakers expressed concern about complexities of the proposed ‘injestion’ protocol (WHIP), in particular, the need to implement ICE.  While Cullen (for example) correctly pointed out that if the web server has a public IP address (as it usually will), then then relatively little ICE is required, this seemed to only partially alleviate the concerns.
>
> Fortunately, for very simple media source endpoints, there is an easy solution already available to us: Have the media source negotiate COMEDIA transport (RFC 4145) with RTP/RTCP packets framed as defined in RFC 4571.  The media source (i.e., offerer) can ask for a "TCP/RTP/AVP”[*] stream, with "a=connection:existing”.  If the media server accepts this, then the media source can proceed to send its media over the existing HTTPS connection (that was used for negotiation), without requiring any ICE or STUN or TURN or DTLS, or any wrestling with NAT.  Nothing new needs to be standardized for this to work.
>
> Needless to say, streaming RTP/RTCP over a reliable stream isn’t ideal, but it’s an easy solution, and perhaps appropriate for some simple, relatively low-bitrate media streams.
>
> The WHIP document should, IMHO, explicitly note this possibility, by describing a 'WHIP-light’ subset of the protocol that very simple media sources might want to use (with caveats).
>
> Of course, a media server should not be required to support WHIP-light (just as it should not be required to support any particular codec(s)), but having this possibility will likely cause WHIP to get more adoption.
>
> 	Ross.
>
> [*] Yes, having “TCP” in the transport description might be a bit of an anachronism if the HTTPS stream ends up being sent over QUIC, but the meaning remains clear.
>
> --
> Wish mailing list
> Wish@ietf.org
> https://www.ietf.org/mailman/listinfo/wish