Open Bug 1943289 Opened 1 year ago Updated 4 days ago

livestorm.co/OpenTok/Vonage doesn't support simulcast in Firefox

Categories

(Web Compatibility :: Site Reports, defect, P2)

Tracking

(Webcompat Priority:P2, Webcompat Score:6)

Webcompat Priority P2
Webcompat Score 6

People

(Reporter: pehrsons, Unassigned)

References

(Depends on 2 open bugs, )

Details

(Keywords: webcompat:platform-bug, webcompat:site-report)

User Story

platform:windows,mac,linux,android
impact:unsupported-feature
configuration:general
affects:all
branch:release
user-impact-score:400

Attachments

(1 file)

On livestorm.co users may be presented with a warning that the experience is worse than in Chrome due to lack of support for simulcast, as per their own docs:

We really encourage you to use Chrome as a presenter though. Indeed, Chrome assures that the quality of the stream that you send out stays stable thanks to a technology called "Simulcast". It ensures overall stability to carry out your session, without any resolution or connectivity issues.

Using their connectivity test shows on about:webrtc that they use VP8, for which we have supported simulcast for years for regular video, and since 134 for screen capture.

Doing the connectivity test in Chrome reveals a different setup, see the attached file for a chrome://webrtc-internals dump from when it was running. It does show simulcast, with this bit of sdp added by munging between createOffer and setLocalDescription(offer):

a=ssrc-group:SIM 10000 10001 10002
a=ssrc-group:FID 10000 20000
a=ssrc-group:FID 10001 20001
a=ssrc-group:FID 10002 20002
a=ssrc:10000 cname:localCname
a=ssrc:10000 msid:3498aa85-b2e8-49b5-a74c-70a2c413cb17 abe0803f-90c9-4606-b414-7b3e8690b49c
a=ssrc:10001 cname:localCname
a=ssrc:10001 msid:3498aa85-b2e8-49b5-a74c-70a2c413cb17 abe0803f-90c9-4606-b414-7b3e8690b49c
a=ssrc:10002 cname:localCname
a=ssrc:10002 msid:3498aa85-b2e8-49b5-a74c-70a2c413cb17 abe0803f-90c9-4606-b414-7b3e8690b49c
a=ssrc:20000 cname:localCname
a=ssrc:20000 msid:3498aa85-b2e8-49b5-a74c-70a2c413cb17 abe0803f-90c9-4606-b414-7b3e8690b49c
a=ssrc:20001 cname:localCname
a=ssrc:20001 msid:3498aa85-b2e8-49b5-a74c-70a2c413cb17 abe0803f-90c9-4606-b414-7b3e8690b49c
a=ssrc:20002 cname:localCname
a=ssrc:20002 msid:3498aa85-b2e8-49b5-a74c-70a2c413cb17 abe0803f-90c9-4606-b414-7b3e8690b49c

Looking into source code it becomes clear that livestorm uses opentok.min.js. OpenTok, originally from TokBox, then acquired by Vonage has only minified source available, here is v2.28.2. A quick search in that file reveals some code for detecting and inserting a=ssrc-group:SIM but no code matching a=simulcast or rid: (note case-sensitive search) which would be how setting up simulcast by spec works.

ssrc-group:SIM is from Using SSRC with WebRTC Simulcast and it says among other things:

Abstract

This document describes a convention for sending "a=ssrc" attributes
in SDP together with "a=simulcast" attributes. This allows SFUs that
need SSRC information to have this info easily accessible.

Given that it is intended as an interim measure, it does not aim for
being published as an RFC.

then

1. Introduction

In developing the WebRTC specification, the IETF decided on a form of
simulcast that doesn't require fixed SSRC allocation, but rather used
a combination of SDP tags (a=rid) I-D.ietf-mmusic-rid and RTP
header extensions (RTPStreamId) I-D.ietf-avtext-rid to describe the
mapping between simulcast layers and RTP streams.

The SDP format is described in I-D.ietf-mmusic-sdp-simulcast.

This posed a problem for some SFUs, which required information on
what SSRCs the incoming streams were going to appear on in order to
be configured correctly.

This document gives a convention for adding information about SSRCs
to the SDP produced by conformant WebRTC implementations in order to
make this information available.

This document does not specify an Internet standard. It is an
interim measure, intended to be useful in the time between the
introduction of RID-based simulcast in browsers and the full support
of RID-based simulcast by SFUs.

and

6. Sunsetting the interim measure

This specification is intended to give SFU authors time to convert to
the new mechanism. Since the invocation of this mechanism is
explicit, it is easy to check on what the usage is, and emit
deprecation warnings; those should probably be emitted from day 1.

Once enough time has passed, this mechanism can be removed.

Interestingly Chrome does not emit any deprecation warnings in their browser console.

There are at least three parties we could do outreach to on this matter:

  • Google re deprecating and removing ssrc-group:SIM
  • Livestorm as providers of a service that relies on non-spec behavior and incorrectly calling out browsers for lack of support
  • Vonage for implementing simulcast in a non-spec manner

I will note the first trace I see of ssrc-group:SIM in libwebrtc is cecfd18 which is from 2013. It seems the spec mentioned above came about as a means to help SFUs relying on this, already then old non-standardized Chrome-only, behavior transition to RID, by specifying how to expose an SSRC-to-RID mapping in SDP.

I also note Firefox does expose SSRCs in SDP when set up to send simulcast, in addition to RIDs. There is no explicit mapping but one may assume the order is the same. For an SFU like OpenTok it would therefore already be possible to know the simulcast SSRCs in Firefox from SDP, without supporting the RID extension, should that be the issue blocking transition to spec-compliance.

  • Google re deprecating and removing ssrc-group:SIM

I've filed crbug 391899130 on this. Please see discussion as well.

Webcompat Priority: --- → P3
Severity: -- → S2
User Story: (updated)
Webcompat Priority: P3 → P2
Priority: -- → P2

I have reached out to a contact we had at Vonage, but we're still waiting for a response there. I also have a lead for a contact at Livestorm, but nothing sent yet.

Chatting with Andreas, we could do a domain specific non-spec fix that would have to land in Firefox. TBD if that's the direction we want to go.

Webcompat Score: --- → 5
Depends on: 1278001
Depends on: 1573726
No longer depends on: 1278001
User Story: (updated)
Webcompat Score: 5 → 6
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: