8

Objective

  • I want to make a web application where an user could run a program in the server and interact with it via streaming and web sockets. It's worth mentioning that multiple users could run the same program, so each user has to see (and hear) his own instance of the application without crossing with other instances.

Task

  • I want to run in the server a program A (or multiple instances of it) via an API inside another web application B. The A program will have a screen and audio display output, that I would like to capture for screencast in B. After that, the output shall be sent to the user via video stream.

Requeriments

  • An API, DLL or DLL-compilable source code
  • A's output shall not be displayed on screen. But it has to be captured on B ready to be streamed.
  • It should support multiple programs, and multiple instances of a program.
  • It should support sending keyboard/mouse events to A
  • Ideally for PHP or Node.js. But any program language would be fine.

Budget

  • Ideally free. But I'm open to spend a reasonable amount.

Is there any API that would meet these requeriments?

  • It's impossible for a website (JavaScript) to capture screenshots of the user's display. That would be a big breach in security and privacy. – ComFreek Jun 11 '14 at 17:10
  • Oh, no, you got it wrong. The screen capturing will be the server's, and it will be showed to the user via video stream. I'll edit the question to clarify this. – Roberto Maldonado Jun 11 '14 at 17:56
  • Which operating system are you aiming at? By the way, what you want to do looks a lot like Citrix Application Server... – yms Jun 17 '14 at 18:26
1
+100

There are numerous APIs. Some of them are completely free. Refer these :

  • TightVNC is a cross-platform free and open-source remote desktop software application that uses and extends VNC's RFB protocol to control another computer's screen remotely.

    http://www.tightvnc.com/download.html

  • EchoVNC is an opensource remote desktop tool with support for VNC, Remote Desktop (RDP), and RAdmin servers and viewers.

    http://www.echovnc.com/

  • FreeRDP is a free, open source implementation of the RDP protocol, according to the Microsoft Open Specifications. It is released under the Apache License and is available on OS X (via X11), Cygwin for Microsoft Windows, OpenBSD, FreeBSD, Linux, Solaris.

    http://www.freerdp.com/

  • LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.

    http://libvnc.github.io/

  • Screenleap offers programmatic access to their screen sharing functionality for developers looking to incorporate screen sharing into their web applications.

    http://www.screenleap.com/api

  • rdesktop is an implementation of a client software for Microsoft's proprietary Remote Desktop Protocol (RDP). Rdesktop is free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 3 and is available for Linux and BSD as well as for Microsoft Windows.

    http://www.rdesktop.org/

  • Chicken of the VNC is a Virtual Network Computing client for Mac OS X licensed under the GNU General Public License. Development has been stalled since 2005.

    http://sourceforge.net/projects/chicken/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.