Giter VIP home page Giter VIP logo

viarotel-org / escrcpy Goto Github PK

View Code? Open in Web Editor NEW
1.4K 12.0 93.0 34.21 MB

📱 Graphical Scrcpy to display and control Android, devices powered by Electron. | 使用图形化的 Scrcpy 显示和控制您的 Android 设备,由 Electron 驱动。

Home Page: https://github.com/viarotel-org/escrcpy

License: Apache License 2.0

JavaScript 47.91% HTML 0.41% Vue 50.31% Batchfile 0.05% VBScript 0.12% CSS 1.14% Shell 0.07%
scrcpy linux macos recording windows genymobile gnirehtet android scrcpy-gui screenshots

escrcpy's Introduction

viarotel-escrcpy

Escrcpy

📱 Display and control your Android device with a graphical interface of Scrcpy powered by Electron. 中文文档

viarotel-escrcpy

More screenshots

Features

  • 🏃 Synchronous: Benefit from web technologies to synchronize with Scrcpy faster
  • 🤖 Automation: Enables automatic connection to historical devices and automatic execution of mirror.
  • 💡 Customizable: Support independent configuration for multiple devices and ability to add notes and import/export all configurations
  • 🎨 Theme: Supports light mode and dark mode, system-wide switching
  • 🔗 Gnirehtet: Integrated Gnirehtet's reverse tethering functionality
  • 😎 Lightweight: Native support, only display device screen
  • ⚡️ Performance: 30-120 fps depending on device
  • 🌟 Quality: 1920×1080 or higher
  • 🕒 Low latency: 35~70 ms
  • 🚀 Quick startup: Display first image in about 1 second
  • 🙅‍♂️ Non-intrusive: No installation residual left on Android device
  • 🤩 User benefits: No account, no ads, no internet required
  • 🗽 Free and open source

Get Software Packages

Check release addresses

Quick Start

USB Connection

Note: If the phone prompts for debugging authorization, click allow

  1. Enable developer mode and USB debugging on your Android phone
  2. Open Escrcpy and connect your Android phone to your computer
  3. The device list in Escrcpy should have detected your phone, click start mirroring
  4. Enjoy!

WIFI Connection

Note: Wireless debugging needs to be enabled on your phone's wireless debugging page to get the IP address (usually the IP assigned when connecting to WIFI) and port number (default 5555) of the device

  1. Follow steps 1-2 in USB Connection
  2. Input the device IP address and port number obtained to Escrcpy and click connect device
  3. The device list in Escrcpy should have detected your phone, click start mirroring
  4. Enjoy!

macOS && Linux

Note: These platforms do not come with integrated Adb and Scrcpy, you need to install them manually

  1. Refer to the installation document for Linux
  2. Refer to the installation document for macOS
  3. Follow steps in USB Connection and WIFI Connection after dependencies are installed successfully

Gnirehtet Reverse Tethering

Note: macOS does not have Gnirehtet built-in. You need to manually install it to use this feature Installation Guide.

Gnirehtet is built into the Windows and Linux apps to provide reverse tethering from PC to Android devices.

Shortcuts

Refer to scrcpy/doc/shortcuts

Device Operation

Control Model

  • Mirror
  • Recording
  • OTG
  • Camera

Device Interaction Bar

  • Switch
  • Home
  • Back
  • Notification
  • Power
  • Rotation
  • Volume
  • Screenshot
  • Reboot
  • Install APP
  • File Manager
  • Gnirehtet
  • Mirror Group

Preferences

Continuously improving. Currently supports the following common configurations

General

  • Change theme
  • Adjust language
  • File storage path (for storing audio/video recordings and device screenshots)
  • ADB path
  • Scrcpy path
  • Gnirehtet path
  • Scrcpy parameters
  • Auto-connect to historical devices
  • Gnirehtet Fix
  • Enable debugging

Video Control

  • Maximum size
  • Video bitrate
  • Refresh rate
  • Video encoding
  • Display orientation
  • Screen clipping
  • Monitor
  • Video buffering
  • Receiver (v4l2) buffering

Device Control

  • Show touch points
  • Keep awake
  • Turn off screen during control
  • Turn off screen after control
  • Disable auto-brightness during control
  • Simulate auxiliary display

Window Control

  • Window width
  • Window height
  • Window X coordinate
  • Window Y coordinate
  • Borderless mode
  • Fullscreen mode
  • Always on top
  • Disable screensaver

Audio Control

  • Audio source
  • Audio encoding
  • Audio bitrate
  • Audio buffering
  • Audio output buffering

Audio/Video Recording

  • Video recording format
  • Video recording orientation
  • Recording duration
  • Disable video recording
  • Disable audio recording
  • Disable video playback
  • Disable audio playback

Input Control

  • Mouse mode
  • Keyboard mode
  • Keyboard injection method

Camera Control

  • Enable camera
  • Camera source
  • Camera resolution
  • Camera aspect ratio
  • Camera frame rate

Next Steps?

Priority from high to low:

  1. Optimize user interface, design a suitable logo ✅
  2. Built-in software update function ✅
  3. Record and save audio/video ✅
  4. Add device quick interaction control bar ✅
  5. Support customization of Adb and Scrcpy dependencies ✅
  6. Support custom device name, and import/export of preference settings ✅
  7. Customization, support independent configuration for individual devices ✅
  8. Add support for macOS and linux operating systems ✅
  9. Support internationalization ✅
  10. Support for dark mode ✅
  11. Add Gnirehtet reverse network function ✅
  12. Add new camera mirror related features ✅
  13. Better multi -screen collaboration ✅
  14. Add more features to device interaction bar: file push, screen rotation, audio control etc ✅
  15. Support bulk connecting to historical devices ✅
  16. Support to use built-in terminals to execute custom commands ✅
  17. Supports automatic execution of mirror on devices. ✅
  18. Add file transmission assistant function 🚧
  19. Support GUI-based selective file downloads from devices 🚧
  20. Support grouping devices and bulk operations by group 🚧
  21. Add game enhancement features such as game keyboard mapping 🚧

FAQ

Computer cannot detect device after connecting

  1. Please unplug and reconnect your device, and make sure the device has granted USB debugging authorization.
  2. If it still doesn't work, your computer may be missing necessary drivers. Please install drivers using third-party tools such as DriverWizard and try again.

Unable to enter Chinese

This issue is known - Scrcpy doesn't seem to have tested and supported direct Chinese input. It's recommended to install a third-party input method on the phone that can well support, such as:

  • Sogou Input
  • QQ Input
  • Google Pinyin Input
  • Gboard

Wireless connection prompts: The target computer actively refuses access

The first wireless connection may require pairing. Alternatively, insert USB to ensure connection establishment and authorization success before using wireless.

Clicking wireless mode after connecting via data cable has no response

Please click again, or click refresh devices. Generally it will not exceed two clicks. If still not working, please provide device model and Android version to Issues

Why is the device interaction control bar not designed as an automatically sticking floating menu?

Adopting the floating menu approach will inevitably increase coupling with Scrcpy and difficulty in synchronization updates. Many similar ScrcpyGUI softwares had to invest a lot of effort in this approach and eventually gave up development due to update difficulties. Therefore, taking overall considerations, we decided to adopt the existing approach and look forward to Scrcpy's native support for an interaction control bar in the future.

Some devices can see screenshots after connecting but cannot operate

Note: For Xiaomi phones in particular, it requires not only enabling USB debugging but also enabling USB debugging (Security Settings), which is to allow modifying permissions or simulating clicks via USB debugging.

Please refer to the detailed instructions under Reasons why mouse and keyboard do not work

Downloading prompts antivirus detection causing unable to download normally

After feedback, Windows Defender may occasionally block the software packages from being downloaded due to lack of certificate signing. You can try the following solutions:

  1. Open Windows Security Center.
  2. Select Virus & threat protection.
  3. In the Virus & threat protection settings, click Manage settings.
  4. Find Real-time protection, you can try clicking Disable if permission allows. If unable to disable real-time protection, please skip this step.
  5. Scroll down the page, find Exclusions, click Add or remove exclusions.
  6. Add the folder path where you download the software packages as an exclusion item, i.e. add the folder to the Excluded list.

Failed to get device list or error when starting mirroring/recording

This is generally caused by an incorrect path for Adb or Scrcpy, you can try the following solutions:

  1. In the menu, select Preferences and then click the reset configuration button in the top right corner of Global Mode.
  2. Go to the Device List page and try enabling mirroring again.
  3. Make sure you have downloaded and installed the latest version of Escrcpy.
  4. Press Ctrl + Shift + I to open the developer tools and check for any error messages.
  5. If there are errors, take a screenshot and submit your issue with the screenshot on the Feedback Issues page.

macOS window minimized to system tray icon not found

This is generally caused by too many icons in the system tray overflowing and hiding the Escrcpy icon. Try using the following tools:

After a successful installation of macOS, when I try to open it, I receive a prompt saying the file is damaged.

This is usually due to the software package not being signed. You can try the following solutions:

  1. Open Terminal and execute sudo spctl --master-disable to allow software from any source.
  2. Open Terminal and execute sudo xattr -r -d com.apple.quarantine [AppPath] to attempt fixing the damaged software package prompt.

Unable to locate the input point DiscardvirtualMemory on the dynamic link library Kernel32.dll.

Only support Windows 10 and above versions.

Audio capture exception causing mirroring failure.

This usually happens because your computer lacks audio output or you have a low Android version (Android 11+).

Please try disabling audio forwarding feature through the preferences settings to resolve this issue.

Getting Help

As this is an open source project run entirely by donations, support is limited and updates may not be on a fixed schedule.

Acknowledgements

This project would not be possible without the following open source projects:

Support the Project

If this project has helped you, you can buy me a coffee to keep me energized and improving the project! 😛

escrcpy's People

Contributors

hellonone avatar little-alei avatar peterdavehello avatar viarotel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

escrcpy's Issues

Bug反馈与建议

如题。
我已经将该程序移植到了ArchLinux的AUR:escrcpy
目前编译后可以运行,但终端有报错:
日志如下:

$ ./src/escrcpy-1.7.1/dist-release/linux-unpacked/escrcpy 
[384798:1020/151349.887468:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: 无此接口“org.freedesktop.portal.FileChooser”
[384798:1020/151349.887512:ERROR:select_file_dialog_linux_portal.cc(274)] Failed to read portal version property
[384798:1020/151349.923041:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.portal.Settings.Read: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.UnknownMethod: 在路径 org.freedesktop.portal.Settings 的对象上没有“/org/freedesktop/portal/desktop”接口

v1.6.10版本的时候,软件界面无报错,运行5~8秒左右白屏;
v1.7.1版本的时候,软件启动时界面就会有报错:

spawn /home/zxp-endeavouros/.cache/paru/clone/escrcpy/src/escrcpy-1.7.1/dist-release/linux-unpacked/resources/extra/core/adb.exe EACCES

终端下报错信息和1.6.10的信息一样。
运行编译好的AppImage文件,运行5~8秒左右白屏;报错信息如下:

spawn /tmp/.mount_EscrcppEk1wA/resources/extra/core/adb.exe EACCES

能不能打包的时候做个判断,如果是Linux的话,就不要将extra/core打包进去?

请教,输入问题

我的笔记本的键盘输入不能和手机互动,同样是搜狗输入法也不行。我该如何设置?

设备交互控制栏增加更多常用功能

使用了很好用,能不能搞一个黑屏开屏开关。偏好设置只有一个”控制时关闭屏幕“,连接的时候手机黑了,但如果需要手机亮,只能按手机电源键,按了,电脑也黑了。象QtScrcpy、anlink一样,在设备列表功能栏里搞一个黑屏亮屏开关,谢谢!

UI is not adaptive to screen resolution, some buttons are cropped

The UI is not adaptive to screen resolution, the minimum size of the window is too huge for a screen with 1366x786 resolution.

This is non-fullscreen view, minimum size of the window.
image

This is the fullscreen view.
image

Notice that on the non-fullsreen view, the button next to the File Manager is cropped, there should be Gnirehtet and Mirror Group right next to it. Also the bottom part of the window is cropped.

While on the fullscreen view, the Mirror Group button was cropped. That means my screen resolution is not wide enough to cover the entire UI.

My idea for the solution maybe to have adaptive UI while also reduce minimum window resize limit.

连接时停止充电对应的--no-power-on应该不是这个意思

开始觉得这个功能很好,毕竟插在usb口一直充电有点伤电池。开了之后没效果,去scrcpy看了下觉得--no-power-on 这个命令只是控制启动投屏的时候是否亮屏而不是停止充电。还有--show-touches显示触摸这个功能我开始以为是鼠标点击会有提示,试了下应该只有触摸手机的屏幕才有提示,和开发者工具里的开关一样。建议可以把这些功能在提示里写清楚一点防止像我这样的误会。

停止充电我觉得是个常规功能但是确实没找到简单实现的方式。最后参考了acc项目是可以了,但是必须要root还要adb命令。因为简单停止充电会导致--stay-awake这个命令又不起效果,大概是系统觉得没有电要省着点用吧... 最后用了adb shell dumpsys battery set usb 1这个命令才欺骗系统让它保持亮屏。

当手机意外断开时,无法取消黑屏状态

开启“控制时关闭屏幕”功能连接后,当数据线接触不良或直接拔掉数据线断开连接时 手机会一直处于黑屏状态 按电源键和屏幕都无法恢复亮屏,只能再重新连接Esrcpy再正常关闭连接后才能恢复

摄像头功能无法单独使用

我现在连接了两部设备,其中一部只是为了使用摄像头功能。
如果在设置里打开启用摄像,那么所有连接的设备都会变成打开摄像头。

mac-arm64 无法运行,提示文件损坏

运行提示 “Escrcpy.app” is damaged and can’t be opened. You should move it to the Bin.

mac console:

default	16:51:20.635940+0800	kernel	ASP: Security policy would not allow process: 96435, /Applications/Escrcpy.app/Contents/MacOS/Escrcpy

无法通过escrcpy直接启用投屏(镜像)和录制功能

应用版本:V1.9.0
运行环境:Windows 11 x64
触发操作:通过无线连接手机5555端口后,会显示连接成功但无法“开始镜像”
屏幕截图 2023-10-24 165337_edit_1392308226118797

临时解决方法:在escrcpy无线连接后,最小化窗口并直接打开 \core\scrcpy.exe 里的本体进行“开始镜像”
屏幕截图 2023-10-24 170142

建议

这个软件很好用,很适合我这种不想写bat的人
我在使用了这个软件之后提了一些建议:
-增加单独的音频,视频开关。不然每次都要去scrcpy参数里面设置,例如--no-audio
-增加一个二级窗口
屏幕截图 2023-12-29 065231
在点击“开始镜像”时,弹出一个二级窗口,上面显示视频 音频对应的参数,确定和否的按钮,以及增加几个开关
比如1.使用OTG模式 2.关闭音频捕获 3.使用摄像 等等
-将“偏好设置”里面其中一些常用选项合并到主界面
-debug模式优化,点击运行日志单独弹出一个窗口,而不是直接打开txt文件
最后
我想说的是,市面上很少有这种良心软件了
bug多,软件开发不容易,尤其是这种开源软件,能理解
一个小问题:前端和后端开发不是同一个人吧?软件里面经常遇到前后端打架的情况

Gnirehtet Functionality Enhancement

This is a feature request.
Currently, this software could only start it, but not monitor or stop it.

It'll be nice to able to monitor the status and stop it if needed on each device.

Android8.1无法使用镜像及反向联网

使用scrcpy时可以正常连接,功能均正常。使用Escrcpy时,每次使用USB连接都需要在手机端撤销授权在重新插拔软件才能识别到手机(USB授权已经设置成了始终授权),识别之后点击镜像无法使用,报错需要重置(可我打开软件还没动过设置呐 ToT ),重置后还是无法使用。在下方的功能键,反向联网无法使用,其它的功能正常。

反向联网报错:
2023-11-28 00:37:03.647 ERROR Main: Execution error: Command D:\Apps\Escrcpy\resources\extra\win\android-platform-tools\adb.exe ["-s", "852QLDTN24C7B", "shell", "dumpsys", "package", "com.genymobile.gnirehtet"] returned with value 1

一些建议

1,加入adb功能,实现例如连接自动切换输入法的功能
2,对于某些黑厂机器(比如一加11),会出现全程音频杂音,scrcpy那边给了解决方案,但似乎没有添加开关,只能手动修改配置文件添加"--audio-output-buffer": "10",,感觉可以做个适配,自行添加一些奇奇怪怪的启动命令
3,能不能做个对于镜像窗口的悬浮条,来控制返回主页多任务以及及时的开关屏幕(alt+o),录制,等操作
4,保存历史IP地址,启动后一键连接

Audio not working

I tested out Asphalt 8 and my media player using escrcpy on my android 10 phone but the audio seems to not play on my laptop, images was running fine just the audio.

[Feature Request] Audio Only Mode

Putting this command --no-video on the arguments box will give an error (sometimes) Operation Failed at the first run and will works without error on the second run. Clicking Refresh will make the mirror button available to click, and clicking it again will make the audio double. To stop the run or fix the audio, either close the program or disconnect the phone, if the phone disconnected it will give the same error Operation Failed as many times as you click the mirror button.

希望可以编辑设备名称及独立配置

如题,实际测试环境可能有多台同型号设备,希望可以支持自定名称,以及对每台设备单独导出配置。
另,直接取当前adb连接未免会造成下次测试时设备配置丢失的问题,可否随配置一同导出?

电源键关闭屏幕和指纹、密码解锁屏幕都会出现操作失败,导致窗口崩溃。

遇到和Qtscrcpy一样的问题,能wifi正常镜像,但电源键关闭屏幕或自动息屏和指纹、密码解锁屏幕都会出现操作失败,导致窗口崩溃(Command failed with code 2)。
之前用还好好的,不清楚是手机设置哪里变了,还是电脑。
手机android 9,刚改过原生电池优化设置,也试着改回来,没效果。
电脑前几天刚下载搞机工具箱和QtAdb连过手机,用过之后就出现这种情况。
adb.exe的版本不一样?手机电脑重启也没用,搞不清楚。
正常运行到崩溃,日志就多了条:
[error] scrcpyProcess.stderr.data: WARN: Device disconnected

关于添加悬浮按钮菜单的问题

对于我这种记不住快捷键的人来说,吸附悬浮菜单按钮还是挺有用的。
不知道楼主有没有对应的方案,没有的话就算了。
另外我在Mac上点退出选择最小化到dock的时候,没办法再让程序显示了。只能退出再重新打开。
image
image

无法使用多屏协同

安卓 11, 可以使用屏幕镜像, 但是无法多屏协同,.
点击后手机屏幕会显现几个半透明的屏幕闪过去, 但是没有任何反映.
小米MIX3, 刷的 Pixel 系统,已经 Root

第一次下载使用本软件, 没有成功连接上过

应用版本:V1.9.1
运行环境:Windows 11 x64
触发操作:无论是点开始镜像或无线模式的连接设备都无法连接
image

我是第一次下载使用本软件, 没有成功连接上过

释放在安装目录 D:\Program Files\Escrcpy\resources\extra\core\ 的 scrcpy.exe 双击是能正常运行的

打开控制窗口后,如果windows 系统 切换远程桌面,会导致控制窗口假死

因为我又远程办公的需求,我把手机放在家里,用家里的手机连接电脑,在自己的公司远程桌面控制手机,但因为家里的显示器分辨率与办公室的分辨率不一致,每次切出远程桌面,都会导致已经打开的控制窗口假死失效,只能重新打开,如果我手机多了又要重新排布窗口的位置,很麻烦,希望能够解决
image

无法无线WiFi连接

同一局域网下,首次通过USB连接后,输入手机无线IP地址后,显示目标计算机积极拒绝访问,连接失败的错误提示框。通过其他投屏软件辅助连接无线投屏一次后此设备才能正常无线投屏,如果再连接其他新设备后又不行,必须再辅助一次,后面才能正常使用。
image
USB连接后能否就直接显示该设备的无线(不显示)和有线设备(显示),看其他同类投屏软件都可以的。
image

各位是否遇到丢音的问题?

就是时不时声音断一下,尤其是在操作其他应用的情况下。比如打开别的软件,浏览器开新的网页等操作。

添加群组

一 分组:

  1. 设备连上后,记录这台设备的指纹
  2. 在设备上,可进行分组管理。分组设计成,1台手机可以为,多个组。
  3. 在某个分组里面,可批量进行操作。

二 操控:
除了一般的一次性操作。能不能支持脚本管理。可以填入,自己定义的脚本。并且可以自定义多个,作为任务。
而这些任务,都可以随便执行?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.