Forgot your password?
typodupeerror
Software X

Gate One Will Support X11: Fast Enough To Run VLC In Your Browser 164

Posted by Unknown Lamer
from the but-can-it-run-a-web-browser dept.
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.
This discussion has been archived. No new comments can be posted.

Gate One Will Support X11: Fast Enough To Run VLC In Your Browser

Comments Filter:
  • F/OSS (Score:5, Funny)

    by Anonymous Coward on Wednesday November 06, 2013 @02:18PM (#45347201)

    ...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.

  • by Anonymous Coward on Wednesday November 06, 2013 @02:22PM (#45347243)

    Give a man a programming environment of sufficient power and he will port everything.

  • by girlintraining (1395911) on Wednesday November 06, 2013 @02:22PM (#45347245)

    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.

    • by Bill_the_Engineer (772575) on Wednesday November 06, 2013 @02:28PM (#45347317)

      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.

      • by Riskable (19437)

        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.

      • by lgw (121541)

        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.

        • Yes they do have them and I'm looking at them and other solutions. They all have one problem, you need money. Usually lots of it to get it done well. My need is for household use, the target devices being everything in sight, especially (eventually) tablets to be hosted on my monster server/workstation. Households aren't something the big guys are even targeting, which makes about zero sense as being able to 'consume' on your portable devices anywhere, especially at home, really should be a valid target. [D
    • 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.

    • by H0p313ss (811249)

      This. My kingdom for a mod point.

    • 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.

      • by h4rr4r (612664)

        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.

        • I'll worry about that when my data-center is on Mars.

          • by gstoddart (321705) on Wednesday November 06, 2013 @03:54PM (#45348197) Homepage

            I'll worry about that when my data-center is on Mars.

            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.

          • by h4rr4r (612664)

            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.

    • by h4rr4r (612664)

      50ms is a long time.
      Remote does not mean not on the same LAN.

      • by wulfhere (94308)

        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.

        • by Riskable (19437) <YouKnowWho@YouKnowWhat.com> on Wednesday November 06, 2013 @04:10PM (#45348395) Homepage Journal

          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.

    • by Lothsahn (221388) <Lothsahn@@@SPAM_ ... u_bastardsyahocm> on Wednesday November 06, 2013 @02:41PM (#45347489)
      We talking VNC or RDP? Whether RDP can be significantly improved--I don't know. However, I also find it happens to work very well, even across large distances. There is some lag, but very manageable with US-based ISP's. If you have a low latency, high bandwidth network, thin clients work just like a local desktop to any normal human being for word and web-browsing.

      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.
      • by tramp (68773)
        VNC is terrible on both LAN and WAN but SPICE is a lot better and on par with RDP in my experience. And imo there are plenty opportunities to improve both but it is hard work and not many interested.
      • by Chirs (87576)

        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.

    • by Riskable (19437) <YouKnowWho@YouKnowWhat.com> on Wednesday November 06, 2013 @03:11PM (#45347797) Homepage Journal

      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.

    • 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.

      • by Riskable (19437) <YouKnowWho@YouKnowWhat.com> on Wednesday November 06, 2013 @04:15PM (#45348459) Homepage Journal

        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.

    • by PPH (736903)

      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.

    • by citizenr (871508)

      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.

  • Would it be possible to play (non competitive/timing intensive) games over this!?
    • by h4rr4r (612664)

      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.

      • by smash (1351)
        Australian gamers disagree with your assessment. I've been gaming on US-based servers for over a decade now, and the minimum latency i see in that situation is north of 200ms. Regularly play FPS (co-op, like borderlands) with friends on the other side of the country...
        • by h4rr4r (612664)

          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.

    • If they manage to pull that off they should name it something like "OnLive". Name just seems catchy and fitting to me.

    • by Riskable (19437)

      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)

    by Beardydog (716221) on Wednesday November 06, 2013 @02:26PM (#45347301)
    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.
    • That's fine as long as you trust a proprietary protocol and use one of their supported operating systems (which doesn't include Linux or BSDs)
      • by Beardydog (716221)
        They do have an Ubuntu package for the streamer, at least, or they used to. But not a client? I don't know. I've only ever needed to connect to Lonux, never from.

        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
    • Closed source, doesn't run on linux... Sorry mate, wrong audience.

      • by Beardydog (716221)
        I wasn't trying to sell it to you, just answering the question in the headline. I have seen a streamer fast enough that I often use it to play unsupported video on an iPad (I'd rather do things like that locally than use one of the many "cloud browsers" that used to get articles here when iOS's lack of Flash was still worth talking about) , and have played a little Fallout 3 on it when the TV was in use. It's also worth noting that the streamer does run on Linux: http://www.splashtop.com/linux [splashtop.com]

        Benefits as
  • I have done it over forms of VNC, vmware view and Xendesktop.

  • by smash (1351) on Wednesday November 06, 2013 @02:35PM (#45347423) Homepage Journal
    ... so yes, i've seen it before...
  • by deviator (92787) <bdp.amnesia@org> on Wednesday November 06, 2013 @02:42PM (#45347501) Homepage

    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.

    • 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.

      • by smash (1351)
        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.
  • what is Gate One? (Score:5, Informative)

    by Gravis Zero (934156) on Wednesday November 06, 2013 @03:00PM (#45347671)

    Gate One is an HTML5 web-based terminal emulator and SSH client.

    • Re:what is Gate One? (Score:5, Informative)

      by Riskable (19437) <YouKnowWho@YouKnowWhat.com> on Wednesday November 06, 2013 @03:25PM (#45347925) Homepage Journal

      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.

  • "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.

  • by Barryke (772876) on Wednesday November 06, 2013 @05:05PM (#45349075) Homepage

    Ever seen a remote desktop tool that's fast/efficient enough to play back video?

    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.

  • by Lennie (16154)

    The demo uses mplayer.

    But whatever, details, who cares, right ? :-)

  • "Ever seen a remote desktop tool that's fast/efficient enough to play back video?"

    Yeah, NX. Been using it for awhile.

    • by Burz (138833)

      "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

  • 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.
    • by Riskable (19437)

      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

Our informal mission is to improve the love life of operators worldwide. -- Peter Behrendt, president of Exabyte

Working...