AndroidScreencast
AndroidScreencast copied to clipboard
works great but slow
got it working fine on ubuntu 14 with a motox (2nd gen), but it's really slow. maybe put option to change the frame rate?
It's quite hard to improve FPS, cause of the method, which is used to obtain phone screen images. When I'll have enough time - I'll try to provide more effective solution.
Hello! I am interested in this project, and I tested on several phones, and some have a slow refresh and other are quite fast, any reason ?
Hello. They all have same version of Android ? I think, it can be related to Input program implementation (it's part of Android platform and is written in C), cause now AndroidScreencast use DDMLIB - API to communicate with Android smartphone though ADB, without having any client. So in my opinion, it can be related to Android OS version, or your ADB version. Regards, Iurii.
Hi, actually i tested a Gt-I9505 CyanogenMod 13 Android 6.0.1 rooted, and this one is the slowest. Else i tested a galaxy A3 rom stock android 4.4 no rooted and A Galaxy Core Prime stock too and both are much more fast than the fisrt one.
I'm in ADB version 1.0.31, and i've just updated in version 1.0.32 (http://forum.xda-developers.com/htc-one/general/tool-updated-adb-version-1-0-32-fastboot-t2932160), it's a little more fast but still slow...
anyway it's usable, so i'll continue to follow your developpement and testing. Thanks for this work ! Fred.
Actually, right now have no time to invest in this project, so I don't know when it'll be refactor to work faster. Thanks for your interest, Fred. BR, Iurii.
really slow, can be better?
Maybe with some image-compression algorithms, or if Android will create some new ways to capture screen image, without phone client.
Hi , I found that if it can interest (only for samsung): http://www.samsung.com/us/sidesync/
personally, I found this Chrome extension which does the job pretty good: https://chrome.google.com/webstore/detail/vysor/gidgenkbbabolejbgbpnhbimgjbffefm?hl=en-US
@lutin44 , @phearme these apps, for sure, are great, but all require android client - and it's the main difference. With Android client it's really possible to make everything working much faster.
@phearme Vysor is crap, it works only with Ubuntu for Linux system and the dev is naughty.
@xSAVIKx perf are very bad for me (1 frame every 2 seconds), so this is impossible to play, watch a video or even write text, it's too slow.
$ adb --version
Android Debug Bridge version 1.0.36
Revision 7.1.1_r13
Phone: Elephone P7000 (Android 5.0)
@noraj1337 Hello, thanks for your response.
It should be mentioned that this application was not designed for such high-FPS activities. The main goal of the app was to be able to somehow use phone with the broken screen - it's just not the replacement for the RDP. I think you have to find something more suitable for your purposes.
@xSAVIKx You're right. Can you mention in the readme that the average FPS is under 1 frame per second ? Thanks for your answer. Do you know another app working without client (adb) or with a linux client that will allow me to mirror my phone and control it from my Linux PC via USB or local wifi? Seven Square too slow like AndroidScreencast, Droid@Screen doesn't work, Vysor doesn't work under Linux, TeamViewer QuickSupport not supported for my phone, and all commercial mirroring either don't work or use internet access.
@noraj1337 I don't think you'll find any app without client side and with any acceptable FPS rate - it's just limitation of the ADB and the way apps are obtaining screen images.
@xSAVIKx Yeah, you're right, thanks for your answer.
Just added an fps calculation. see https://github.com/xSAVIKx/AndroidScreencast/pull/42/commits The results are unsatisfactory on a Wifi adb connection:
18:56:54 [Screen Capturer] INFO ScreenCaptureRunnable - 0,06 fps 15388 msecs/frame
18:57:12 [Screen Capturer] INFO ScreenCaptureRunnable - 0,05 fps 18469 msecs/frame
18:57:29 [Screen Capturer] INFO ScreenCaptureRunnable - 0,06 fps 16989 msecs/frame
18:57:41 [Screen Capturer] INFO ScreenCaptureRunnable - 0,08 fps 11898 msecs/frame
18:57:57 [Screen Capturer] INFO ScreenCaptureRunnable - 0,07 fps 15355 msecs/frame
a simple screencap is still slow but at least 2 x quicker:
date;adb exec-out screencap -p > test.png;date
So 21 Mai 2017 19:06:58 CEST
So 21 Mai 2017 19:07:04 CEST
@WolfgangFahl I'd appreciate PR with something better than the current solution.
Iurii - thanx. I am investigating. e.g. ``` date;adb exec-out busybox gzip -fc /dev/graphics/fb0 > frame.zip;date So 21 Mai 2017 22:27:05 CEST So 21 Mai 2017 22:27:07 CEST
seems to be quicker
@WolfgangFahl yeap, but:
- IMO it's too device dependent
- How are you going to run such commands from the app?
I do plan to get rid of ddmlib
, but it's not so easy.
indeed busybox is not available on all devices and the access to the framebuffer might also be limited.
I found https://github.com/openstf/minicap which at least is some solution to get better fps
@WolfgangFahl, very interesting project. Probably I'd try to use this one instead of ADB.
But for sure, the problem will be to install binary for every phone and OS version... Not sure right now how to use it.
Hi all, I've take a look at minicap recently and it seems to works fine (for me). They have an example that runs on nodejs and we can use it through the browser.
Then I was wondering, (warning: pretty bad solution coming) if we could integrate the nodejs example like an iframe inside the java window, so we can have a fast screen mirroring through minicap and touch input through adb :smile: I know it's not the perfect/best solution, but I am guessing that it can be something feasible and easy to do. What do you think?
I've also found a project called adbmirror which uses minicap and have prebuilt binaries that the shell script pushes them automatically. However, the input doesn't work at all for me on his project (but minitouch through the command line does).
https://github.com/Genymobile/scrcpy