Re: Remote desktop sharing using webRTC

6,131 views
Skip to first unread message

Dennis

unread,
Apr 16, 2013, 7:58:52 AM4/16/13
to discuss...@googlegroups.com
new experimental extension in chrome does this, needs to be enabled via flags


IMO it's too new, and not really optimized yet.  captures entire desktop.  I have two 2560x1920 monitors so it's trying to encode like super-duper-riduculous hi-def lol uses 100% cpu. No way to select individual screen, region, or application window yet.  I'm waiting for these features myself :)  It'll get there eventually.  Related, there's also the Tab Capture API for capturing a tab in chrome.

Also,  I'd like to see a different codec option for screencasting.  Right now VP8 is not ideal, e.g. " lossy motion" codecs.  Text isn't as clear when decoded and displayed due to the nature of those kinds of codecs.  I'd rather have a lossless video codec that only transmits the diffs with a full frame at a configurable interval that way it can be restored to full clarity on the receiving side.  I am unaware of an open source lossless codecs though that would fit in the WebRTC architecture.  I wonder what Win Remote Desktop and VNC is based on....

On Tuesday, April 16, 2013 2:44:41 AM UTC-4, Nikhil Agrawal wrote:
Hi,

I wanted to implement remote desktop sharing and was figuring out whether it can be done using webRTC. 

I know in webRTC there is functionality for screen sharing using chrome canary but wanted to know whether controlling a remote desktop would be possible.

Also if not right now. is it in the webRTC roadmap to include such feature.?

Thanks,
Nikhil.

Magnus Thor

unread,
Apr 18, 2013, 1:06:09 PM4/18/13
to discuss...@googlegroups.com
Hi,

Have a look at https:/screensharing.azurewebsites.net , its a simple ScreenSharing example using WebRTC.

Magnus

Nikhil Agrawal

unread,
Apr 19, 2013, 6:19:43 AM4/19/13
to discuss...@googlegroups.com

Hi,

I was able to acheive the screen sharing using webRTC. I wanted to know whether video streaming + screen sharing is possible simultaneously using a single webrtc peer connection?

Also I see that using screen sharing my CPU usage goes to 98-99%. Is it a bug in webrtc..?

Vikas

unread,
Apr 19, 2013, 3:39:26 PM4/19/13
to discuss-webrtc
Hi Nikhil,

I have not tried this, but i think it should be possible to send
multiple streams with a single peer connection. Regarding CPU usage,
can you share more details as to what OS/Hardware you tested on?

/Vikas

Alexandre GOUAILLARD

unread,
Apr 19, 2013, 10:06:25 PM4/19/13
to discuss...@googlegroups.com
hi nikhil, vikas, 

I confirm you can send multiple streams through one PC. We are sending two streams (one bundle video+audio, one video only a.k.a. screensharing) through the same PC.

Regarding screensharing, the resolution by default is much (much) bigger, which explains the change in CPU consumption. We haven't look at that yet, but you could decide to change the resolution, or wait for issue 1557. AFAIK there is no way to modify encoder params from JS (but if there is, I'm eager to know :P ).



--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



Nikhil Agrawal

unread,
Apr 20, 2013, 9:54:34 AM4/20/13
to discuss...@googlegroups.com
Thanks for your replies!!!

I am able to have multiple streams using single peer connection but when I add a stream to peer connection then I need to exchange the SDP's of peers.

Is it possible that I can add a stream to peer connection without exchanging sdp's among the peers?

Shachar

unread,
Apr 21, 2013, 3:03:50 AM4/21/13
to discuss...@googlegroups.com
Magnus, I can't seem to get the screensharing.azurewebsites.net demo to work. I've added the flag on about://flags and --enable-usermedia-screen-capturing
but it keeps logging: "getUserMediaError NavigatorUserMediaError {code: 1, PERMISSION_DENIED: 1} "
what am I doing wrong?

Thanks,
Shachar

Vikas

unread,
Apr 22, 2013, 2:30:09 PM4/22/13
to discuss-webrtc
@Nikhil, That's great that you can run multiple streams using single
peerconnection. AFAIK, anytime you add or remove a stream you have to
renegotiate.
@Shachar, The screen sharing demo seems to work for me, did you run
over https?

/Vikas

Shachar

unread,
Apr 23, 2013, 3:52:25 AM4/23/13
to discuss...@googlegroups.com
Thanks Vikas, that sovled the issue, the link for screen sharing is https://screensharing.azurewebsites.net/
Also, I have to say this demo is counter intuitive, took me a while to understand that the "callee" need to press the button even when he got the dynamic ip.
Works nicely on chrome 26+ on windows.
On chrome M28 on MAC the screen capture is not good.

Tim L

unread,
Nov 17, 2014, 9:26:06 AM11/17/14
to discuss...@googlegroups.com
Anyone have Remote desktop sharing using webRTC example that works with Chrome version 38+?

sasikalyan kumar

unread,
Nov 17, 2014, 11:03:02 PM11/17/14
to discuss...@googlegroups.com
Hai Nikhil,

            Is your doubt clarified? 
I too need some clarification regarding Remote Desktop Sharing using webRTC is possible or not...but here i can't see any answers to your question.
If you know anything regarding Remote Desktop Sharing with webRTC please reply to me...

Thanks,
Sasi. 

Leighton Carr

unread,
Nov 19, 2014, 7:13:07 PM11/19/14
to discuss...@googlegroups.com
As far as I'm aware, you can't control keyboard / mouse from the browser, and never will be able to (for obvious security reasons).

If you want to remote desktop control using webrtc, you would need some kind of native client to accept data over the peer connection and convert it into mouse / keyboard commands.  This should actually be pretty straightforward.

From there you could use a separate peer connection to a web page for screen grabbing, or try and activate desktop sharing in the native code base.

Cheers,
Leighton.

Tim L

unread,
Nov 19, 2014, 7:31:32 PM11/19/14
to discuss...@googlegroups.com
[Rant]
Whenever someone says "for obvious security reasons" i think they have not thought it through.
There are plenty of scripts and applications that ask for privilege escalation for specific tasks;
notably WebRTC audio and video sharing which would otherwise also be a security risk.
There is even an app for that (sudo)
[/Rant]

Screen sharing link that seems to require a plugin:
https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/

Leighton Carr

unread,
Nov 19, 2014, 8:53:40 PM11/19/14
to discuss...@googlegroups.com
> Whenever someone says "for obvious security reasons" i think they have not thought it through.

If you think the Chrome devs should implement a desktop wide input-control API with an escalation warning, you should raise an issue for it.  I look forward to you telling them they should think it through.

> Screen sharing link that seems to require a plugin

We know.  This thread is about remote desktop control:    "I know in webRTC there is functionality for screen sharing using chrome canary but wanted to know whether controlling a remote desktop would be possible." 

Alexandre GOUAILLARD

unread,
Nov 23, 2014, 8:25:32 PM11/23/14
to discuss...@googlegroups.com
It might be off topic, but VNC (open source and free) implementations in JS exist e.g. https://github.com/kanaka/noVNC. That might be a good place to start.

--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Alex. Gouaillard, PhD, PhD, MBA
------------------------------------------------------------------------------------
CTO - Temasys Communications, S'pore / Mountain View
President - CoSMo Software, Cambridge, MA
------------------------------------------------------------------------------------

Tim L

unread,
Nov 24, 2014, 10:06:45 AM11/24/14
to discuss...@googlegroups.com

Interesting Alexandre, no only are there VNC clients that use webRTC:
http://kanaka.github.io/noVNC/

but there are even servers with build in webRTC clients (aka client-less):
http://www.cybelesoft.com/thinfinity/remote-desktop/workstation/
http://guac-dev.org/

I wonder if there is source code for any remote desktop servers that are a plugin, like the google one:
http://www.google.com/support/forum/p/Chrome/thread?tid=52730a7194bef976&hl=en

Silvia Pfeiffer

unread,
Nov 24, 2014, 7:40:50 PM11/24/14
to discuss...@googlegroups.com
On Tue, Nov 25, 2014 at 2:06 AM, Tim L <elat...@gmail.com> wrote:
>
> Interesting Alexandre, no only are there VNC clients that use webRTC:
> http://kanaka.github.io/noVNC/

Doesn't look like noVNC is using WebRTC - they're only using Websockets.


> but there are even servers with build in webRTC clients (aka client-less):
> http://www.cybelesoft.com/thinfinity/remote-desktop/workstation/

Similarly, this is using Websockets.

> http://guac-dev.org/

This doesn't even seem to use websockets, but possibly only XHR.


> I wonder if there is source code for any remote desktop servers that are a
> plugin, like the google one:
>
> http://www.google.com/support/forum/p/Chrome/thread?tid=52730a7194bef976&hl=en

http://www.tightvnc.com/ seems to be open source, but I didn't look deeply.

Anyway - this all seems to be off topic for webrtc , since it's
server-client interaction you're after, websockets will be more to
your liking.

HTH,
Silvia.

Leighton Carr

unread,
Nov 24, 2014, 8:27:26 PM11/24/14
to discuss...@googlegroups.com
As I said earlier - the problem isn't the client it's the server (or whatever you want to call the software that actually does the desktop capture and accepts remote commands).  You can send the mouse / keyboard commands via any way you like - WebRTC Data Channel / Websocket / etc, but you need something on the other end that can actually pass those commands to the OS.  

noVNC still needs a VNC server.
Guacamole needs a server
Chrome remote desktop also installs a server (which runs as a service - 'chromoting')

All these are native apps - ie, they run on the platform not the web VM.  So the permission to control the mouse and keyboard comes with installing the app.  
Reply all
Reply to author
Forward
0 new messages