ubuntu18.04 使用scrcpy将安卓手机投屏到电脑
最近看了关于手机投屏的功能,本来打算跑个miracast的demo玩玩,奈何电脑网卡不支持wifi direct,网上搜索发现有个开源的库scrcpy可以实现有线投屏,scrcpy项目github地址。
安装方式可以选择apt的方式,也可以选择源码编译。我选择了源码编译,其中遇到了不少问题,现在记录一下。
1 编译安装步骤
1 下载源码
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh
2 安装依赖
该项目依赖ffmpeg与SDL2,安装方法可以参考其他博客,该项目的github里也有相关说明。
3 meson build
执行meson build脚步,需要提前安装meson。
meson x --buildtype release --strip -Db_lto=true
执行这一步的时候出现了Dependency "libavformat"not found的错误,出错的地方是app/meson.build文件,是因为编译是找不到ffmpeg的库。
修改app/meson.build文件中添加ffmpeg的地方,将依赖路径改为本机ffmpeg的安装地址,位置大概在47行。
修改前:
if not get_option('crossbuild_windows')# native buildffmpeg_dir = '/usr/local/ffmpeg/lib'SDL_dir = '/usr/include/SDL/lib'dependencies = [dependency('libavformat'),dependency('libavcodec'),dependency('libavutil'),dependency('sdl2'),]if v4l2_supportdependencies += dependency('libavdevice')endifelse
修改后:
if not get_option('crossbuild_windows')# native buildffmpeg_dir = '/usr/local/ffmpeg/lib'SDL_dir = '/usr/include/SDL/lib'dependencies = [#dependency('libavformat'),#dependency('libavcodec'),#dependency('libavutil'),#dependency('sdl2'),cc.find_library('libavformat', dirs: ffmpeg_dir),cc.find_library('libavcodec', dirs: ffmpeg_dir),cc.find_library('libavutil', dirs: ffmpeg_dir),cc.find_library('SDL2', dirs: SDL_dir),]if v4l2_support#dependencies += dependency('libavdevice')dependencies += [cc.find_library('libavdevice', dirs: ffmpeg_dir)]endifelse
修改后执行又报了libavformat头文件找不到的错误。
同样修改app/meson.build文件,位置大约在148行,修改后:
src_dir = [include_directories('/usr/local/ffmpeg/include/'),include_directories('src')
]
这下meson build就可以执行过去了。
4 编译
执行以下命令:
ninja -Cx
njnja 相当于 make, 所以上面会编译代码。编译后出现了scrcpy-server编译不过的问题。
原因是没有安装android SDK,安装方法参考这篇博客。
安装后执行:
export ANDROID_SDK_ROOT=/usr/local/android-sdk/android-sdk-linux/
需要替换为自己的SDK安装路径。
安装后执行ninja -Cx仍出现Failed to install the following Android SDK packages as some licences have not been accepted.错误。
解决方法:
android list sdk --all
android update sdk -u --all --filter 1,2,3,5,11,12,22,23,24,25,26,27,28,29,88,89
android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository
cd 到android SDK安装目录
/android-sdk-linux/tools/bin
执行:
sudo ./sdkmanager --update
有可能因JDK版本过高而出现Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema错误。
我的电脑里默认安装了java11,查看版本方式:
java -version
解决方案,安装JDK8,将java默认版本设置为8。
安装JDK8:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
切换默认JDK:
sudo update-alternatives --config java
输出对应序号即可切换。
至此编译遇到的所有问题得以解决,顺利编译成功。
2 执行效果
编译好后用usb连上手机,打开usb调试功能,注意要是安卓手机才可以,执行
./run x
效果如下:
效果挺不错,而且还可以在电脑上用鼠标操作手机,很强大,具体一些好玩的命令参考项目github网站,后期打算看一看项目源码。
ubuntu18.04 使用scrcpy将安卓手机投屏到电脑相关推荐
- android win10 投屏,安卓手机投屏WIN10电脑为什么一直不成功
原标题:安卓手机投屏WIN10电脑为什么一直不成功 不知道大家有没有发现一个问题,那就是手机投屏Win10电脑,网上都大把大把的教程,但是前提条件都是智能手机与Win10电脑系统,然后在同一个局域网环 ...
- 安卓手机投屏到电脑的问题可以通过一个神器解决
安卓手机投屏到电视很容易,大部分人都会使用手机自带的投屏功能,但是怎么投屏到电脑上并且还能用电脑操作手机呢?毕竟这是非常方便的一件事.如果我们需要投屏到电脑显示屏上,经过我多次测试后发现,我们只需要在 ...
- linux mint 让安卓手机投屏到电脑
1.安装 sudo apt install scrcpy 2.连接手机,启用usb调试 lsusb //确认连接 3.运行 scrcpy //运行 其他设置(无线连接手机投屏 ) adb shell ...
- 银河麒麟桌面系统V10(SP1) apt 源安装 scrcpy 安卓手机投屏到电脑
安装scrcpy sudo apt install scrcpy 安装日志 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需 ...
- 安卓手机投屏软件_直播教程 | 安卓手机投屏队伍语音解决方案1
安卓手机投屏队伍语音解决方案1 主播大大好啊! 我们之前的文章讲过安卓手机投屏到直播电脑的手游直播教程,使用台式机+投屏的方式,这样无论是游戏体验,还是直播的观看体验,都会好很多,这是也是被手游主播普 ...
- 免费的安卓手机投屏工具盘点:手机声音传输到电脑竟然如此简单?
安卓投屏工具哪个好用?直播投屏的时候怎么把手机声音传输到电脑?随着直播行业的持续火热,各种直播平台越来越多,像大家熟悉的斗鱼.虎牙等都有大量的主播.这其中游戏主播也不占少数,直播手游的都知道,在直播的 ...
- scrcpy设置快捷键_Scrcpy投屏控制器下载|Scrcpy(安卓手机投屏神器)附使用教程 v1.16官方版...
Scrcpy是一款集投屏.控制为一体的手机工具,当我们的安卓手机通过WIFI.或USB连接到电脑的时候可以使用Scrcpy进行投屏,还可以对手机进行控制!非常好用的安卓手机投屏神器,最大的特点是手机无 ...
- Ubuntu安卓手机投屏
之前还在用windows的时候,360有自带的手机管家可以将手机屏幕投放在电脑屏幕上,而切了Ubuntu之后,这个需求就一直无法实现. 其实解决方案很简单,只需要使用scrcpy框架就可以了,然而如果 ...
- 511遇见安卓手机投屏支持一键转无线群控
我们玩手游,投屏到电脑,提示游戏体验,还有一些APP不支持模拟器,我们可以投屏到电脑进行脚本群控操作 511遇见安卓手机投屏基本设置 软件说明 支持所有品牌的安卓手机. 支持最新的华为(Harmony ...
- 多个安卓设备投屏到电脑_辅助多手机同时直播控场 TotalControl手机投屏软件
双十一就快到了,很多卖家开始在多个直播平台开启直播带货,当直播的设备比较多的时候,控场小伙伴往往忙不过来,不能即时回复买家的问题,显然会影响商品的出售数量. 为了备战双十一购物节,小编尝试了多款直播辅 ...
最新文章
- request.getparameter特殊字符变成?号问号_15 个不可不知的 Linux 特殊字符,你懂几个?...
- OpenGL 颜色Colors
- C语言实现并查集(Disjoint set或者Union-find set)(附完整源码)
- zabbix mysql脚本_zabbix监控mysql脚本
- Qt工作笔记-Qt5新版信号与槽
- Spring MVC拦截器~~~登陆验证拦截
- paip.刮刮卡砸金蛋抽奖概率算法跟核心流程.
- nodejs菜鸟教程
- 你为什么要离开上一家公司?
- 微信小程序如何获取用户绑定手机号
- php 生成国税局二维码
- android rtmp推流,使用MediaCodec和RTMP做直播推流
- 华为起诉最新进展,国内航司暂停运行有关客机,收买家庭不得继续抚养被解救儿童,脸书创始人后悔没早学微信,这就是今天的大新闻...
- 阿里云的mysql问题
- 蔡高厅高等数学23-导数的几何意义、可导与连续的关系
- 原创 | 既生synchronized,何生volatile?!
- 淘宝号标签,,猜你喜欢推荐,消费潜力值,淘宝号的千人千面,购物足迹,潜在购买类目,淘宝号的潜在成交词,官方推荐的搜索词,淘宝标签查询,淘宝号是否打上标签,标签透视,标签接口,猜你喜欢接口,
- Zoom Meeting App操作说明
- GRPC、WCF、WebAPI性能比较
- 灰点工业网口相机多相机同时使用
热门文章
- Ego Graph概念介绍
- 关于“程序员996”,互联网大神发话了,能顶用吗?
- python函数的位置参数(Positional)和关键字参数(keyword)
- Android系统里面的服务器和客户端的概念解析
- sublime text3 主题-Boxy Theme
- 8/3 MATLAB绘制正态分布概率密度函数(normpdf)图形
- “快手极速版”的模拟器多开方法
- win10专业版无法安装更新解决方法
- VScode光标乱跳、换行失灵、保存导致光标乱跳等解决办法
- 6-10 找出大于num的最小素数