Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
* [Galene] WHIP support for Galene
@ 2021-09-11 14:38 Juliusz Chroboczek
  2021-09-11 16:08 ` [Galene] " Dave Taht
  2021-09-14 19:13 ` Eliot Mack
  0 siblings, 2 replies; 5+ messages in thread
From: Juliusz Chroboczek @ 2021-09-11 14:38 UTC (permalink / raw)
  To: galene

Hi,

The IETF WISH working group is chartered to provide a simple HTTP-based
ingress protocol for WebRTC video servers.  The goal is to have a simple
standardised protocol for client->server communcation that can be used
where RTMP is used today: in broadcasting applications (think OBS Studio)
or in IP cameras.

The current incarnation is the WHIP protocol, described at

  https://datatracker.ietf.org/doc/draft-ietf-wish-whip/

I've pushed a preliminary implementation of WHIP for Galene to the "whip"
branch.  You may test it with Lorenzo Miniero's test client

  https://github.com/lminiero/simple-whip-client

Limitations: Galene uses HTTP Basic Auth, while Lorenzo's client uses
a Bearer Token (in accordance with the spec), so you'll need to say in the
group configuration

    "presenter": [{}],
    "allow-anonymous": true

-- Juliusz

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Galene] Re: WHIP support for Galene
  2021-09-11 14:38 [Galene] WHIP support for Galene Juliusz Chroboczek
@ 2021-09-11 16:08 ` Dave Taht
  2021-09-11 18:24   ` Juliusz Chroboczek
  2021-09-14 19:13 ` Eliot Mack
  1 sibling, 1 reply; 5+ messages in thread
From: Dave Taht @ 2021-09-11 16:08 UTC (permalink / raw)
  To: Juliusz Chroboczek; +Cc: galene

I have not paid much attention to this effort, thx for bringing it up.

But I can't help but wonder about methods to bring RTMP into galene?

On Sat, Sep 11, 2021 at 7:38 AM Juliusz Chroboczek <jch@irif.fr> wrote:
>
> Hi,
>
> The IETF WISH working group is chartered to provide a simple HTTP-based
> ingress protocol for WebRTC video servers.  The goal is to have a simple
> standardised protocol for client->server communcation that can be used
> where RTMP is used today: in broadcasting applications (think OBS Studio)
> or in IP cameras.
>
> The current incarnation is the WHIP protocol, described at
>
>   https://datatracker.ietf.org/doc/draft-ietf-wish-whip/
>
> I've pushed a preliminary implementation of WHIP for Galene to the "whip"
> branch.  You may test it with Lorenzo Miniero's test client
>
>   https://github.com/lminiero/simple-whip-client
>
> Limitations: Galene uses HTTP Basic Auth, while Lorenzo's client uses
> a Bearer Token (in accordance with the spec), so you'll need to say in the
> group configuration
>
>     "presenter": [{}],
>     "allow-anonymous": true
>
> -- Juliusz
> _______________________________________________
> Galene mailing list -- galene@lists.galene.org
> To unsubscribe send an email to galene-leave@lists.galene.org



-- 
Fixing Starlink's Latencies: https://www.youtube.com/watch?v=c9gLo6Xrwgw

Dave Täht CEO, TekLibre, LLC

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Galene] Re: WHIP support for Galene
  2021-09-11 16:08 ` [Galene] " Dave Taht
@ 2021-09-11 18:24   ` Juliusz Chroboczek
  0 siblings, 0 replies; 5+ messages in thread
From: Juliusz Chroboczek @ 2021-09-11 18:24 UTC (permalink / raw)
  To: Dave Taht; +Cc: galene

> But I can't help but wonder about methods to bring RTMP into galene?

It would be quite easy to add RTMP support to Galene.  The problem is that
RTMP only supports a fixed set of codecs, and the only codecs that are
supported by both RTMP and WebRTC are H.264 and G.711.

I guess we could live with H.264, even though it's not supported by many
low-end Android phones, but the quality of G.711 is just not acceptable
today.  So either somebody needs to add VP8 and Opus to RTMP, or we'd need
a transcoding gateweay between RTMP and Galene.

-- Juliusz

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Galene] Re: WHIP support for Galene
  2021-09-11 14:38 [Galene] WHIP support for Galene Juliusz Chroboczek
  2021-09-11 16:08 ` [Galene] " Dave Taht
@ 2021-09-14 19:13 ` Eliot Mack
  2021-09-14 22:08   ` Juliusz Chroboczek
  1 sibling, 1 reply; 5+ messages in thread
From: Eliot Mack @ 2021-09-14 19:13 UTC (permalink / raw)
  To: Juliusz Chroboczek; +Cc: galene

[-- Attachment #1: Type: text/plain, Size: 4452 bytes --]

Thanks for implementing this! Looks like it has a lot of potential.

We compiled the whip branch of Galene, configured the group as suggested,
and downloaded the most recent Windows obs-webrtc-x64-27.0.1-m91-2.22.msi
build of OBS-WebRTC from
https://github.com/CoSMoSoftware/OBS-studio-webrtc/releases.

I added our Galene address to the Advanced Settings->Publish API URL line
in the OBS Stream settings, and tried to start streaming. However, I'm
getting the below errors.

Before diving deeper, I was curious if anyone had successfully linked
OBS-WebRTC to the Galene WHIP branch.

-Eliot

18:06:06.849: Output 'simple_stream': Tried to set a delay value on a
non-encoded output
18:06:06.849: millicast_stream_start
18:06:06.849: WebRTCStream::start
18:06:06.849: Video codec: h264
18:06:06.849: Simulcast: false
18:06:06.849: Publish API URL:
https://bigboard.agog.com/group/Highland_Park/
18:06:06.849: Protocol: Automatic
18:06:06.849: (rtc_event_log_impl.cc:43): Creating legacy encoder for RTC
event log.
18:06:06.849:
18:06:06.850: (peer_connection_factory.cc:357): Using default network
controller factory
18:06:06.850:
18:06:06.850: (bitrate_prober.cc:72): Bandwidth probing enabled, set to
inactive
18:06:06.850:
18:06:06.850: (pacing_controller.cc:230): bwe:pacer_updated pacing_kbps=300
padding_budget_kbps=0
18:06:06.850:
18:06:06.850: (aimd_rate_control.cc:113): Using aimd rate control with back
off factor 0.85
18:06:06.850:
18:06:06.850: (remote_bitrate_estimator_single_stream.cc:72):
RemoteBitrateEstimatorSingleStream: Instantiating.
18:06:06.850:
18:06:06.850: (remote_estimator_proxy.cc:50): Maximum interval between
transport feedback RTCP messages (ms): 250
18:06:06.850:
18:06:06.851: (webrtc_session_description_factory.cc:185): DTLS-SRTP
enabled; sending DTLS identity request (key type: 1).
18:06:06.851:
18:06:06.851: (openssl_key_pair.cc:38): Making key pair
18:06:06.851: PEER CONNECTION CREATED
18:06:06.851:
18:06:06.851:
18:06:06.851: (peer_connection.cc:1014): Adding audio transceiver in
response to a call to AddTransceiver.
18:06:06.851:
18:06:06.851: (peer_connection.cc:1014): Adding video transceiver in
response to a call to AddTransceiver.
18:06:06.851:
18:06:06.851: Stream Name:
18:06:06.851:
18:06:06.851: CONNECTING TO https://bigboard.agog.com/group/Highland_Park/
18:06:06.851: (openssl_key_pair.cc:91): Returning key pair
18:06:06.851:
18:06:06.851: (openssl_certificate.cc:59): Making certificate for WebRTC
18:06:06.851:
18:06:06.852: (openssl_certificate.cc:109): Returning certificate
18:06:06.852:
18:06:06.853: (webrtc_session_description_factory.cc:491): Setting new
certificate.
18:06:06.853:
18:06:06.920: Error querying publishing websocket url
18:06:06.920: code: 308
18:06:06.920: body:
18:06:06.920: Error connecting to server
18:06:06.921: WebRTCStream::OnIceConnectionChange [6]
18:06:06.921: WebRTCStream::OnConnectionChange [5]
18:06:06.921: (sdp_offer_answer.cc:2481): Session: 3426409987904746185 Old
state: stable New state: closed
18:06:06.921:
18:06:06.921: (paced_sender.cc:187): ProcessThreadAttached 0x0
18:06:06.921:
18:06:06.922: Stream output type 'millicast_output' failed to start!
18:06:06.958: ==== Streaming Stop
================================================


On Sat, Sep 11, 2021 at 7:38 AM Juliusz Chroboczek <jch@irif.fr> wrote:

> Hi,
>
> The IETF WISH working group is chartered to provide a simple HTTP-based
> ingress protocol for WebRTC video servers.  The goal is to have a simple
> standardised protocol for client->server communcation that can be used
> where RTMP is used today: in broadcasting applications (think OBS Studio)
> or in IP cameras.
>
> The current incarnation is the WHIP protocol, described at
>
>   https://datatracker.ietf.org/doc/draft-ietf-wish-whip/
>
> I've pushed a preliminary implementation of WHIP for Galene to the "whip"
> branch.  You may test it with Lorenzo Miniero's test client
>
>   https://github.com/lminiero/simple-whip-client
>
> Limitations: Galene uses HTTP Basic Auth, while Lorenzo's client uses
> a Bearer Token (in accordance with the spec), so you'll need to say in the
> group configuration
>
>     "presenter": [{}],
>     "allow-anonymous": true
>
> -- Juliusz
> _______________________________________________
> Galene mailing list -- galene@lists.galene.org
> To unsubscribe send an email to galene-leave@lists.galene.org
>


-- 
Eliot Mack
CEO
Lightcraft Technology
(310) 821-3888
<(805)%20338-7199>

[-- Attachment #2: Type: text/html, Size: 7460 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Galene] Re: WHIP support for Galene
  2021-09-14 19:13 ` Eliot Mack
@ 2021-09-14 22:08   ` Juliusz Chroboczek
  0 siblings, 0 replies; 5+ messages in thread
From: Juliusz Chroboczek @ 2021-09-14 22:08 UTC (permalink / raw)
  To: Eliot Mack; +Cc: galene

> We compiled the whip branch of Galene, configured the group as suggested, and
> downloaded the most recent Windows obs-webrtc-x64-27.0.1-m91-2.22.msi build of
> OBS-WebRTC from 
> https://github.com/CoSMoSoftware/OBS-studio-webrtc/releases.

I'm unfortunately unable to test this -- the .deb requires a more recent
version of libc than is available in Debian unstable, while the sources
require libwebrtc, which requires more effort to build than I can afford
right now.

Do you think you could provide a trace of the HTTP requests done by OBS
studio?

-- Juliusz

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-09-14 22:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-11 14:38 [Galene] WHIP support for Galene Juliusz Chroboczek
2021-09-11 16:08 ` [Galene] " Dave Taht
2021-09-11 18:24   ` Juliusz Chroboczek
2021-09-14 19:13 ` Eliot Mack
2021-09-14 22:08   ` Juliusz Chroboczek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox