WebSocket streaming based client of Genymobile/scrcpy used for:
- streaming video and audio
- remote control (key strokes, mouse clicks, scroll & touch events) of Android apps.
Use cases:
- Remote control your physical Andorid device (connected either via USB or WIFI)
- Remote control of Remote Android apps, Android running as a docker container in the cloud.
- Play online Andorid games in your browser
This project was inspired by ws-scrcpy, which unfortunatelly seems a bit outdated and unmaintained (audio streaming is missing due to old scrcpy
version; it offers only video streaming)
- Tango-App's great Readable/Writable-Stream APIs and adb client implementation @yume-chan.
- uWebSockets.js - extermely fast WS-Server, that allows for this low latency video/audio streaming.
docker compose up -d
node v22.5.0+
npm i -g pnpm
docker compose up -d redroid-1 redroid-2 redroid-3
https://developer.android.com/tools/adb
My current installed version is:
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as /usr/lib/android-sdk/platform-tools/adb
git clone https://github.com/Genymobile/scrcpy.git
git checkout v2.6.1
./install_release.sh
pnpm recursive install
cd packages/api
npx @yume-chan/fetch-scrcpy-server 2.6.1
pnpm run dev
API will start on http://localhost:9001
cd ui
./patch.sh
- Create
packages/ui/.env
file with the following content:
VITE_BACKEND_URL=http://localhost:9001
VITE_BACKEND_WS_URL=ws://localhost:9001
- npx vite --force
UI will start on
http://localhost:3000