WebRTC desktop sharing #2943

Open
antobinary opened this Issue Jan 8, 2016 · 27 comments

Projects

None yet
@antobinary
Member

Implement a desktop sharing capability using WebRTC. Some of the benefits are:
-fast high quality desktop sharing
-no need of Java plug-ins
-compatible with the HTML5 client

@antobinary antobinary was assigned by ffdixon Jan 21, 2016
@nadavkav

My +1 to making it happen. current state of desktop sharing with java (and only on firefox, as chrome does not support java anymore) is unusable. very slow and pixeled view.

@mkpelletier

+1 from me too! The Java implementation has become less useful since Chrome stopped supporting NPAPI.

On 21 Jan 2016, at 14:06, Nadav Kavalerchik notifications@github.com wrote:

My +1 to making it happen. current state of desktop sharing with java (and only on firefox, as chrome does not support java anymore) is unusable. very slow and pixeled view.


Reply to this email directly or view it on GitHub #2943 (comment).

@ffdixon
Member
ffdixon commented Jan 21, 2016

We're actively working on this now. We want it too :-).

@udayakiran

Hi,

Nice to see that active work is happening on this. Just a few points from myside.

  1. Safari and IE still dont support webRTC. So, if the presenter is on one of these, he may need to install a webRTC plugin like this one - https://temasys.atlassian.net/wiki/display/TWPP/WebRTC+Plugins and the code needs to support these adapters to capture the desktop.

  2. Not sure if this is the right place to suggest, but what about a JNLP app ?
    I can see this here - https://github.com/BigMarker/deskshare-public
    building a JNLP app seems to be the goto way for applets on chrome after the drop of NPAPI plugins.
    Thoughts on this ?

  3. If this idea is to move away from java, building a one click based installer based on webRTC / something like seems to be the only cross browser & cross device way ?

Thanks!

@yoldar
yoldar commented Jan 24, 2016

+1 This is a "hot" Enhancement

@mkpelletier

I don't think too much effort should be expended on IE. IE is dead. The
new Edge browser does support some aspects of webrtc, and support will
continue to improve. Safari is the last hold out for this and its users
have been crying for it. The npapi desktop sharing can always serve as a
fallback for the browsers that do not yet support webrtc.

Sent from my phone
pardon brevity and typos
On 22 Jan 2016 8:52 pm, "Uday Kiran" notifications@github.com wrote:

Hi,

Nice to see that active work is happening on this. Just a couple pointers
from myside.

  1. Safari and IE are still not supporting webRTC. So, if the presenter is
    on one of these, he may need to install a webRTC plugin like this one -
    https://temasys.atlassian.net/wiki/display/TWPP/WebRTC+Plugins and the
    code needs to support these adapters to capture the desktop.

  2. Not sure if this is the right place to suggest, but what about a JNLP
    app ?
    I can see this here - https://github.com/BigMarker/deskshare-public
    building a JNLP app seems to be the goto way for applets on chrome after
    the drop for NPAPI plugins.
    Thoughts on this ?

  3. Building a one click based installer based on webRTC / something like
    seem to be the only cross browser & cross device way ?

Thanks!


Reply to this email directly or view it on GitHub
#2943 (comment)
.

@ffdixon
Member
ffdixon commented Jan 24, 2016

We plan to keep the current Java-based desktop sharing for supporting Safari and IE.

This is the same approach we did with WebRTC audio: if you use FireFox or Chrome, WebRTC audio is the default. If it doesn't work -- or your are on Safari or IE -- BigBlueButton falls back to Flash-based audio.

For desktop sharing, the plan is if you use FireFox or Chrome, WebRTC desktop sharing will be the default. If it doesn't work -- or your are on Safari or IE -- BigBlueButton will fall back to Java-based desktop sharing.

@mkpelletier

Fred, you guys are awesome! We are looking forward to it.

Sent from my phone
pardon brevity and typos
On 24 Jan 2016 7:42 am, "Fred Dixon" notifications@github.com wrote:

We plan to keep the current Java-based desktop sharing for supporting
Safari and IE.

This is the same approach we did with WebRTC audio: if you use FireFox or
Chrome, WebRTC audio is the default. If it doesn't work -- or your are on
Safari or IE -- BigBlueButton falls back to Flash-based audio.

For desktop sharing, the plan is if you use FireFox or Chrome, WebRTC
desktop sharing will be the default. If it doesn't work -- or your are on
Safari or IE -- BigBlueButton will fall back to Java-based desktop sharing.


Reply to this email directly or view it on GitHub
#2943 (comment)
.

@udayakiran

Hi,

Gotcha! fallback option works.

(Just to mention that JNLP app instead NPAPI gives a little better UX as users dont need to figure out how to enable java on their browsers. But it's a minor thing.)

Thanks.

@tsalafi
tsalafi commented Mar 2, 2016

I want to convert BBB deskshare applet into a java web start application, so that the application will become browser-independent. So, when the user wants to share his/her desktop, then I want the applet to run from the user's desktop instead of running it directly from the browser. This way, our applet will be browser-independent.

My question is, do we already have its implementation? If so, then how can I implement it in my application.

@ffdixon
Member
ffdixon commented Mar 2, 2016

Just to let everyone know, we are actively working on converting the desktop sharing applet into a Java Web Start application (launched via JNLP).

We'll update this issue as we progress.

@tsalafi
tsalafi commented Mar 2, 2016

Ohk thank you so much.... I don't have words to thank you :)
awesome team :)

@udayakiran

Fred, Thanks. Great decision keeping cross browser & device support in mind. Looking forward for it.

Just as one of my previous comments points - https://github.com/BigMarker/deskshare-public
could be of some help.

@ffdixon
Member
ffdixon commented Mar 2, 2016

We saw the BigMarker release last year. Unfortunately, they released it under the APL license, so we were unable to use any of the work. We've since been working on our own version that we can release under the LGPL license.

@udayakiran

Fred, okay :) Thanks!

@nadavkav
nadavkav commented Mar 3, 2016

Hope you are seriously considering other solution than java for desktop sharing, as it is unusable on several levels (very low performance, modern browsers do not like java, java security, UX and usability), especially, comparing to desktop sharing solutions from other web conferencing alternative tools.

Supporting Safari or IE is not something worth consideration, for us. as we have both under 15% usage and steadily declining.

@ffdixon
Member
ffdixon commented Mar 3, 2016

We do believe it's worth supporting IE and Safari. It makes the BigBlueButton project much more attractive if we can say you can support desktop sharing on all major browsers.

We are looking at using WebRTC for desktop sharing as well. See

#2943

So, the best result would be to use WebRTC for desktop sharing (if you are on FireFox or Chrome), and, if not, fall back to using Java Web Start. That way we give the user the best possible experience depending on which browser they are using.

@nadavkav
nadavkav commented Mar 3, 2016

This is #2943 , what do you mean?

@nadavkav
nadavkav commented Mar 3, 2016

Do you have a working solution for desktop sharing in Chrome & Firefox that uses WebRTC?

@ffdixon
Member
ffdixon commented Mar 3, 2016

Watch #2943 for future updates to gauge how close we are to having WebRTC-based desktop sharing.

@nadavkav
nadavkav commented Mar 3, 2016

Ok. I was too much confused reading email updates to this issue with the word "Java" in the last few comments, that it seems to me that you are not considering WebRTC as a solution. me bad.
Just saw one of your earlier comments:
"For desktop sharing, the plan is if you use FireFox or Chrome, WebRTC desktop sharing will be the default. If it doesn't work -- or your are on Safari or IE -- BigBlueButton will fall back to Java-based desktop sharing."
And I totally agree that this is the way to move forward.

@nadavkav
nadavkav commented Mar 3, 2016

Very much appreciate all your work on this product!

@gilou
gilou commented Jun 22, 2016

jnlp is still a good alternative, especially given the current support of screen sharing in WebRTC, that doesn't allow proper region (haven't seen that in any browser, out of the box) / full screen (works in Chrome, even though you might not be able to share ONE screen if you have more than one) sharing. However, the packaging/signing of the jnlp might be an issue by itself. Definitely looking forward to all this.

@perroned perroned was assigned by antobinary Jul 8, 2016
@philjoseph

Hello BBB team. Do you know what is the status on this enhancement? Is development ongoing or is it just at the level of prioritisation?

@ffdixon
Member
ffdixon commented Jul 17, 2016

Hi Phil,

The development is ongoing. For the upcoming BigBlueButton 1.1 release, we'll me moving from a Java Applet to a Java Application launched via a Java Network Launch Protocol File (JNLP). This way, we can run the Java-based screen sharing outside the browser (and bring Chrome back into the fold).

We're working on the WebRTC-based desktop sharing in parallel and it will land in a future version.

For more information see

https://groups.google.com/d/msg/bigbluebutton-dev/2OLdUbi2K_w/1pzOZoppAwAJ

@nguyenthinu0212

share your screen is undefined. Help me

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