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.
... so yes, i've seen it before...
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
The speed of light is not your friend.
You can already do that if you are close enough to the end point. A few hundred miles is pretty much the limit before the delay between input and even occurring is too painful for gaming.
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.
Yes, that will work. By default I have the xorg.conf listening only on localhost but you could easily change it. X11 forwarding over SSH also works.
-Riskable
"Those who choose proprietary software will pay for their decision!"
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!"
"Ever seen a remote desktop tool that's fast/efficient enough to play back video?"
Yes...
Microsoft's own Remote Desktop (with RemoteFx) and also third party program called Splashtop can both play back video smoothly remotely for me.
You're completely missing the point: Video playback over a remote desktop connection is merely an acid test. If it can play back a video that means the rate at which it can capture screenshots and send them to you is reasonably high. It's also an indication of how efficient it is.
Gate One's X11 feature isn't made for video it is merely efficient/fast enough to handle it. If I can open VLC and play back a video in my browser surely I can get reasonable responsiveness from something like a spreadsheet or IDE.
-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.
Great: So now the computer manufacturers are going to point the finger to ME and say, "You're the reason why millenials aren't buying computers anymore!"
I really like the idea of using a fresnel lens over a smartphone to turn it into a larger desktop! I'm going to try that (I happen to have a big collection of fresnel lenses--don't ask =).
-Riskable
"Those who choose proprietary software will pay for their decision!"
You know, if Wayland has Python bindings and an API akin to XCB (or Xlib) I can make it work with that too. Wouldn't even take much effort!
-Riskable
"Those who choose proprietary software will pay for their decision!"
Err, yes. RDP.
Its so effecient i often wonder why my wooden medieval laptop running Linux is able to play the video, thats when i realize its streamed via RDP from my Windows PC. Sound and everything.
Hivemind harvest in progress..
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?
Yes, this is called multimedia redirection and it seems to work with any DirectShow-using application (so you'd expect VLC to blow up).
AIUI the idea is that you just stream the compressed video, plus some metadata for "it goes here, it's this big, and it's at this point". It seems to work pretty well, because obviously the compressed video is much smaller than 30 images a second that need to be individually compressed.
I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.