[dispatch] WHIP - WebRTC HTTP ingestion protocol

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Wed, 30 September 2020 10: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 4069A3A0A90 for <dispatch@ietfa.amsl.com>; Wed, 30 Sep 2020 03:24:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, 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 QarRkeHB_MJ5 for <dispatch@ietfa.amsl.com>; Wed, 30 Sep 2020 03:24:51 -0700 (PDT)
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) (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 9D7C13A0061 for <dispatch@ietf.org>; Wed, 30 Sep 2020 03:24:51 -0700 (PDT)
Received: by mail-wr1-x431.google.com with SMTP id c18so1152991wrm.9 for <dispatch@ietf.org>; Wed, 30 Sep 2020 03:24:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:cc:from:subject:message-id:date:user-agent:mime-version :content-language; bh=Xu4QKrfiNvI8LBLjyKY6nRkwJ3fT3/Gx3esyZHAACDg=; b=fr3OhX6DYd3asr8piAyIIqkPB+5W4vWYADxdHHF3AyVT1mmCCh7xX6BAco69iBMYt3 8nWjtXRyC5zICf5poSunU5IK9WAUAhK8VnLWSTo0El5YwcJ6nwLtKQv5/EdFi0XCCCa/ ttvTPjoNvDOZRhBFErxyU4jnoHud1pSquZSa1FcL2Yr1gdDDZym2iqPEK3U9yNeMKBas +N0OiYpCPFzxlSvgPDbxAeNCTomDW3n0/glTZWn8ZzdS6iUeq7MXU1yTNWSpPeoFeDUk xRnoBsAl2g84EuQgnUjNbFBDIiHWwP8oV9lEdVlb2SeqMOhcNCiAV+1TeX0Rg+i/UWMC WEZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:message-id:date:user-agent :mime-version:content-language; bh=Xu4QKrfiNvI8LBLjyKY6nRkwJ3fT3/Gx3esyZHAACDg=; b=bPHODU81MYRmCrDToVgg09ydUHVTGevHpXgqTRAlHAq4PzYdeXAi0zi0SXF4FKJgPH jDN4fAEG/CVzuxX03+4RjDsRb8IJF/4Sj//CA7fUZBUDQvvlyjkF0COLYsHbpRkOB1i5 ah8FvAP/NMOEmd9EkaljFmrPzGwOaMz3uG62j1SYNKydkNcYn3RrHCc84wzjAU0nvlFR d16egco3UIVdXGbeXW4m+E+o/ptE3UlfmgsKfzFie7KJBK1cxrBMPhCKU3d6tyU0mneI 8a7EENuG75FQ8rilIK1Idy5WXUYEL4qmJ0houUC7oB8D37E+Pdd4SL14a6cWg0yBrOKN iB/A==
X-Gm-Message-State: AOAM530r17CO1pRHSJhka3rGib+yV/C9yOtY0Zk14qssCRvoxjVDjhUs AWVLuN75QLef3eiou3SIFds=
X-Google-Smtp-Source: ABdhPJwbYY8DSqOSfq+BngUcSWZSYGTiI1Nk+07r4Ec1LLQJPRUMtr3gXH6OSntFguKQoMPz8MHn3Q==
X-Received: by 2002:a05:6000:11c5:: with SMTP id i5mr2377062wrx.18.1601461489817; Wed, 30 Sep 2020 03:24:49 -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 t10sm1954314wmi.1.2020.09.30.03.24.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Sep 2020 03:24:49 -0700 (PDT)
To: "dispatch@ietf.org" <dispatch@ietf.org>
Cc: Lorenzo Miniero <lorenzo@meetecho.com>, Alex Gouaillard <dralex@millicast.com>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Message-ID: <085505e3-9899-f817-b6df-db8022d52e26@gmail.com>
Date: Wed, 30 Sep 2020 12:24:48 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------E1FCA4B13834FB61010AAD57"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/cfVLpE0aOy_zEWc5zMiZinOdbgc>
Subject: [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: Wed, 30 Sep 2020 10:24:53 -0000

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