Любой API для скринкаста программы и вывода в виде видеопотока?

Задача

  • Я хочу создать веб-приложение, в котором пользователь мог бы запускать программу на сервере и взаимодействовать с ней через потоковую передачу и веб-сокеты. Стоит отметить, что одну и ту же программу могут запускать несколько пользователей, поэтому каждый пользователь должен видеть (и слышать) свой собственный экземпляр приложения, не пересекаясь с другими экземплярами.

Задача

  • Я хочу запустить на сервере программу A (или несколько ее экземпляров) через API внутри другого веб- приложения B. Программа A будет иметь экран и аудиовыход, который я хотел бы захватить для скринкаста в B . После этого вывод должен быть отправлен пользователю в виде видеопотока.

Требования

  • API, DLL или DLL-компилируемый исходный код
  • Вывод A не должен отображаться на экране. Но он должен быть захвачен на B и готов к потоковой передаче.
  • Он должен поддерживать несколько программ и несколько экземпляров программы.
  • Он должен поддерживать отправку событий клавиатуры/мыши в A
  • Идеально для PHP или Node.js. Но подойдет любой язык программирования.

Бюджет

  • В идеале бесплатно. Но я готов потратить разумную сумму.

Есть ли какой-либо API, отвечающий этим требованиям?

Веб-сайт (JavaScript) не может делать снимки экрана пользователя. Это было бы большой брешью в безопасности и конфиденциальности.
О, нет, вы ошиблись. Захват экрана будет сделан сервером и будет показан пользователю через видеопоток. Я отредактирую вопрос, чтобы уточнить это.
На какую операционную систему вы ориентируетесь? Кстати, то, что вы хотите сделать, очень похоже на Citrix Application Server...

Ответы (1)

Существует множество API. Некоторые из них совершенно бесплатны. Обратитесь к ним:

  • TightVNC — это кроссплатформенное бесплатное программное приложение для удаленного рабочего стола с открытым исходным кодом, которое использует и расширяет протокол VNC RFB для удаленного управления экраном другого компьютера.

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

  • EchoVNC — это инструмент для удаленного рабочего стола с открытым исходным кодом , поддерживающий VNC, удаленный рабочий стол (RDP), а также серверы и средства просмотра RAdmin.

    http://www.echovnc.com/

  • FreeRDP — это бесплатная реализация протокола RDP с открытым исходным кодом в соответствии с открытыми спецификациями Microsoft . Он выпущен под лицензией Apache и доступен для OS X (через X11), Cygwin для Microsoft Windows, OpenBSD, FreeBSD, Linux, Solaris.

    http://www.freerdp.com/

  • LibVNCServer/LibVNCClient — это кроссплатформенные библиотеки C, которые позволяют вам легко реализовать функциональность VNC-сервера или клиента в вашей программе.

    http://libvnc.github.io/

  • Screenleap предлагает программный доступ к своей функции совместного использования экрана для разработчиков, желающих включить совместное использование экрана в свои веб-приложения.

    http://www.screenleap.com/api

  • rdesktop — это реализация клиентского программного обеспечения для проприетарного протокола Microsoft Remote Desktop Protocol (RDP). Rdesktop — это бесплатное программное обеспечение с открытым исходным кодом, на которое распространяются требования Стандартной общественной лицензии GNU (GPL) версии 3, и оно доступно для Linux и BSD, а также для Microsoft Windows.

    http://www.rdesktop.org/

  • Chicken of the VNC — это клиент виртуальных сетевых вычислений для Mac OS X под лицензией GNU General Public License. Разработка приостановлена ​​с 2005 года.

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