gitwtfhub

wtf is scrcpy-rfb?

cocoonstack/scrcpy-rfb — explained in plain English

Analysis updated 2026-05-18

28CAudience · developerComplexity · 4/5Setup · hard

TL;DR

A bridge tool that translates an Android screen stream from scrcpy into the standard VNC protocol so ordinary remote desktop viewers can view and control the device.

Mindmap

mindmap
  root((scrcpy-rfb))
    What it does
      Bridges scrcpy to VNC
      H.264 passthrough
    Tech stack
      C
      FFmpeg
      Docker
    Use cases
      Remote Android control
      Guacamole integration
    Audience
      Developers
      Sysadmins

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

View and remotely control an Android device's screen using a standard VNC viewer.

REASON 2

Get low-latency, unmodified H.264 video from scrcpy through VNC-compatible clients like TigerVNC or noVNC.

REASON 3

Run a containerized bridge in a Docker or Kubernetes environment for remote Android access.

REASON 4

Integrate Android screen control into tools like Apache Guacamole that already speak VNC.

What's in the stack?

CCMakeFFmpeglibjpeg-turboDockerGitHub Actions

How it stacks up

cocoonstack/scrcpy-rfbbusung-dev/cve-2026-43499-s25ulemire/fastconstmap
Stars282828
LanguageCCC
Setup difficultyhardhardeasy
Complexity4/55/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires compiling C dependencies or Docker, plus a running scrcpy server and VNC client to test end to end.

Wtf does this do

scrcpy-rfb is a bridge program that lets you view and control an Android phone or tablet screen using ordinary VNC remote desktop viewers. Scrcpy is an existing tool that streams an Android device's screen to a computer as compressed video, but it does not normally speak the standard VNC protocol that most remote desktop clients understand. This project sits between scrcpy and a VNC client and translates one into the other, exposing everything through a single network port. If a client supports a special H.264 video mode, such as the TigerVNC or noVNC viewers, it receives the original Android video stream directly with no extra processing on the server, keeping quality high and load low. Any other regular VNC client instead automatically receives a more universally compatible video format that the bridge converts on the fly, so nothing needs to be reconfigured on the viewer side beyond normal VNC settings. Building it requires a C toolchain along with the cmake build system, git, and a few supporting libraries including FFmpeg and libjpeg-turbo, plus a patched version of an existing VNC server library that the project fetches automatically during setup. The project also publishes ready-made Linux binaries and a container image automatically whenever changes are pushed, so most users will not need to compile it themselves. Once scrcpy is running with video and control enabled, you start this bridge pointing at it and connect any VNC viewer to the resulting port. The README documents specific settings that make the popular TigerVNC and Apache Guacamole clients behave better with the bridge, and describes internal details like how it detects and works around slow or unresponsive network clients so one bad connection does not affect others. By default the bridge listens on all network interfaces without a password, meaning anyone able to reach the port can control the connected Android device, so the README recommends either restricting it to the local machine and tunneling access, or setting a VNC password. Rotating the device or changing its screen resolution requires restarting the bridge, since the session size is fixed once it starts.

Yoink these prompts

Prompt 1
Explain how scrcpy-rfb bridges an Android scrcpy session to a standard VNC port.
Prompt 2
Walk me through building scrcpy-rfb locally and the dependencies it needs.
Prompt 3
How do I configure Apache Guacamole to work well with this VNC bridge?
Prompt 4
What security settings should I set before exposing this bridge on a network?

Frequently asked questions

wtf is scrcpy-rfb?

A bridge tool that translates an Android screen stream from scrcpy into the standard VNC protocol so ordinary remote desktop viewers can view and control the device.

What language is scrcpy-rfb written in?

Mainly C. The stack also includes C, CMake, FFmpeg.

How hard is scrcpy-rfb to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is scrcpy-rfb for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.