Open Bug 1692873 Opened 4 years ago Updated 2 years ago

is screenshare simulcast supported?

Categories

(Core :: WebRTC, defect, P3)

Firefox 87
defect

Tracking

()

UNCONFIRMED

People

(Reporter: work, Unassigned)

References

Details

Attachments

(3 files)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36

Steps to reproduce:

I'm trying to publish a screensharing stream in simulcast but only one ssrc is received by the SFU.
Also, when I use replacetrack with a screen track in a correctly published webcam simulcast stream, the number of layers (temporal and spatials) drops to 1 until the webcam stream is replaced again.

this can also be tested in https://github.com/fippo/simulcast-playground/blob/gh-pages/rid-as-mid.html changing line 35 to do a getDisplayMedia()

Actual results:

Only one ssrc is sent to other party and no simulcast is being published.

Expected results:

At least couple of temporal layer should be published by Firefox when screensharing in simulcast.

The Bugbug bot thinks this bug should belong to the 'Core::Privacy: Anti-Tracking' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Privacy: Anti-Tracking
Product: Firefox → Core
Component: Privacy: Anti-Tracking → Audio/Video

(In reply to Release mgmt bot [:sylvestre / :calixte / :marco for bugbug] from comment #1)

The Bugbug bot thinks this bug should belong to the 'Core::Privacy: Anti-Tracking' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Flags: needinfo?(drno)

I think it should work. But it sounds like we have a bug there. It might be that Firefox old version of libwebrtc prevents simulcast of screen shares... I think I might have seen some code like that.

Component: Audio/Video → WebRTC
Flags: needinfo?(drno)

(In reply to Francesco Durighetto from comment #0)

this can also be tested in https://github.com/fippo/simulcast-playground/blob/gh-pages/rid-as-mid.html changing line 35 to do a getDisplayMedia()

Francesco, would you mind providing more details around this? I've tried this, but must not be doing exactly what you are because I get nothing at all on the screen after modifying line 35.

Flags: needinfo?(work)

(In reply to Michael Froman [:mjf] from comment #4)

(In reply to Francesco Durighetto from comment #0)

this can also be tested in https://github.com/fippo/simulcast-playground/blob/gh-pages/rid-as-mid.html changing line 35 to do a getDisplayMedia()

Francesco, would you mind providing more details around this? I've tried this, but must not be doing exactly what you are because I get nothing at all on the screen after modifying line 35.

You can try to copy the following code into an HTML page: https://pastebin.com/duKPSGmN

note that not always the video is subscribed and displayed in the tabs. reload the page few times to get an idea of what I'm assuming is a bug

Flags: needinfo?(work)
Flags: needinfo?(mfroman)

I've tried this with our in-progress libwebrtc update and did not have luck (insta-crash). I think we're not quite far enough along for this particular use case. I see this as interesting in the log when running a debug build:

[Child 20601, Main Thread] WARNING: NS_ENSURE_TRUE(info) failed: file {path-to-source}/extensions/permissions/PermissionDelegateHandler.cpp:348

I'll capture screen shots of the html in Comment 5 so we can have additional conversations.

FYI: I'm using the attached test.html file in a directory, served by running python3 -m http.server.

Attached image results from test.html (deleted) —

Here is what I see when using test.html when locally served. This doesn't seem to work at all in Chrome. I'm not exactly sure what I'm supposed to see.

Flags: needinfo?(mfroman)
Attached image FirefoxChromeSimulcastComparison.png (deleted) —

I'm able to repro:

  • with this fiddle, I get just one (large) video,
  • whereas in Chrome, or s/getDisplayMedia/getUserMedia/ it works: shows 3 videos (small, medium, large).

This does not appear to be a regression. I was able to go back to 2018-08-01 (using an older fiddle to go past bug 1405495). But past that I run into some stricter tests we used to have that trip up fippo's simulcast hack: DOMException: "Answer changes mid for level, was 'sdparta_0', now '0'"

I think it is safe to at least switch the bug to confirmed

I'm going to guess that there's no chance of this working until we're done with bug 1654112. It is possible that bug 1654112 will be sufficient, since we do not differentiate between screenshare and camera in our simulcast negotiation/configuration code, I think.

Severity: -- → S3
Depends on: 1654112
Priority: -- → P3

Hi, wondering if there was an update on this or a plan to get it fixed anytime soon? Thank you.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: