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
Would it be possible to play (non competitive/timing intensive) games over this!?
This is just like shell in a box.... just with some HTM5 snazz....
Not impressed.
Will X11 support include the support for remotely initiated sessions/windows? All I want is to be able to control my HP 16500B oscilloscope from my computer....
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.
Why not buffer the video?
I have done it over forms of VNC, vmware view and Xendesktop.
Once everything is in the browser I won't even need a computer any more.
I can get by with just a smartphone and one of those big fresnel lenses, imagine Stanley's workstation in the movie Brazil.
... 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.
If they manage to pull that off they should name it something like "OnLive". Name just seems catchy and fitting to me.
Better known as 318230.
Windows Media Center had extenders (provided by HP and others, in addition to the XBox 360) that was nothing more than a remote desktop session into a Windows Media Center PC. They streamed video as far back as 2006 and hi-def after that. Of course, this is all within a home network.. But video is supported.
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.
Video over X11? But... but.... I've been told you needed Wayland for that! Because X11 is slow and broken en horrible. And only Wayland will save us!
Note: this is (a poor attempt at) sarcasm. I'm a happy X11 user since, well, almost forever and have yet to experience the severe shortcomings people attribute to it.
Almost full frame rate at 1080p! But I hate how the image is overlayed, when the window moves, the image lags and breaks for a moment.
Gate One is an HTML5 web-based terminal emulator and SSH client.
Anons need not reply. Questions end with a question mark.
Information wants to free, so you should just release it for free and RMS will be happy for you which is worth more than any amount of money.
Video is incredibly compressed. Video decode hardware is essentially free in modern hardware. So, ANY modern 'remote' protocol should be passing across the COMPRESSED video stream, so the client can decompress and display it.
Articles like this show that too many fundamentally stupid people work in IT. The know NOTHING about the fundamentals, but know EVERYTHING about farcical abstracted environments so far removed from the hardware, the hardware literally needs to be thousands of times more powerful than it would otherwise need to be to process the same task using correct, efficient methods.
What excuse does anyone have for not exploiting a 2013 level of computer capability? What excuse does anyone have for NOT exploiting video decode hardware found in even the cheapest 5 dollar ARM SoC part to handle video display? Anyone proposing software-hacking video in new projects in 2013 is not competent to be working in software engineering full stop. They are the equivalent of visiting the doctor, and finding that he/she wants to give you leeches, or drain a pint or so of 'bad blood' from your body.
And yet, many of the self-declared 'nerds' that frequent sites like this have technical knowledge that was out-of-date more than ten years ago, and worse, many of these same 'nerds' are currently MOUTHY managers whose erroneous knowledge influences fundamental decision making in their companies.
I have NOTHING against those people proud enough to have such valve-making skills, that they can whip up a glass and metal rectifier in their own workshop from scratch. However, the suggestion that prehistoric outlooks on technology serve our current IT needs are a cancer.
PS I am fully aware that "wireless" display technology with a wireless back-path for client inputs is a 2013 technology coming with both new consoles from Sony and MS, and is a very valid solution to a specific problem. But this solution takes the HONEST approach of finding an efficient, low latency CODEC to encode the entire server display output, and stream the output as continuous video to the client device in industry standard H264 form. Such a solution is universally 'good', but not excellent when the resolution on the server side increases a lot, and fine localised detail becomes increasingly important. But, for remote purposes, you EITHER take a dumb approach, or an OBJECT approach. If you take an object approach in 2013, you MUST be passing on an object as complex as a video stream to the client device for decoding.
So presumably it is streaming the actual video file to a local media player on the client machine?
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.
Browsers often have imperial fucktonnes of exploits. Is it really wise to run a remote desktop tool in that sort of environment?
I'd love to use this setup to rig my Chromecast to play my in-browser RDC VLC video on my TV!
Ever seen a remote desktop tool that's fast/efficient enough to play back video?
Yes? And? Watching video isn't the end-all use case.
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..
The demo uses mplayer.
But whatever, details, who cares, right ? :-)
New things are always on the horizon
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?
"Ever seen a remote desktop tool that's fast/efficient enough to play back video?"
Yeah, NX. Been using it for awhile.
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.
As an open-source project, what do we need to do to get the same amount of publicity as those for-profit companies? Do I need to pay slashdot or something?
All this talk about remote desktop, and xpra is not mentioned once, despite having better performance than all the solutions mentioned thanks to hardware acceleration. It is also seamless, which a browser window is not. etc.. sigh.
TODO: 753) write sig.
Pretty much the same as playing one locally - because the raw h.264 (or whatever) data stream gets sent over RDP and it uses your local hardware to play the video the same way it does locally.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
The answer is don't bounce it off two satellites and route it via Helsinki.
Remote X, rdp or even elderly versions of VNC don't have problems with latency within the same city if that's the constraint. Lack of bandwidth forcing latency problems is a different story and is not really a latency problem - the solution there is to cut down on traffic until it fits.
Since people are playing MMORGS on the other side of the Pacific to the servers they are using I really think you are overstating the latency thing far beyond the reach of credibility. So then, what's the real issue? What exactly is it you don't like that you are hiding behind such an empty claim?
Spice has already been mentioned, but X2Go is pretty awesome... it's a cousin of NoMachines NX except it's open source, and very easy to set up (at least in the Debian-packed versions I've used). It can also proxy RDP (which might be of benefit to someone).
How is 80% CPU usage "not bad"?
It's like JavaScript fan-boys are happy that a 1995 Doom game is rendered with 30 FPS in the browser.
http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
Both Remote Desktop and Vnc can play videos fine, rdp even with sound. It all depends on your network. So yes already we have a non starter. Not to mention the fact that for streaming video we would use a streaming video protocol not a Remote Desktop protocol.
Oh that's unaccelerated, man! For whatever reason my laptop's Intel video doesn't get 2d accelerated canvas (probably a driver bug). On my wife'x iMac the CPU utilization hovers around 10% playing the same video.
Just wait until I get it working with a 3d WebGL context. Then it will be using hardly any CPU at all!
-Riskable
"Those who choose proprietary software will pay for their decision!"