最近看了关于手机投屏的功能,本来打算跑个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将安卓手机投屏到电脑相关推荐

  1. android win10 投屏,安卓手机投屏WIN10电脑为什么一直不成功

    原标题:安卓手机投屏WIN10电脑为什么一直不成功 不知道大家有没有发现一个问题,那就是手机投屏Win10电脑,网上都大把大把的教程,但是前提条件都是智能手机与Win10电脑系统,然后在同一个局域网环 ...

  2. 安卓手机投屏到电脑的问题可以通过一个神器解决

    安卓手机投屏到电视很容易,大部分人都会使用手机自带的投屏功能,但是怎么投屏到电脑上并且还能用电脑操作手机呢?毕竟这是非常方便的一件事.如果我们需要投屏到电脑显示屏上,经过我多次测试后发现,我们只需要在 ...

  3. linux mint 让安卓手机投屏到电脑

    1.安装 sudo apt install scrcpy 2.连接手机,启用usb调试 lsusb //确认连接 3.运行 scrcpy //运行 其他设置(无线连接手机投屏 ) adb shell ...

  4. 银河麒麟桌面系统V10(SP1) apt 源安装 scrcpy 安卓手机投屏到电脑

    安装scrcpy sudo apt install scrcpy 安装日志 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需 ...

  5. 安卓手机投屏软件_直播教程 | 安卓手机投屏队伍语音解决方案1

    安卓手机投屏队伍语音解决方案1 主播大大好啊! 我们之前的文章讲过安卓手机投屏到直播电脑的手游直播教程,使用台式机+投屏的方式,这样无论是游戏体验,还是直播的观看体验,都会好很多,这是也是被手游主播普 ...

  6. 免费的安卓手机投屏工具盘点:手机声音传输到电脑竟然如此简单?

    安卓投屏工具哪个好用?直播投屏的时候怎么把手机声音传输到电脑?随着直播行业的持续火热,各种直播平台越来越多,像大家熟悉的斗鱼.虎牙等都有大量的主播.这其中游戏主播也不占少数,直播手游的都知道,在直播的 ...

  7. scrcpy设置快捷键_Scrcpy投屏控制器下载|Scrcpy(安卓手机投屏神器)附使用教程 v1.16官方版...

    Scrcpy是一款集投屏.控制为一体的手机工具,当我们的安卓手机通过WIFI.或USB连接到电脑的时候可以使用Scrcpy进行投屏,还可以对手机进行控制!非常好用的安卓手机投屏神器,最大的特点是手机无 ...

  8. Ubuntu安卓手机投屏

    之前还在用windows的时候,360有自带的手机管家可以将手机屏幕投放在电脑屏幕上,而切了Ubuntu之后,这个需求就一直无法实现. 其实解决方案很简单,只需要使用scrcpy框架就可以了,然而如果 ...

  9. 511遇见安卓手机投屏支持一键转无线群控

    我们玩手游,投屏到电脑,提示游戏体验,还有一些APP不支持模拟器,我们可以投屏到电脑进行脚本群控操作 511遇见安卓手机投屏基本设置 软件说明 支持所有品牌的安卓手机. 支持最新的华为(Harmony ...

  10. 多个安卓设备投屏到电脑_辅助多手机同时直播控场 TotalControl手机投屏软件

    双十一就快到了,很多卖家开始在多个直播平台开启直播带货,当直播的设备比较多的时候,控场小伙伴往往忙不过来,不能即时回复买家的问题,显然会影响商品的出售数量. 为了备战双十一购物节,小编尝试了多款直播辅 ...

最新文章

  1. request.getparameter特殊字符变成?号问号_15 个不可不知的 Linux 特殊字符,你懂几个?...
  2. OpenGL 颜色Colors
  3. C语言实现并查集(Disjoint set或者Union-find set)(附完整源码)
  4. zabbix mysql脚本_zabbix监控mysql脚本
  5. Qt工作笔记-Qt5新版信号与槽
  6. Spring MVC拦截器~~~登陆验证拦截
  7. paip.刮刮卡砸金蛋抽奖概率算法跟核心流程.
  8. nodejs菜鸟教程
  9. 你为什么要离开上一家公司?
  10. 微信小程序如何获取用户绑定手机号
  11. php 生成国税局二维码
  12. android rtmp推流,使用MediaCodec和RTMP做直播推流
  13. 华为起诉最新进展,国内航司暂停运行有关客机,收买家庭不得继续抚养被解救儿童,脸书创始人后悔没早学微信,这就是今天的大新闻...
  14. 阿里云的mysql问题
  15. 蔡高厅高等数学23-导数的几何意义、可导与连续的关系
  16. 原创 | 既生synchronized,何生volatile?!
  17. 淘宝号标签,,猜你喜欢推荐,消费潜力值,淘宝号的千人千面,购物足迹,潜在购买类目,淘宝号的潜在成交词,官方推荐的搜索词,淘宝标签查询,淘宝号是否打上标签,标签透视,标签接口,猜你喜欢接口,
  18. Zoom Meeting App操作说明
  19. GRPC、WCF、WebAPI性能比较
  20. 灰点工业网口相机多相机同时使用

热门文章

  1. Ego Graph概念介绍
  2. 关于“程序员996”,互联网大神发话了,能顶用吗?
  3. python函数的位置参数(Positional)和关键字参数(keyword)
  4. Android系统里面的服务器和客户端的概念解析
  5. sublime text3 主题-Boxy Theme
  6. 8/3 MATLAB绘制正态分布概率密度函数(normpdf)图形
  7. “快手极速版”的模拟器多开方法
  8. win10专业版无法安装更新解决方法
  9. VScode光标乱跳、换行失灵、保存导致光标乱跳等解决办法
  10. 6-10 找出大于num的最小素数