ScreenStream is a user-friendly Android application that allows users to easily share their device screen and view it directly in a web browser. No additional software is required other than the ScreenStream itself, a web browser, and an internet connection (for Global mode).
ScreenStream offers two work modes: Global mode and Local mode. Both modes aim to stream the Android device screen with unique functionalities, restrictions, and customization options.
Global Mode (WebRTC):
Powered by WebRTC technology. End-to-end encrypted communication. Stream protection with password. Supports both video and audio streaming. Connect using unique stream ID and password. Requires an internet connection for streaming. Individual data transmission for each client, with more clients requiring increased internet bandwidth to maintain optimal performance. Local Mode (MJPEG):
Powered by MJPEG standard. Utilizes PIN for security (no encryption). Sends video as a series of independent images (no audio). Functions without an internet connection within your local network. Embedded HTTP server. Works with WiFi and/or mobile networks, supporting IPv4 and IPv6. Clients connect via web browser using the app's provided IP address. Highly customizable. Individual data transmission for each client, with more clients requiring increased internet bandwidth to maintain optimal performance. In both modes the number of clients is not directly limited, but it's important to keep in mind that each client consumes CPU resources and bandwidth for data transmission.
Important Warnings:
1. High Traffic on Mobile Networks: Use caution when streaming via mobile 3G/4G/5G/LTE networks to avoid excessive data usage.
2. Delay in Streaming: Expect a delay of at least 0.5-1 second or more in certain conditions: slow device, poor internet or network connection, or when the device is under heavy CPU load due to other applications.
3. Video Streaming Limitation: ScreenStream is not designed for streaming video, particularly HD video. While it will function, the stream quality may not meet your expectations.
4. Incoming Connection Limitations: Some cell operators may block incoming connections for security reasons.
5. WiFi Network Restrictions: Some WiFi networks (usually public or guest networks) may block connections between devices for security reasons.
ScreenStream app source code:
GitHub link ScreenStream Server & Web Client source code:
GitHub link MJPEG streaming improvements
Update Simplified Chinese translation
Bug fixes
MJPEG: Add PiP mode (Thanks to Xara Roy)
Fix MJPEG streaming for OpenCV
Fix French translation
Bug fixes and improvements
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
New screaming mode using WebRTC introduced.
Add Android 14 support
Minimal supported version now: Android 6
Bug fixes
Polish language update, thanks Waldemar Stoczkowski.
Dependency update
Bug fixes
Dependency update
Android 13 support
Bug fixes
Android 13 support
Bug fixes
Android 13 support
Bug fixes
Android 13 support
Bug fixes
Update Chinese and Chinese in Taiwan Translation. Thanks to Fred
Bug fixes
Dependency update
Bug fixes
Translations update
Dependency update
Add Keep awake option
Add Grayscale mode
Translations update
Dependency update
Dependency update
Add option to show/hide "Press START on device"
Dependency update
Bug fix and dependency update
Bug fix and dependency update
Bug fix and dependency update
Add foldable support
Bug fix and dependency update
Add Ukrainian translation, thanks Yurii Boiko
Translation update, thanks @mezysinc
Dependency updates
Add Ukrainian translation, thanks Yurii Boiko
Translation update, thanks @mezysinc
Dependency updates
Dependency updates
Ad fixes
Update Italian translation thanks to @unbranched
Dependency updates
Ad fixes
Update Poland translation thanks to Waldemar Stoczkowski @WaldiSt
Ad placement update
Dependency updates
Bug fixes
Dependency updates
Bug fixes
Google AdMob added
Dependency updates
Bug fixes
Translation update, thanks @mezysinc
Dependency updates
Increase max pin size to 6 digits
Add IP address blocking
Update Chinese translation, thanks to sr093906
Bug fixes
Update Chinese translation, thanks to sr093906
Update German translation, thanks to Marc Auberer
Move to KTOR(CIO)
Remove zxing
Update translation for Chinese, thanks to sr093906
Update translation for Portuguese, thanks to mezysinc
Improve accessibility
Bug fixes
Fix for “unknown format” problem. (Thanks Sora Steenvoort @sorachan)
Add Catalan language (Thanks Hebert F. Barros)
Add `Access-Control-Allow-Origin: *`
Add "Local host only" option.
Add a jpeg fallback in case the client does not support mjpeg rendering (like a KOBO Eink reader). Thanks to @rnauber
Hide "Auto start/stop" option on Android 10+ as not supported.
Bug fixes
Icon/Logo update
Move to View Binding
Stability improvements
Add Simplified Chinese translation. Thanks Jackal Zhao
Stability improvements
Stability improvements
Bug fixes
Add Tile
Fix German translation (Thanks @marcauberer)
Bug fixes
Add Arabic language(Thanks Sellami Abdelkader)
Bug fixes
Update Spanish translation (Thanks Allan Ayes)
Bug fixes
Update Slovak translation
Add Spanish translation (Thanks Allan Ayes)
Bug fixes
Added Slovak language (slovenčina). Thanks Tibor Repček
Fix German translation. Thanks M&R Games
Bug fixes
Update in-app update implementation
Bug fixes
Update in-app update implementation
Android Q support: Change permissions flow
Add in-app update
Change error notification logic