Gate One Will Support X11: Fast Enough To Run VLC In Your Browser
Riskable writes "Ever seen a remote desktop tool that's fast/efficient enough to play back video? Gate One will soon have that capability via the forthcoming X11 support (as demonstrated in the video). I am posting this to Slashdot looking for suggestions and feedback as to how I should move forward with it before I solidify the architecture, API, and even the business end of it (making money). I'll be watching the thread and replying to comments (as I have time). Also, if you're interested you can sign up to be notified when it's available."
We've posted a few stories about Gate One previously.
...and even the business end of it (making money).
Well, you just release the source and documentation; then hire yourself out as a consultant and the money will just come in! You can also write O'Reilly books on your software. We all know that O'Reilly authors are all 1%'ers with their private jets and everything.
Give a man a programming environment of sufficient power and he will port everything.
Look, the protocol could be the greatest thing since sliced bread. It could have free orgasms built into it. It might even have the cure for cancer.
But it can't overcome latency, or shannon's law regarding just how much data you can shove over a given network link. You can cheat by using lossful compression, you can employ predictive algorithms, but at the end of the day it'll only be as good as the network lets it. That's why there haven't been any big advancements in this area: There's none to make. Remote desktop will be varying degrees of shitty for the forseeable future, because our network links are shit. ISPs purposefully sabotage remote desktop and VPN because it's a threat to their business model. You can't "protocol" that away. Believe me, people have tried.
At best, we'll be able to trade one variety of crap for another, but remote desktop will never come close to the experience of actually using the computer at the same location. Human beings start to notice lag between their own actions and computer responses in as little as 50ms. The network links typically take longer than that to send the data. Especially over wifi.
#fuckbeta #iamslashdot #dicemustdie
Yes. Splashtop Remote. I haven't used VNC in years, literally. Splashtop streams audio and video we'll enough to play games over, locally. Their account-based system nonsense is horrific, buy you can avoid it if you connect over a VPN.
Remote Desktop Connection (RDP) connected to a Windows 2012 server back-end is very capable of streaming video. It's kind of shocking how fast it is.
I've used some hosted remote desktop services over the past few years that are nearly indistinguishable from launching and using local applications - over a garden variety 10Mb/sec cable internet connection.
I used to also think that "they'll never overcome latency to the point where it's running at sufficient speed to feel like it's a local app" but at this point feel like that is a wrong assumption.
Gate One is an HTML5 web-based terminal emulator and SSH client.
Anons need not reply. Questions end with a question mark.
Vaporware doesn't generally have a repository on Github.
I am becoming gerund, destroyer of verbs.
What is the CPU load while watching a video over RDP? I'm genuinely curious.
For reference, the gateone.py process(es) hover around 5% utilization when playing back a video @30fps (~720p resolution). Here's what it's doing while a video is playing back:
1) Capture the screenshot of the changed region on the X11 display. It can do this every 33ms (a capped equivalent to 30fps). It only needs to take screenshots when there's a change but in the case of a video it happens very fast, hence the 33ms cap.
2) Convert the raw captured image to selected format (JPEG for this example). It also makes a hash of the image that's used by both the server and client JS for caching purposes.
3) Transmit the image to the browser. If the image has recently been sent to the client it will be aware of this and will only send the hash. This transmission occurs in binary mode over the WebSocket (it's complicated).
From that point it's up to the client-side JavaScript to handle displaying the raw JPEG data. It is quite CPU-intensive if your hardware doesn't accelerate 2d canvas elements but not too bad (Chrome will hog around 50-80% of a single core while the video plays). Everything will remain responsive regardless.
For reference, I've done extensive benchmarking of the browser-side CPU utilization and Chrome's developer tools will report 81% idle even when the actual CPU consumption of the process is nearing 80%. That means that all the overhead is inside the code that renders canvas elements; which is good because it means my JavaScript is not a bottleneck.
-Riskable
"Those who choose proprietary software will pay for their decision!"
Try tigerVNC and get back to me.
You can run 3d HD games over it.
If you recognize that you are in fact streaming video, you can buffer that video ahead and keep the rest of the display nice and interactive. There's no reason you can't divide the display you are remote serving into several sections and give them each their own update/caching/buffering strategies.
I was promised a flying car. Where is my flying car?