On Sat, Mar 10, 2018 at 9:44 AM, Antony Awaida <ant...@apporto.com> wrote:
> Hi Mike:
> Is there a way to tell Guac if this is a video stream - just pass it
> through to the client without going through the codec process?
Not exactly, but that wouldn't be a workable solution in the general case.
Even if it were possible to hook into the video stream within the browser
within the remote desktop, that video stream is in some arbitrary codec
supported by that browser, initially negotiated between the site streaming
the content and the browser itself. There is no guarantee that the codec
agreed upon by that browser will be supported by the browser of the user on
the Guacamole connection, let alone all users sharing that connection via
Guacamole's screen sharing capabilities.
More efficient handling of video streams is still possible long term
through either or both of the following:
1) Adding hardware encoding support. While PNG may not lend itself well to
this, JPEG and WebP both have hardware encoders via GPU, and the
compression used by PNG (deflate) does have hardware implementations (via
dedicated cards). Offloading encoding of graphics to hardware would remove
the majority of processing requirements for things like watching YouTube.
Simply adding hardware encoding support for JPEG and WebP would be
low-hanging fruit here, given the ready availability of those encoders and
the fact that Guacamole will already automatically switch over to JPEG/WebP
when it heuristically detects video.
2) Implementing a Windows driver that implements the Guacamole protocol,
similar to the work-in-progress Guacamole driver for the X.Org X11 server.
Regardless of whether hardware encoding is added, this would offload the
actual encoding of graphics to the remote desktop. This would not be an
easy task, but would probably be a good option to have.