Live data from Hacker News

Streaming lossless VNC to a web browser with Quite OK image format

kasmweb.com

1–10 of 36 posts

Re: Streaming lossless VNC to a web browser with Quite OK image format

#2
This has been a dream of mine ever since I first saw QOI. The encoding and decoding times and relatively high compression were perfect for this use case it was just a matter of implementation. Because the VNC protocol with tight encoding breaks frame changes into 100s of tiny images it allows us to encode and decode in a threaded manner. This means high FPS and low latency on a truly lossless remote Linux desktop in your web browser. The easiest way to try this out is an all in one docker container https://github.com/linuxserver/docker-kasm . To try it ephemerally on a Docker host simply run:

docker run --rm -it --privileged -p 3000:3000 -p 443:443 linuxserver/kasm bash

I had spent a long time trying to simplify Linux Desktop application delivery with linuxserver/webtop and all the derivative dedicated app images, but the speed and quality was always lacking as it was using XRDP in tandem with Guacamole. The difference with this new KasmVNC https://github.com/kasmtech/KasmVNC implementation is night and day. Depending on client hardware it will deliver 60fps 1080p and 40-60fps 1440p for both the JPEG and QOI rendering modes. A quick video can be seen here https://youtu.be/VkzG5BU2gjo .

Re: Streaming lossless VNC to a web browser with Quite OK image format

#4
post #2

This has been a dream of mine ever since I first saw QOI. The encoding and decoding times and relatively high compression were perfect for this use case it was just a matter of implementation. Because the VNC protocol with tight encoding breaks frame changes into 100s of tiny images it allows us to encode and decode in a threaded manner. This means high FPS and low latency on a truly lossless remote Linux desktop in…

Probably a naïve question, but why does it need to be run as privileged?

Re: Streaming lossless VNC to a web browser with Quite OK image format

#5
Lossless encoding can and will consume all available bandwidth available to a client and is designed to be run on local networks.

VNC is unfortunately inherently inefficient because it is just a framebuffer protocol, instead of RDP which passes through the graphics primitives to be rendered. The former will always involve encoding/decoding overhead at the server and client.

Re: Streaming lossless VNC to a web browser with Quite OK image format

#7

Lossless encoding can and will consume all available bandwidth available to a client and is designed to be run on local networks. VNC is unfortunately inherently inefficient because it is just a framebuffer protocol, instead of RDP which passes through the graphics primitives to be rendered. The former will always involve encoding/decoding overhead at the server and client.

This depends on what your use case is. I think this might be related to gaming uses (e. g. your gaming PC is in another room and you wanna play a game and stream it to your TV or something), although it doesn't seem to be their main priority.

Re: Streaming lossless VNC to a web browser with Quite OK image format

#9
post #3

I just got this up and running and the performance is amazing. I've never felt a VNC session feel so fast. Very impressed. Kudos to you for this! Edit: I wish I could install this on my mac so I could VNC into it efficiently as well!

Screen sharing on the Mac has always been very impressive in performance to me, especially considering the graphics involved.
Post reply on HN