android - scrcpy 屏幕投影, (口碑相当好,5万多star, 可惜在我的root设备上没成功)
访问量: 1147
今天需要把android屏幕投到电脑上,我的系统是ubuntu18,所以搜了一下,看到了这个 scrcpy
不过安装后不好用,踩了一系列的坑(可能我的手机是root过的xiaomi吧)
安装:
sudo apt update
sudo snap install scrcpy
安装后,不好用. 运行命令: scrcpy -V verbose
1. ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (failed to map segment from shared object): ignored.
可以根据 https://stackoverflow.com/questions/53825857/error-ld-so-object-libgtk3-nocsd-so-0-from-ld-preload-cannot-be-preloaded 来解决
把下面这个放到 .bashrc 文件中:
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
然后运行这个:
sudo apt install gtk3-nocsd
2. 到这一步完全搞不定....我太难了 几乎没有有用的资料.搜索不到. 官方README中提到了encoder, 不过我还是用不了.
不适用snap ,使用手动的安装方式, 还是遇到这个问题.
(运行 scrcpy 之后出现的)
Exception on thread Thread[main,5,main] java.lang.IllegalArgumentException: Failed to initialize video/avc, error 0xfffffffe at android.media.MediaCodec.native_setup(Native Method) at android.media.MediaCodec.(MediaCodec.java:1864) at android.media.MediaCodec.createEncoderByType(MediaCodec.java:1827) at com.genymobile.scrcpy.ScreenEncoder.createCodec(ScreenEncoder.java:180) at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:78) at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:61) at com.genymobile.scrcpy.Server.scrcpy(Server.java:80) at com.genymobile.scrcpy.Server.main(Server.java:255) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:380)
3. 手动安装(ubuntu下)
参考:https://github.com/Genymobile/scrcpy/blob/master/BUILD.md#simple
思来想去,估计是 安卓的root包有问题.
我把问题记录在了 https://github.com/Genymobile/scrcpy/issues/2769