Gate One Will Support X11: Fast Enough To Run VLC In Your Browser 164
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.
F/OSS (Score:5, Funny)
...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.
Re: (Score:3, Funny)
Mod parent left, mod grandparent right and grand grand parent counter clockwise.
Re: (Score:2)
Re: (Score:3, Funny)
Mod parent Up-Up-Down-Down-Left-Right-Left-Right B, A, Start
Re: (Score:3)
Put your hands on your hips, and pull your knees in tiiiIIIIiiiight!
Give a man a programming environment (Score:3, Funny)
Give a man a programming environment of sufficient power and he will port everything.
The network says no (Score:5, Insightful)
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.
Re:The network says no (Score:5, Informative)
I think the minor detail that was lost in the slashvertisement was that gate one eliminated the need for remote desktop software by being browser based and its performance is at least comparable to other remote desktop software.
In addition, the author is offering to add X terminal emulation as a feature.
I don't think he meant to pass it off as the fastest possible protocol out there.
Re: (Score:3)
You're right: It doesn't need any proprietary software or proprietary protocols. It "just works" (in your browser).
I honestly have no idea if it's the fastest protocol. I do know that it's an order of magnitude less bandwidth than noVNC and similar web-based remote desktop products.
Re: (Score:2)
Don't both VMware and Citrix already offer commercial browser-based RDP solutions? Really, the only interesting part of this is that it's a FOSS solution. The engineering work needed to do RDP well is immense - change your streaming encoding on the fly as available bandwidth changes, detect that this rectangle is playing a movie, that rectangle is scrolling text, and the rest is static, and so on.
Doing RDP at all is easy; doing it well is impressive.
Re: (Score:3)
Re: (Score:3)
The link layer is always the foot on the garden hose. Teradici's PCoIP and Ericom's protocol set are fast enough to play reasonable video on. Citrix, a bit slower, and on a good day, 10GB network, no traffic, gusty wind, xRDP will do it.
So fie on your "crap". Once you cure the link layer, several work just fine. Maybe this one, too, although there's always room for competition.
Re: (Score:2)
This. My kingdom for a mod point.
Re: (Score:3)
Please. A screen only has so many pixels, and you only have so much input. The main UI paradigms primarily in use today were initially developed so far back that the original hardware was several orders of magnitude slower than the network bandwidth we have today. It's true that piping 4k images in real time eats a ton of bandwidth, but high display resolution is pretty much the only network hurdle. Every other UI behavior can operate in human-sense realtime.
Re: (Score:3)
Sadly the speed of light as not improved one bit since those days. That means once you get far enough away the delay will be clear as day to even the slowest human.
Re: (Score:2)
I'll worry about that when my data-center is on Mars.
Re:The network says no (Score:5, Informative)
Then, I'm afraid you might not have enough practical experience on the topic.
I've encountered performance issues across an organization, and definitely been able to identify it as network latency.
And when we spoke with the network architects, they essentially told us it could be made no faster because of the distances involved. I'm not talking trans-continental/trans-oceanic links, I'm talking two data centers separated by only about a thousand miles.
And, with the latency issues, we can't make some things responsive enough to interactive users to not be exceedingly painful. A 60-100ms latency is enough to have users screaming at you as everything they do has a long delay in it -- for interactive applications, that's very noticeable.
You don't need to have data centers on Mars to be able to experience latency which is exceedingly painful. Within the last few months I've personally ran up against it in an organization which has offices through North America.
If you're just mirroring data, sure. But running an interactive application over a long-distance link for which latency becomes a factor -- that can be very painful. And even within North America, you can easily get to the point where the latency can't be fixed because the signal can still only travel so fast.
It really doesn't take all that much distance before it becomes observable. And angry/frustrated users don't want to be told about the laws of physics. They want to be able to click a button and not wait several seconds.
Re: (Score:3)
I honestly have no idea, since I'm not really a 'network guy'.
However, I am taking our network architects at face value when they tell me that the latency can't be addressed because of the distances involved. Since they are the network architects for a multi-billion dollar company, I am going to assume they know more about it than I do.
Re: (Score:3, Interesting)
Re: (Score:2)
I can get pings as low as 180 ms from Sydney to LA. maybe that's what they tell people to make them go away. Distance to LA to Washington DC 2,297 miles, LA to Sydney 7497.06 miles. Unless your connection is international the "distances involved" is a poor excuse indeed.
Re: (Score:2)
With remote desktop like connections Mars would be out of the question, as that is minutes away. For something like gaming hundreds of miles is the effective limit before a human notices.
Re: (Score:2)
50ms is a long time.
Remote does not mean not on the same LAN.
Re: (Score:2)
Agreed. 50ms is long enough to get from Chicago to NY, TWICE, on fiber (and not using the special low-latency routes). I don't need it to be exactly like sitting at the workstation, I'm just looking for it to be USABLE, unlike Citrix connections that drop anytime someone sneezes at a NOC somewhere.
Re:The network says no (Score:5, Informative)
Reading your comment makes me think you'll love Gate One's ability to resume your session--even after restarting the process. I'll give you a hypothetical example:
1) I connect to https://gateone.mycompany.com/ [mycompany.com] and open up LibreOffice Calc.
2) I connect to the server running Gate One via SSH and run "/etc/init.d/gateone stop"
3) The web page reports it has been disconnected but it will retry connecting every five seconds.
4) I run "/etc/init.d/gateone start"
5) The web page reconnects to the Gate One server and my spreadsheet is back in front of me--right where i left it.
That works with terminals too if you install the dtach command. Everything will resume right where you left off even after killing and restarting the gateone.py process. This makes upgrading Gate One about as easy as can be; users will experience ~5 seconds of down time while the upgrade takes place and the process is restarted.
Re:The network says no (Score:5, Interesting)
VNC, on the other hand, does not work this way. Despite having very low latency and high bandwidth, my VNC connection from just inside my house is terrible. There's significant lag and other problems. Across wide network links? It's horribly painful to use.
I'm not sure if you were describing the state of RDP or VNC, but given the article is about VNC, there's a tremendous amount of improvement that is possible in that protocol. RDP demonstrates this. We should realize this and make VNC closer (or better) than RDP.
Re: (Score:3)
Re: (Score:2)
I question the "horribly painful to use". Maybe it depends what you're doing. I use VNC across a distance of about 3000km (ping time of 53ms). I turned off lossy encoding to get crisper text for coding, and even with that while there's a noticeable lag it's good enough to use a shell, edit text, run virtual machine managers, etc.
I wouldn't want to watch video through it, or do media editing, but for typical office/coding work it seems to be basically okay.
Re:The network says no (Score:4, Informative)
I hear what you're saying and I agree that network latency is one of the biggest problems. Having said that, I have performed testing with my home Comcast Internet connection with Gate One running on a Rackspace cloud instance (512MB). The latency is negligible. My ping time to that server was a pretty steady ~50ms and apps like Chrome (yes, Chrome inside Chrome), LibreOffice (Calc/Writer), Sublime Text 2, kate, etc worked very well.
Re: (Score:3)
If you look at bandwidth with descending sort, you're right. But if you look at it from the other end, you're not.
I agree that when you want to access a server remotely and it's located on the other side of the world, with 16 Kb/s between you, it would suck. But consider I'm at home and I have a very powerful PC in my living room. I'm laying in my bad and feel like playing a nice game. I would love to fire up a remote connection from my crappy laptop/tablet, start the game remotely, play it as if I'm there.
Re:The network says no (Score:4, Informative)
I'm going to do everything in my power to make sure your use case works because I want to be able to do that too! I also want to be able to pick up where I left off if I have to work on something while I'm out & about. Just whip out my Chromebook and I'm coding using the desktop (or just the app) I left behind.
So yeah, I just gave away an interesting feature: If you're using a Linux desktop (like I do) and you fire up Gate One it can connect to the existing X11 display and forward just the app you want it to. It doesn't have to be the entire desktop.
Re: (Score:2)
ISPs purposefully sabotage remote desktop and VPN because it's a threat to their business model.
For you and I, the peon consumers, yes. But there are others out there looking for similar solutions. And they have their own Intranets, over dedicated fiber-optic lines.
Re: (Score:2)
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
umm have you tried ANY VNC software at all? I tried a TON and not a single one wanted to get even close to 10% of my 100Mbit LAN between two computers, while at the same time lagging badly. Network is not the problem, VNC programs not utilizing it are.
I would be perfectly happy with VNC server capable of pumping out >10Mbit video stream, doesnt mater if its jpeg, webp or h.264.
Re: (Score:2, Insightful)
Because it took 2 hours to encode that 1080p video, and that's an awful lot of latency.
Re: (Score:3)
That however is not time that is network limited as the GP posted. There's still room for optimization is desktop transfer protocols.
Re: (Score:2)
Re: (Score:3)
h.264 1080p with a quality factor of 20 or 18? I'd be quite impressed if that were true.
Perhaps at a lower framerate, but I don't know if the encoder needs a certain amount of video to process (eg it may need a few frames ahead)
Re:The network says no (Score:4, Informative)
Well, it probably does real time encodes of 24 FPS content, but perhaps would struggle a bit more with 60 FPS+ Desktop content. Likewise, if the content is photographic, the compression artifacts tend to be less noticeable. Have some simple shapes and bright colors with crisp edges like a GUI in the mix, and you tend to need much higher quality than with photographic content. Even doing the encode in real time at adequate quality, you are probably encoding to a long GOP codec which has quite a lot of inherent latency. If the GOP size adds 1 second of latency, it doesn't matter how much CPU and bandwidth you throw at the problem, it would still be very bad for real time interactive uses.
* (Used to be an Engineer responsible for dealing with remote sites and technology for real time remote color grading sessions transmitted over the internet and over private WAN links using H.264 and JP2K based codecs mostly for TV commercials.)
Re: (Score:3)
Real-time encoding of desktop apps using h.264 is a bad idea. Text will look awful.
Gate One defaults to PNG encoding of screen/window/region captures and switches automatically to JPEG if updates start happening fast enough (because JPEG is much less CPU overhead than PNG). Its a threshold thing.
The quality can be adjusted on-the-fly as well. WebP support is there too but I'm torn as to whether to use it by default or not (if the browser supports it) because the CPU utilization is on par with PNG yet it
Re:The network says no (Score:5, Informative)
Three reasons this isn't all that "insightful" (sorry):
1) two hours to encode a two hour movie is real time.
2) 1080p h.264 video encoders are available in $10 chips. Or if you don't want dedicated hardware for it, it can also be done on a PC at good quality using a half-decent GPU.
3) there are already decent examples of this being done in the real world - OnLive, GaiKai, etc. So it's clearly not only plausible, but working.
Re:The network says no (Score:5, Insightful)
Because youtube is not interactive.
This means it can cache to get to 1080p and that temporary slowdowns are of no concern. With RDP/X11/SPICE you have to have an interactive connection. That means anything you do to get a smoother desktop like caching ends up making the interaction slower.
Re:The network says no (Score:4, Insightful)
Latency... Latency.... Latency...
When you're streaming 1080p video, its fine to have a buffer several seconds or minutes long to cover any hicups on the network. For remote desktop use, not so much.
Re:The network says no (Score:5, Funny)
I don't know... most of our RDP users where I work just do the same thing over and over... you could probably buffer their actions.
Re: (Score:2)
You could probably replace most of them with a shell script [zazzle.co.uk].
smart desktop says yes (Score:4, Interesting)
Re: (Score:3)
That's exactly how Gate One's X11 app works. Well, it can't buffer video in any significant way without adding non-trivial delays to interactivity but it does keep independent caches for each window on the screen and each gets their own encoding/quality strategy based on how often updates occur (bandwidth utilization isn't taken into account yet).
So that terminal running in the background will have nice and crisp, PNG-rendered text while the video playing in the forground will utilize JPEG (or WebP) encodi
Re: (Score:3)
You can stream 1080 over YouTube? I've... buffering... never... buffering... been... buffering... successful... buffering... at it.
Re:The network says no (Score:5, Informative)
If you have an otherwise decent connection you should be able to play 1080p just fine. If you can't, your ISP is probably sending the traffic to one of the massively overloaded mirrors they run. You can block them easily by following the directions here [mitchribar.com] for Linix or here [mitchribar.com] for Windows. Or you can apply the same rules at your router to take care of the issue for your whole network.
Re: (Score:2)
Thanks. I'll give it a try sometime.
Re: (Score:3)
Ask anyone who plays multiplayer online games.
You can buffer non-interactive streams to cover up the shitty, jittery, laggy network users are using to view video. Interactive content, however, requires that intermediate routing devices hand off traffic to the next hop as close to immediately as possible.
AT&T (U-verse...my current connection) offers plenty of speed (roughly 20MB down/10 up), but most of the testing tools I've used show me with ping times of somewhere between 40 and 100 ms, depending on
Re: (Score:3)
Latency, not bandwidth. A round trip takes too long, and each click/keypress is (at least) one round trip.
Re: (Score:2)
Don't forget, you can buffer a YouTube video. Can't really get a 30 second buffer of an RDP session. The requirements are very different.
Re: (Score:2)
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?
Thinclient gaming? (Score:2)
Re: (Score:3)
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.
Re: (Score:2)
Re: (Score:2)
Only ones that have no idea what they are talking about.
You are running that game locally, with a network connection to your friend. This means the game can cheat in many ways to cover up latency.
If you were instead running the game on a server some place and using something like remote desktop you would find 200ms pretty much intolerable.
Re: (Score:2)
The game caring about timing is not what I am saying.
The wait between button press and the action appearing on screen would be painful. Do you really want to select units then wait 200ms for that to happen?
Re: (Score:2)
OnLive (Score:2)
If they manage to pull that off they should name it something like "OnLive". Name just seems catchy and fitting to me.
Re: (Score:2)
Mod parent up, because I'm in exactly the same situation :)
Re: (Score:2)
Yes but it depends on the game. I wouldn't play an FPS but an RTS would be fine. I dare say that playing Solitaire would be so good you wouldn't even notice it was a remote desktop :)
Ever seen...? (Score:5, Informative)
Re: (Score:2)
Re: (Score:3)
http://www.splashtop.com/linux [splashtop.com]
As for trust, yeah, no. My understanding is that the first version did, in fact, stream your screen completely unencrypted over the internet for remote sessions. And they charge a subscription for remote connections. Ridiculous. Which is why I use a VPN when I stream, and never log into their awful account system
Re: (Score:2)
Closed source, doesn't run on linux... Sorry mate, wrong audience.
Re: (Score:2)
Benefits as
Re: (Score:2)
Never used Swype or one of it's copycats?
Re: (Score:2)
Never used Swype or one of it's copycats?
Now you're just trolling, aren't you :)
Re: (Score:2)
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 genuinely don't think I've ever seen anyone mistake the contraction for "we will" with "well". Neat!
You must never type with predictive algorithms. My smartphone swipe keyboard does that ALL THE TIME...not predictive enough I guess lol
Re: (Score:2)
Re: (Score:2)
It would make sense in my geographic area. Nobody my age uses 'well'; it's all 'good' now, unfortunately. "We did good", "I'm good, how are you?" etc.
What remote desktop won't play video? (Score:2)
I have done it over forms of VNC, vmware view and Xendesktop.
Re: (Score:2)
rdesktop and NX both support video and audio as well. Over E10 lines, youtube video is watchable at 360p/480p (1024x768 virtual screen res). Going above that, though, is painful.
Re:What remote desktop won't play video? (Score:5, Interesting)
Try tigerVNC and get back to me.
You can run 3d HD games over it.
RDP did this in 2009 (Score:3)
RDP - Win8 client to a Win2012 backend - very fast (Score:4, Interesting)
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.
Re:RDP - Win8 client to a Win2012 backend - very f (Score:5, Informative)
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.
Re: (Score:2)
Re: (Score:2)
So presumably it is streaming the actual video file to a local media player on the client machine?
Re: (Score:3)
Yes, this is called multimedia redirection [msdn.com] 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.
what is Gate One? (Score:5, Informative)
Gate One is an HTML5 web-based terminal emulator and SSH client.
Re:what is Gate One? (Score:5, Informative)
That's what it is right now. Soon it will be so much more.
X11 is just the start. I also have File Transfer and other apps in the works. The File Transfer app will be interesting... It will be more than just an, "SFTP client." It will allow you to fetch a file from just about any URL (back-end is already written and supports ftp:// [ftp] sftp://, ftps://, magnet://, and even dns://, dict:// and other obscure things which I think makes it all that more interesting/useful) and deliver it to any number of destinations you like. Even if the destination uses a different protocol.
So for example, if you wanted to download a magnet/bittorrent URL and have it automatically delivered to your home theater PC, your phone, and your brother's computer when complete you could do that.
Yes? (Score:2)
"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.
RDP (Score:3)
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.
VLC ? (Score:2)
The demo uses mplayer.
But whatever, details, who cares, right ? :-)
NoMachine (Score:2)
"Ever seen a remote desktop tool that's fast/efficient enough to play back video?"
Yeah, NX. Been using it for awhile.
Re: (Score:2)
"Ever seen a remote desktop tool that's fast/efficient enough to play back video?"
Yeah, NX. Been using it for awhile.
I'll second this. And the protocol IIRC is open source (FOSS implementation is freeNX). I think X should have integrated this years ago (replacing its clunky version of network abstraction) as it makes using a remote machine seem almost like its local.
Another thing X --or whatever replaces it-- needs is the ability to share app windows or desktops between more than one person, something the commercial version of NX implemented a while back (OS X and Windows laid the groundwork for efficient remote sharing b
I despair - xpra? (Score:2)
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.
Re: (Score:2)
How many submissions have you made? I didn't pay anything to get this posted. I just typed it up into the submission form earlier today and about an hour and a half later it appeared on the front page. I've done that 5 times now (not just for Gate One) with 6 attempts (I ended up having to re-submit something once =). So an accept/submit ratio of 5/6--not bad.
I personally think xpra is awesome. When searching for examples of XCB use in Python it came up in a number of results. My only issue with it is
Re: (Score:3)
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.
Re:WTF? (Score:4, Insightful)
Vaporware doesn't generally have a repository on Github.
Re: (Score:2)
Re: (Score:3)
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
Re: (Score:2)
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 advantag
Re: (Score:2)
Re: (Score:2)
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).
Re: (Score:3)
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 =).
Re: (Score:2)
Hey, sounds like we would actually have a use for Retina displays in that case.
Re: (Score:3)
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!
Re: (Score:2)
What Wayland will save us from is the traditional X11 break between graphical clients and desktops. Once we can get everything (almost) ported to native Wayland, we can stick you with a per display license for each client. Instead of load leveling a small set of X11 clients on the back room servers and handing them out to users where needed.
Wayland is the old Microsoft PC/Windows way of doing business. Each piece of glass gets its own seat license for each application.