Hacker News new | ask | show | jobs
by w0utert 2334 days ago
>> You can’t compare it to Steam Link either, because that’s using H264 video compression. Guacamole does not use video compression.

This part I don't really understand. Why does a client <-> guacamole <-> VNC connection be less inefficient in terms of bandwidth compared to a direct client <-> VNC connection?

And if the general idea of sending screen data to a client be much more efficient if you use something like H264, why doesn't Guacamole implement some kind of similar compression technique?

I used NX for a while, and that does something very similar. On a slow connection you can actually see the compression artefacts when scrolling. It's not pretty, but at least it makes the machine accessible.

Anyway, when I tried guacamole, it was over Gbit LAN, if that's not even enough expose a VNC client using Guacamole, what's the point?

2 comments

> Why does a client <-> guacamole <-> VNC connection be less inefficient in terms of bandwidth compared to a direct client <-> VNC connection?

Because it’s not using the VNC protocol. It’s the Guacamole protocol. It is more restricted compared to modern VNC compression variants.

> I used NX for a while, and that does something very similar. On a slow connection you can actually see the compression artefacts when scrolling. It's not pretty, but at least it makes the machine accessible.

NoMachine NX is a different beast altogether. It’s comparable to RDP in that it deals directly with the actual (X11) objects instead of (just) their on-screen rendering. It’s basically advanced compression over X11 forwarding over SSH.

---

The point is HTML5. It works everywhere you have a somewhat reasonable browser.

Compressing the H264 requires quite a bit more processor power on the server. It's fine for steam link because the use case usually involves a powerful gaming PC on the server end, often with a dedicated GPU video encoder.
Is there a similar system to Guacamole that does involve encoding?

I was actually looking at this a few days ago because I've been very interested in implementing something like Google's Project Stream locally where I can render things in the browser, but frame rate is important for me.

If only there was a way to intercept the screen drawing commands and send those over the network instead.