Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jitsi screensharing doesn't work on desktop #683

Open
t3chguy opened this issue Aug 25, 2017 · 184 comments
Open

Jitsi screensharing doesn't work on desktop #683

t3chguy opened this issue Aug 25, 2017 · 184 comments

Comments

@t3chguy
Copy link
Member

t3chguy commented Aug 25, 2017

given option to share everything or an application window, the latter sees no application windows and hitting share on either does nothing, video stream remains from webcam

@t3chguy
Copy link
Member Author

t3chguy commented Aug 25, 2017

maybe needs something like https://github.com/jitsi/jitsi-meet-electron/

@lampholder
Copy link
Member

Not strictly speaking voip but it's the tag that's most likely to see this issue picked up by the right people.

@t3chguy
Copy link
Member Author

t3chguy commented Oct 21, 2017

Seems to still not be working even though PR matrix-org/matrix-react-sdk#1355 has landed :(
image

@t3chguy
Copy link
Member Author

t3chguy commented Oct 21, 2017

image

@xmeng1
Copy link

xmeng1 commented Jan 25, 2018

+1

@t3chguy
Copy link
Member Author

t3chguy commented Jan 29, 2018

Now that I have an NVL hat and can see both sides of the issue I'll take a look at it

@t3chguy
Copy link
Member Author

t3chguy commented Jan 29, 2018

This seems to have even further regressed as this never fires: matrix-org/matrix-react-sdk@5357454#diff-0e2cb0e79e0d376b964d6d11e52c4c45R150

@MurzNN
Copy link

MurzNN commented May 10, 2018

Seems that this is Chrome engine issue, because Jitsi Screen Sharing works well in Riot-web on Firefox, but in Chrome browser - needs separate extension.

@t3chguy
Copy link
Member Author

t3chguy commented May 10, 2018

That's not correct. It's a nested iframe issue as I have pointed out above. For electron the extension would not work as electron exposes screen sharing devices via a native api and not gUM, and you can run screensharing in chrome without extensions if you start it with a command line argument

@BloodyIron
Copy link

I'm trying to do desktop sharing, via jitsi channel widget, with the desktop riot client, and it never ends up presenting options to share. When I try to share whole screen, or per app, just spins circles. :(

@MurzNN
Copy link

MurzNN commented Aug 10, 2018

Can this https://chrome.google.com/webstore/detail/riotim-screen-sharing/ehgcnaneidbjcmblghjepmamomchgahd extension been integrated in Electron app for solve this issue?

@t3chguy
Copy link
Member Author

t3chguy commented Aug 10, 2018

Nope. Electron has special screen sharing apis which that extension does not support.

@MurzNN
Copy link

MurzNN commented Aug 20, 2018

Developers of Jitsi recommend use https://github.com/jitsi/jitsi-meet-electron-utils for solve this permission problem, did you try this way?

@t3chguy
Copy link
Member Author

t3chguy commented Aug 20, 2018

@MurzNN Yup that is already fitted but it doesn't work due to it being an iframe inside an iframe and it not getting passed through because of this.

@BloodyIron
Copy link

I really wish we could get this solved. Using riot for screen sharing would be seriously useful! :D

@MurzNN
Copy link

MurzNN commented Oct 17, 2018

Seems permission problem can be fixed using new getDisplayMedia() API in Chromium v70 https://groups.google.com/forum/#!msg/discuss-webrtc/Uf0SrR4uxzk/uO8sLrWuEAAJ

@MurzNN
Copy link

MurzNN commented Nov 23, 2018

Jisti Meet implement new Chrome API via this commit jitsi/jitsi-meet#2233 (comment) so we can update Jitsi lib + Chromium in Riot electron build, and recheck permission problem.

@dbkr
Copy link
Member

dbkr commented Dec 18, 2018

Just been looking at this after encountering the feature and how it's buggy as above. Agreed the way to go here is to let it use getDisplayMedia() once Electron is using a new enough chromium.

dbkr referenced this issue in element-hq/element-web Dec 18, 2018
 * Turn off node integration in the electron renderer process
 * Enable the chromium sandbox to put the renderer into its own process
 * Expose just the ipc module with a preload script
 * Introduce a little IPC call wrapper so we can call into the
   renderer process and await on the result.
 * Use this in a bunch of places we previously used direct calls
   to electron modules.
 * Convert other uses of node, eg. use of process to derive the
   platform (just look at the user agent)
 * Strip out the desktopCapturer integration which doesn't appear
   to have ever worked (probably best to just wait until
   getDisplayMedia() is available in chrome at this point:
   https://github.com/vector-im/riot-web/issues/4880).
@ara4n
Copy link
Member

ara4n commented Feb 10, 2019

@dbkr: do we magically get this for free after all the recent electron upgrades then?

@dbkr
Copy link
Member

dbkr commented Feb 11, 2019

Chrome 70 is the magic milestone with getDisplayMedia. Electron 4.0 is chromium 69 - almost!

@MurzNN
Copy link

MurzNN commented Feb 11, 2019

Seems update to Chrome 70 will not be done quickly - only in Electron 5.0 electron/electron#15059 :(
Also maybe we need Chrome 72, as described in https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia:

Chrome 70 — 72
Notes: Available as a member of Navigator instead of MediaDevices in Chrome 70 and 71.

@MurzNN
Copy link

MurzNN commented Feb 11, 2019

Together with screensharing, maybe we also can got Remote control feature to Riot, available in Jitsi Meet, too? jitsi/jitsi-meet#1437

@BloodyIron
Copy link

Remote control as in during a conference? That could be super handy!

@akontsevich
Copy link

Yes, screensharing works in Chromium 70+. Whole screen sharing does not work in Firefox - only separate window (Jitsi has same problem). Why?

For Riot waiting for next Electron version with Chromium 70+?

@emrahcom
Copy link

For those who agree to open jitsi inside an external browser when the client is Element-Desktop, there is an easy workaround. Put the following codes into /usr/share/jitsi-meet/body.html on Jitsi server

<script>
  const ua = navigator.userAgent;
  if (ua.includes('Element') && ua.includes('Electron')) {
    window.open(window.location, '_blank');
    window.location = `/static/close3.html?v=0`;
  }
</script>

Optionally, you may put the following codes into /usr/share/jitsi-meet/static/close3.html to help participants understand what's going on.

<html>
<head>
  <style>
    body {
      background-color: #414141;
      color: #ffffff;
    }

    #info {
      font-family: Arial, Helvetica, sans-serif;
      font-size: large;
      margin-top: 20px;
    }
  </style>
</head>
<body>
    <center id="info">
      <p>The meeting has been started in the browser.</p>
      <p>Please check it.</p>
    </center>
</body>
</html>

@t3chguy t3chguy transferred this issue from element-hq/element-web Apr 18, 2023
@AlexFolland
Copy link

Lets get this issue back on topic, about JITSI widgets not supporting screensharing on Element Desktop.

Since this issue ticket is not for Element Desktop's Element Call integration which is what I'm currently interested in since the devs have said they won't be working on adding screen-sharing support to the embedded Jitsi in video rooms, is there an issue to track for Element Call integration in video rooms in Element Desktop?

I've tried reading the documentation here and adding the following to my config.json file, but it didn't work:

"element_call": {
	"use_exclusively": true
}

If I'm posting in the wrong issue ticket, please direct me to the right one. I would like to participate in actively testing Element Call video rooms within Element Desktop with screen-sharing.

@johnjaylward
Copy link

@conspiracynomad I suggest posting your full repro steps, including screenshots.

I'm having the same issue. Steps to reproduce:

  1. Using current version of Element Desktop on windows 10
  2. Join the new Video Room Beta image
  3. Add a "New Video Room Beta" image
  4. Create the room image
  5. Join the room image
  6. No option to share desktop/applications image

When performing the same steps in Element-Web using Firefox, I was able to share my desktop. image

@AlexFolland the new video rooms do use Jitsi by default. You need to enable an extra labs flag to use EC based video rooms.

I don't see any other options under the "Labs" menu related to video rooms/calls

@t3chguy
Copy link
Member Author

t3chguy commented Aug 9, 2023

@johnjaylward yup that's Jitsi which is what this issue is about.

image

To enable EC-backed Video Rooms you need to have full labs enabled, such as on Element Nightly.

@AlexFolland
Copy link

Thanks for posting that, as it gave me hope that I could get screen-sharing in Element Desktop. However, my experience did not lead to screen-sharing in Element Desktop.

  1. I enabled that "Element Call video rooms" setting, which caused Element Desktop Nightly to reload immediately.
  2. Then I went to the video room I have in my space.
  3. There was no option to screen-share, and the GUI still looked like the familiar Jitsi video call GUI.
  4. I looked at all the settings of the video room and could not find any option to use Element Call instead.

Is there something else I have to do to make the video room an Element Call video room, or force all video rooms to act like Element Call video rooms?

If:

  • this issue ticket is about Jitsi, but
  • the solution is to use Element Call, but
  • Element Call video rooms don't have screen-sharing even with the "Element Call video rooms" option enabled, then

can we make an issue that is about screen-sharing not being available in Element Desktop that won't be merged incorrectly as a duplicate of this issue? If so, can someone please make it and link it here?

@t3chguy
Copy link
Member Author

t3chguy commented Aug 9, 2023

Then I went to the video room I have in my space.

You have to create a new room, a Jitsi room doesn't magically become an Element Call one. Also keep in mind all participants will need that labs flag toggled for it to function as expected.

I looked at all the settings of the video room and could not find any option to use Element Call instead.

You cannot change a room of one type to another, a new room must be made.

Element Call video rooms don't have screen-sharing even with the "Element Call video rooms" option enabled, then

You still haven't used an Element Call video room.

@AlexFolland
Copy link

I am not claiming that programming is magic. I am a programmer myself. I understand that there's no technical reason a video room could not negotiate and use whichever video call protocol is supported by the connected clients. However, if that's not how it's implemented, now I know. The particular implementation is not clarified in the GUI, and there was nothing before your comment just now that I could find on this topic in the client or on the rest of the internet that said a new video room has to be made. Thank you for saying so, but please realize that this is not very well-documented, and that has been the purpose of comments in these issue tickets.

That being said, I have created a new video room and it does indeed have screen-sharing, which works! I've encountered a few bugs already, but this is a great step forward. Thanks a lot to the developers for the implementation.

What is the expected behavior when someone running a client that does not support Element Call video rooms tries to connect to this video room?

@t3chguy
Copy link
Member Author

t3chguy commented Aug 9, 2023

I understand that there's no technical reason a video room could not negotiate and use whichever video call protocol is supported by the connected clients.

Its a reason of spec, the spec says both video room types are dictated by the immutable Matrix room type, thus it has to be chosen at the time of creation.

What is the expected behavior when someone running a client that does not support Element Call video rooms tries to connect to this video room?

I believe for them it'll present as a normal room with a widget, rather than a video room.

@Perfectio07
Copy link

Any updates on this? Until Element Call is made available for the non-nightly version of Element Desktop screensharing is essentially not possible for any of the people I use Element with.

Is there any ETA on when Element Call will be made available?

@G2G2G2G
Copy link

G2G2G2G commented Feb 27, 2024

You can popout jitsi from element into the browser and it'll work
They probably aren't going to fix this, just gotta wait for element call.

@xxfogs
Copy link

xxfogs commented Jun 13, 2024

Doesn't work when using a self-hosted Jitsi instance either. Pop-out is a workaround though.

@Perfectio07
Copy link

Perfectio07 commented Jun 25, 2024

Currently, there is no way to share your screen on Element Desktop beyond a 1on1 call.

Is there any plans/conversations to fix this? If not, is there some kind of soft date when we can expect Element Call at least as a Labs option?

One of the biggest gripes my group has with Element is that we are unable to share screen at all in a call, which we do often(so they turn to Discord instead). Popping out Jitsi to the web is not a solution, its a tedious workaround, and telling everyone to install Element Nightly is impossible.

It really is disheartening trying to get people on board and switch, then they can't even share their screen...

@t3chguy
Copy link
Member Author

t3chguy commented Jun 25, 2024

If not, is there some kind of soft date when we can expect Element Call at least as a Labs option?

It is already available in Labs, it has been for probably over a year. Just needs to be enabled in config like it is on Element Nightly for example.

@johnjaylward
Copy link

Realistically, if it's not a UI option, it's not available in Labs to the average user. Having non technical users do anything outside of the UI is a very poor experience and likely a no-go

@Perfectio07
Copy link

Perfectio07 commented Jun 25, 2024

So every user has to go and edit a config? At that point popping out Jitsi is easier. I am talking about something even a common user can do, just settings enable and done.

That being said, I am willing to give that a try. Could you please tell me how to do so? I don't know where I can find documentation on this

Edit: I think I found how to enable it, but won't be able to confirm until later. Honestly I just want to know when a proper solution will be put in place. I hope the dev could answer if Jitsi will be fixed or if Element Call will get a release date (even for Labs through the UI)

Edit2: I have no clue how to enable this in the config

@AlexFolland
Copy link

AlexFolland commented Jun 26, 2024

It's here in the Element Nightly GUI.

image

That being said, I agree that getting everyone to get Element Nightly to enable this just to make your one server's video room work is a tall order. With how many years this issue ticket has been open with supposedly active development on this project, I expected seamless one-click-join voice rooms with screen sharing like Discord at this point.

@Destinyg133
Copy link

Destinyg133 commented Aug 25, 2024

Only Element-Nightly see's new Element Call Video Room, Element-Desktop see it as jitsi video room altho both have video rooms beta opt in at the Labs
Element-Desktop creates jitsi instance with beta:
image

Element-Desktop-Nightly creates normal element call video room:
image

But if entered with element-desktop it will treat it as normal room without jitsi:

image

@ahmet-cetinkaya
Copy link

Same

@AlexMaxim
Copy link

I use Element-Nightly + self hosted matrix server. I've tried using Element Call Video Room, but Camera and Sharing doesn't work, without any exceptions:
image
May be I missed some preferences?

@pitagoras530
Copy link

I use Element-Nightly + self hosted matrix server. I've tried using Element Call Video Room, but Camera and Sharing doesn't work, without any exceptions: image May be I missed some preferences?

same issue with element call too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests