Skip to content

MartinRGB/ws-scrcpy

 
 

Repository files navigation

ws scrcpy

Web client prototype for scrcpy.

Requirements

Browser must support the following technologies:

Server:

  • Node.js v10+
  • node-gyp (on Window: npm install --global windows-build-tools node-gyp)
  • adb executable must be available in the PATH environment variable

Device:

Build and Start

git clone https://github.com/NetrisTV/ws-scrcpy.git
cd ws-scrcpy
npm install
npm start

Supported features

Screen casting

The modified version of Genymobile/scrcpy used to stream H264 video, which then decoded by one of included decoders.

Remote control

  • Touch events (including multi-touch)
  • Multi-touch emulation: CTRL to start with center at the center of the screen, SHIFT + CTRL to start with center at the current point
  • Capturing keyboard events
  • Injecting text (ASCII only)
  • Copy to/from device clipboard
  • Device "rotation"

File push

Drag & drop an APK file to push it to the /data/local/tmp directory. You can install it manually from the included xterm.js terminal emulator.

Known issues

  • New versions are most likely not incompatible with previous ones. If you do upgrade, then manually stop app_process or just reboot the device.
  • The server on the Android Emulator listens on the internal interface and not available from the outside (as workaround you can do adb forward tcp:8886 tcp:8886 and use 127.0.0.1 instead of emulator IP address)
  • Tinyh264Decoder may fail to start, try to reload the page.
  • MseDecoder reports too many dropped frames in quality statistics: needs further investigation.

Security warning

Be advised and keep in mind:

  • There is no encryption between browser and node.js server (plain HTTP).
  • There is no encryption between browser and WebSocket server (plain WS).
  • There is no authorization on any level.
  • The modified version of scrcpy with integrated WebSocket server is listening for connections on all network interfaces.
  • The modified version of scrcpy will keep running after the last client disconnected.

WS QVH

This project also contains front-end for NetrisTV/ws-qvh - application for screen streaming and control of iOS devices in a browser.

Run this to build it:

npm install
npm run dist:qvhack:frontend

Related projects

scrcpy websocket fork

Currently, support of WebSocket protocol added to v1.16 of scrcpy

About

Web client prototype for scrcpy.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 97.8%
  • CSS 1.2%
  • Other 1.0%