Building Furious Mirror — My Personal Realtime Android Mirroring Project Inspired by scrcpy
Hi everyone 👋
Over the last months I’ve been studying realtime multimedia pipelines, desktop rendering, low latency streaming and Android screen transmission systems.
During this journey I started building a personal project called Furious Mirror, heavily inspired by the amazing work behind scrcpy.
The goal was never to “replace” scrcpy or compete against it.
Actually, scrcpy was one of the biggest reasons I became interested in understanding how realtime streaming architectures work internally.
So I decided to challenge myself and build my own implementation focused on experimentation, learning and architecture exploration.
What Furious Mirror currently does
The project currently supports:
- Android screen mirroring
- Low latency streaming
- USB connection
- Experimental Wi-Fi/IP mode
- FFmpeg decoding pipeline
- SDL2 GPU rendering
- Hybrid connection switching
- Realtime rendering architecture
- Input forwarding experiments
Tech Stack
The current pipeline is based on:
Android MediaCodec
↓
Raw H264 AnnexB stream
↓
FFmpeg decoding
↓
SDL2 GPU rendering
Main technologies used:
- Python
- FFmpeg / PyAV
- SDL2
- ADB
- MediaCodec
- Multithreaded rendering pipeline
About AI-assisted development
I also want to be honest about something:
A large part of the project was developed using AI-assisted orchestration.
I’m still learning low-level multimedia engineering and advanced software architecture, so AI became part of my workflow for:
- prototyping,
- refactoring,
- experimentation,
- debugging ideas,
- and accelerating iteration.
But I also learned that AI alone does not magically build stable realtime software.
A LOT of manual testing, architectural decisions, debugging and experimentation were necessary to make the project actually work in practice.
Especially when dealing with:
- threading,
- rendering pipelines,
- synchronization,
- buffering,
- transport stability,
- and realtime decoding.
Current state of the project
The project is still evolving and there are many things I want to improve:
- better Wi-Fi stability
- audio support improvements
- bitrate adaptation
- better reconnect logic
- more optimized rendering paths
- broader Android compatibility
Some devices work perfectly.
Some older Android devices still present challenges.
And honestly, this has been one of the most interesting learning experiences I’ve had so far.
Why I’m sharing this
Mostly to:
- learn from more experienced developers,
- receive feedback,
- improve the architecture,
- and connect with people interested in multimedia systems and realtime streaming.
If anyone has experience with:
- FFmpeg,
- SDL2,
- Android MediaCodec,
- low latency streaming,
- transport pipelines,
- or realtime rendering,
I would genuinely love to hear your thoughts.
Repository
GitHub Repository:
https://github.com/furiousofnightt/furious-mirror
Thanks for reading 🙌













