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!?
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.
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.
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!"
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.
Gate One is an HTML5 web-based terminal emulator and SSH client.
Anons need not reply. Questions end with a question mark.
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!"
Would you consider the cost of encoding the video instead? That is not too free, so I hear.
"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!"
I don't know about that. When I think to myself, "What has an imperial fucktonne of exploits?" here's what comes to mind:
* Windows (and Microsoft software in general)
* Java (and especially the use of Java inside browsers)
* Flash
* PDFs
* Loads of other proprietary software/solutions
Exploiting the browser these days is very difficult and browser vendors are doing a really good job with competitions/incentives to uncover vulnerabilities before they become a problem. Using the browser has the distinct advantage of *not* having the same problems of the proprietary products I enumerated above. You get whole new ones! But at least they're manageable and (mostly) predictable.
The more apps that are available in browsers the better. They're as cross-platform as you can get right now and if you host them yourself you can avoid the spying problem.
-Riskable
"Those who choose proprietary software will pay for their decision!"
That won't work so well since this doesn't currently support audio. It's in the TODO list though :)
Also, if you're playing back a video you're much better off just playing it directly in the browser. You can even re-encode videos in real-time to be played back with whatever codecs Chromecast supports (if necessary).
-Riskable
"Those who choose proprietary software will pay for their decision!"
Because it's not a video player. It's a remote desktop/X11 tool. The video is merely an acid test demonstrating how fast/efficient it is. If it is fast enough to play back a video surely it's fast enough to use a spreadsheet or a text editor, right?
-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..
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.
If you look at all those windows exploits, the lions share of them are in the browser. Exploiting the browser these days isn't really difficult, they generally fall within the first day at pwn2own.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
Actually, I happen to know the fundamentals quite well, seeing as I was around when we were inventing most all of them from scratch. [Why yes, I was there for the birth of the ARPAnet.] What is fundamental in browsing technology today is that the normal defaults that I encounter are to use hardware decode, and HTML 5 is specified in such a way to actually make it happen, in an objective (Object) sort of way. However, you have a flip-side here where you also must absolutely use a server-side codec that can support streaming hardware encode at a sufficient frame-rate and resolution. Exactly how many people really, really have that kind of hardware laying around? For more than one stream? No problem here. Which is why I specifically beefed up my server on the graphical end for when such a solution happened within financial striking range of real people, not gamers and technological crazies like me.
BTW, there is nothing so silly as assuming that only one particular approach will result in an optimal solution. Holding up object-oriented approaches as something holy is the sign of an evangelist (at best), not someone rational. IT is something I do as I'm quite good at it in addition to my normal day jobs (field systems engineer). It's one kind of approach. There are numerous others.
"[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
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
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!"
Whoah there! Don't confuse "in the browser" with "in Internet Explorer."
2012 was the first year that Chrome was successfully exploited and Firefox has done fairly well every year. At the 2013 event the Chrome exploit only worked in Windows!
-Riskable
"Those who choose proprietary software will pay for their decision!"