robot-vision

所属分类:远程控制/远程桌面
开发工具:Scala
文件大小:0KB
下载次数:0
上传日期:2012-05-16 01:09:38
上 传 者sh-1993
说明:  嵌入式服务器,允许远程控制桌面,
(Embedded server to allow remote control over desktop,)

文件列表:
LICENSE.md (1055, 2012-05-15)
app/ (0, 2012-05-15)
app/src/ (0, 2012-05-15)
app/src/main/ (0, 2012-05-15)
app/src/main/scala/ (0, 2012-05-15)
app/src/main/scala/RvcApp.scala (4565, 2012-05-15)
app/src/main/scala/modes.scala (1104, 2012-05-15)
control/ (0, 2012-05-15)
control/src/ (0, 2012-05-15)
control/src/main/ (0, 2012-05-15)
control/src/main/resources/ (0, 2012-05-15)
control/src/main/resources/pointer.png (519, 2012-05-15)
control/src/main/scala/ (0, 2012-05-15)
control/src/main/scala/clipboard.scala (577, 2012-05-15)
control/src/main/scala/recorder.scala (1278, 2012-05-15)
control/src/main/scala/robot.scala (6100, 2012-05-15)
control/src/test/ (0, 2012-05-15)
control/src/test/scala/ (0, 2012-05-15)
control/src/test/scala/robot.scala (922, 2012-05-15)
notes/ (0, 2012-05-15)
notes/0.0.1.markdown (636, 2012-05-15)
notes/0.0.2.markdown (1050, 2012-05-15)
notes/about.markdown (822, 2012-05-15)
project/ (0, 2012-05-15)
project/build.scala (5956, 2012-05-15)
project/plugins.sbt (332, 2012-05-15)
server/ (0, 2012-05-15)
server/bootstrap/ (0, 2012-05-15)
server/src/ (0, 2012-05-15)
server/src/main/ (0, 2012-05-15)
server/src/main/resources/ (0, 2012-05-15)
server/src/main/resources/img/ (0, 2012-05-15)
server/src/main/resources/img/camera.png (143, 2012-05-15)
server/src/main/resources/img/clip.png (420, 2012-05-15)
server/src/main/resources/img/display.png (310, 2012-05-15)
server/src/main/resources/img/play.png (554, 2012-05-15)
server/src/main/resources/img/stop.png (466, 2012-05-15)
... ...

# Robot Vision Control Robot Vision Control (RVC) allows Chrome browsers to control a host machine the same way one would through applications like RDP or VNC. ## Requirements - [java][java] >= 1.6 - CLI users: n8han's [cs][cs] (follow instructions on README) - Other users: [rvc app][app] (double-click executable) [cs]: https://github.com/n8han/conscript#readme [java]: http://java.com/en/download/index.jsp [app]: http://philcali.github.com/robot-vision/rvc.jar ## CLI Installation These instructions are for those who would rather install this app for primary launching from the command-line. ``` > cs philcali/robot-vision ``` Launch the app with: ``` > rvc -j web ``` ## Mirrors Whether you downloaded the thick swing app or the cli version, you can test it out by directing your browser: [http://localhost:8080/robot-vision.html][locally]. [locally]: http://localhost:8080/robot-vision.html If the app is running properly, you will be greeted with the endless mirrors of your desktop! Of course, now it's time for you to connect to the host machine _remotely_, which is the point of this application. ## Controlling and Viewing RVC was made with the idea of sharing the desktop. Only one person can control the machine, while others watch (or participate). - `desktop.html` to control the machine - `robot-vision.html` read only view of the machine If you want to wrap the control scripts around basic auth, then pass in a username and password via `rvc -u user -p password web`. If you want to wrap the viewers in basic auth, use `rvc -v password web`. The username for `robot-vision.html` authentication will always be `viewer`. Keep in mind, this is plain text auth over http. Read below about using ssl secured auth over https. ## Streaming vs Reloading RVC allows for two specific forms of _reloading_ the desktop image. The first way is a client side loop reloading the image. The second is the _jpeg_ camera type streaming to the browser, where the server pushes images to clients. The default behavior is to have javascript reload the scene, but testing showed that jpeg camera streams proved to be more fluid. Don't use this method if you know clients browsers don't support it. ## Using a Chrome Extension Control communication must be allowed via passing a _key_ to an open web socket connection. This means it's possible to __not__ serve the control code (with `-n`), and inject the needed code using a Chrome Extension. The extension is available at [robot-chrome][vision-ext]. [vision-ext]: https://chrome.google.com/webstore/detail/ieabafligicoomhcodhiolhlmljhmifi?utm_source=chrome-ntp-icon __Note__: Chrome extension integration requires that the `gen` action is run at least once to generate the 32 character random string for authentication: ``` rvc gen ``` GUI users can simply copy the Chrome key or generate another by clicking on _Generate_. ## SSL Properties RVC supports https with the `-s` flag. It is important to note that https requests will __always__ fail until (at least) two system properties are set: 1. `netty.ssl.keyStore` 2. `netty.ssl.keyStorePassword` Supply the properties with `rvc set prop.key prop.value`. ``` > rvc set netty.ssl.keyStore /path/to/cert.jks > rvc set netty.ssl.keyStorePassword secret ``` Read more on the [wiki][ssl]. [ssl]: https://github.com/philcali/robot-vision/wiki/Setup-SSL ## Screen recording RVC allows simplistic screen recording by taking a series of snapshots that one can later build (automatically or not) into a screencast. ClI users can do so by passing in the following arguments: ``` > rvc record /temp/path/to/jpgs ``` __Note__: in `web` mode, the controller will have an option to initiate and stop a recording remotely. Currently, remote recordings are stored in: ``` {USER-HOME}/recording_{timestamp} ``` This program does not build the movie from the images. Instead, you can use your favorite program to do that. RVC looks at two properties for record: - `record.cleanup` - If true and `record.command` is set, then it will clear out all the recorded images - `record.command` - This is executed after the recording is finished and - `record.dest` - optionally pass in the destination location RVC will replace three strings in the command: - `{location}` - the location set by the recorder - `{filename}` - the filename of the movie - `{dest}` - the directory destination In Linux, one might use ffmpeg to transform the series of jpeg's to a movie like so: ``` ffmpeg -r 7 -b 128k -i {location}/%07d.jpg {dest}/{filename}.mp4 ``` ## Control Library The `capture-control` library is a wrapper around java utilities used in RVC for screen capture image manipulation and remote control. Feel free to use it in your projects. `libraryDependencies += "com.github.philcali" %% "capture-control" % "0.0.2"` ## Client Library The client interface is a submodule shared by this application and the Chrome extension. That code is found at [robot-interface][vision-int]. [vision-int]: https://github.com/philcali/robot-interface ## RVC Options ``` Usage: rvc [OPTIONS] action extras OPTIONS -b (0.0.0.0) --bind-address (0.0.0.0) Web server bind address -f framerate 10 (per second) --framerate framerate 10 (per second) If in jpeg camera mode, push image data at specified framerate -i 8080 --inet-port 8080 Web server internet port -j --jpeg-camera Serves image data via jpeg camera transport -k /path/to/ssl.properties --key-store /path/to/ssl.properties To be used with --secured. This is the properties file containing netty ssl info. -n --no-connect don't serve up connection js (ideal if using Chrome extension to connect) -p --password password to auth -s --secured https server (http) -u --user user to auth -v --viewer-password Separate password for the 'viewer' user (leave blank for open) ``` ## Vision Actions Actions are meant to be run once, and done. The remote control server is the primary action, but below is the output by running `rvc actions`: ``` run, web Launches embedded server c, clean-keys Wipes stuck inputs record Records actions only gen, generate-key Generates a Chrome extension connection key set, add Sets a vision property remove, rm Removes a vision property list, ls Lists vision properties actions, help Displays this list ``` ## Known Issues - Screen capturing can be really slow (JVM screencap performance is lousy) ## License The MIT.

近期下载者

相关文件


收藏者