Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1301|回复: 1
打印 上一主题 下一主题

QtScrcpy

[复制链接]

1228

主题

1996

帖子

7570

积分

认证用户组

Rank: 5Rank: 5

积分
7570
跳转到指定楼层
楼主
发表于 2020-10-1 23:35:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Android实时投屏
文章目录
[url=][/url]


一、项目信息
项目名称:QtScrcpy
项目简介:Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限
项目作者:Barryda
开发语言:C++ Qt Widgets
开源许可协议:Apache-2.0
关于开源协议:Apache-2.0
百度搜索都是长篇大论,简单点说吧,参考开源许可证通俗解释
BSD、Apache 2.0 相对GPL/LGPL的开放源代码,BSD,Apache 2.0就宽松许多——商业软件可以任意的使用BSD,Apache 2.0发布的软件代码,而不需要开放源代码,只需要提及代码的原出处就可以了。BSD和Apache 2.0提及的方式稍有不同
二、项目详细介绍
QtScrcpy可以通过USB(或通过TCP/IP)连接Android设备,并进行显示和控制。不需要root权限。
单个应用程序最多支持16个安卓设备同时连接。
同时支持GNU/Linux,Windows和MacOS三大主流桌面平台
它专注于:
  • 精致 (仅显示设备屏幕)
  • 性能 (30~60fps)
  • 质量 (1920×1080以上)
  • 低延迟 (35~70ms)
  • 快速启动 (1s内就可以看到第一帧图像)
  • 非侵入性 (不在设备上安装任何软件)
windows上运行
windows上运行
mac上运行
mac上运行
ubuntu上运行
ubuntu上运行
2.1 自定义按键映射(仅windows&MacOS平台开启)
可以根据需要,自己编写脚本将PC键盘按键映射为手机的触摸点击,编写规则在这里
默认自带了针对和平精英手游和抖音进行键鼠映射的映射脚本,开启平精英手游后可以用键鼠像玩端游一样玩和平精英手游,开启抖音映射以后可以使用上下左右方向键模拟上下左右滑动,你也可以按照编写规则编写其他游戏的映射文件,默认按键映射如下:
针对和平精英手游和抖音进行键鼠映射
自定义按键映射操作方法如下:
  • 编写自定义脚本放入keymap目录
  • 点击刷新脚本,确保脚本可以被检测到
  • 选择需要的脚本
  • 连接手机并启动服务之后,点击应用脚本
  • 按~键(数字键1左边)切换为自定义映射模式即可体验(具体按什么键要看你按键脚本定义的switchKey)
  • 再次按~键切换为正常控制模式
  • 要想wasd控制开车记得在载具设置中设置为单摇杆模式
2.2 群控
你可以同时控制所有的手机
群控
2.3 感谢
基于Genymobilescrcpy项目进行复刻,重构,非常感谢。QtScrcpy和原版scrcpy区别如下:
关键点scrcpyQtScrcpy
界面sdlqt
视频解码ffmpegffmpeg
视频渲染sdlopengl
跨平台基础设施自己封装Qt提供
编程语言CC++
编程方式同步异步
按键映射不支持自定义支持自定义按键映射
编译方式meson+gradleQt Creator
  • 使用Qt可以非常容易的定制自己的界面
  • 基于Qt的信号槽机制的异步编程提高性能
  • 方便新手学习
  • 增加多点触控支持
2.4 学习它
如果你对它感兴趣,想学习它的实现原理而又感觉无从下手,可以选择购买我录制的视频课程, 里面详细介绍了整个软件的开发架构以及开发流程,带你从无到有的开发QtScrcpy:
或者你也可以加入我的QtScrcpy QQ群,和志同道合的朋友一块互相交流技术:
QQ群号:901736468
2.5 要求
Android部分至少需要API 21(Android 5.0)。
您要确保在Android设备上启用adb调试
2.6 下载这个软件
Windows
Windows平台,你可以直接使用我编译好的可执行程序:
你也可以自己编译
Mac OS
Mac OS平台,你可以直接使用我编译好的可执行程序:
你也可以自己编译
Linux
目前只提供了windows和mac平台的可执行程序,如果需要linux平台的可执行程序,
您通常需要自己编译。别担心,这并不难。
目前只在ubuntu上测试过
2.7 运行
在你的电脑上接入Android设备,然后运行程序,按顺序点击如下按钮即可连接到Android设备
运行
2.7.1 无线连接步骤(保证手机和电脑在同一个局域网):
  • 安卓手机端在开发者选项中打开usb调试
  • 通过usb连接安卓手机到电脑 3.点击刷新设备,会看到有设备号更新出来
  • 点击获取设备IP
  • 点击启动adbd
  • 无线连接
  • 再次点击刷新设备,发现多出了一个IP地址开头的设备,选择这个设备
  • 启动服务
备注:启动adbd以后不用再连着usb线了,以后连接断开都不再需要,除非安卓adbd停了需要重新启动
2.7.2 界面按钮介绍:
  • 启动配置:启动服务前的功能参数设置 分别可以设置本地录制视频的比特率、分辨率、录制格式、录像保存路径等。
    • 仅后台录制:启动服务不现实界面,只是录制Android设备屏幕
    • 窗口置顶:Android设备视频窗口置顶显示
    • 自动息屏:启动服务以后,自动关闭Android设备屏幕节省电量
    • 使用reverse:服务启动模式,出现服务启动失败报错more than one device可以去掉这个勾选尝试连接
  • 刷新设备列表:刷新当前连接的设备
  • 启动服务:连接到Android设备
  • 停止服务:断开与Android设备的连接
  • 停止所有服务:断开所有已连接的Android设备
  • 获取设备ip:获取到Android设备的ip地址,更新到“无线”区域中,方便进行无线连接
  • 启动adbd:启动Android设备的adbd服务,无线连接之前,必须要启动。
  • 无线连接:使用无线方式连接Android设备
  • 无线断开:断开无线方式连接的Android设备
  • adb命令行:方便执行自定义adb命令(目前不支持阻塞命令,例如shell)
2.7.3 主要功能
  • 实时显示Android设备屏幕
  • 实时键鼠控制Android设备
  • 屏幕录制
  • 截图为png
  • 无线连接
  • 最多支持16台设备连接(PC性能允许的情况下可以增加,需要自己编译)
  • 全屏显示
  • 窗口置顶
  • 安装apk:拖拽apk到视频窗口即可安装
  • 传输文件:拖拽文件到视频窗口即可发送文件到Android设备
  • 后台录制:只录制,不显示界面
  • 复制粘贴 在计算机和设备之间双向同步剪贴板:
    • Ctrl + c将设备剪贴板复制到计算机剪贴板;
    • Ctrl + Shift + v将计算机剪贴板复制到设备剪贴板;
    • Ctrl +v 将计算机剪贴板作为一系列文本事件发送到设备(不支持非ASCII字符)。
  • 群控
2.7.4 快捷键功能快捷键(Windows)快捷键 (macOS)
切换全屏Ctrl+fCmd+f
调整窗口大小为 1:1Ctrl+gCmd+g
调整窗口大小去除黑边Ctrl+x | 左键双击Cmd+x | 左键双击
点击 主页Ctrl+h | 点击鼠标中键Ctrl+h | 点击鼠标中键
点击 BACKCtrl+b | 右键双击Cmd+b | 右键双击
点击 APP_SWITCHCtrl+sCmd+s
点击 MENUCtrl+mCtrl+m
点击 VOLUME_UPCtrl+↑ (上)Cmd+↑ (上)
点击 VOLUME_DOWNCtrl+↓ (下)Cmd+↓ (下)
点击 POWERCtrl+pCmd+p
打开电源右键双击右键双击
关闭屏幕 (保持投屏)Ctrl+oCmd+o
打开下拉菜单Ctrl+nCmd+n
关闭下拉菜单Ctrl+Shift+nCmd+Shift+n
复制设备剪切板到电脑Ctrl+cCmd+c
粘贴电脑剪切板到设备Ctrl+vCmd+v
复制电脑剪切板到设备Ctrl+Shift+vCmd+Shift+v
鼠标左键双击黑色区域可以去除黑色区域
如果电源关闭,鼠标右键双击打开电源;如果电源开启,鼠标右键双击相当于返回
三、TODO四、FAQ五、开发者
欢迎大家一起维护这个项目,贡献自己的代码,不过请遵循一下几点要求:
  • pr请提到dev分支,不要提到master分支
  • 提pr之前请先rebase dev
  • pr请以少量多次的原则提交(建议一个小的功能点提一个pr)
  • 代码风格请保持和已有风格一致
六、为什么开发QtScrcpy?
综合起来有以下几个原因,比重从大到小排列:
  • 学习Qt的过程中需要一个项目实战一下
  • 本身具有音视频相关技能,对音视频很感兴趣
  • 本身具有Android开发技能,好久没用有点生疏,需要巩固一下
  • 发现了scrcpy,决定用新的技术栈(C++ + Qt + Opengl + ffmpeg)复刻一下
七、如何编译
尽量提供了所有依赖资源,方便傻瓜式编译。
PC端
  • 目标平台上搭建Qt开发环境(Qt >= 5.12.0, vs >= 2017 (不支持mingw))
  • 克隆该项目
  • 使用QtCreator打开项目根目录all.pro
  • 编译,运行即可
Android端 (没有修改需求的话直接使用自带的scrcpy-server即可)
  • 目标平台上搭建Android开发环境
  • 使用Android Studio打开项目根目录中的server项目
  • 第一次打开如果你没有对应版本的gradle会提示找不到gradle,是否升级gradle并创建,选择取消,取消后会弹出选择已有gradle的位置,同样取消即可(会自动下载)
  • 按需编辑代码即可,当然也可以不编辑
  • 编译出apk以后改名为scrcpy-server并替换third_party/scrcpy-server即可
八、Licence
由于是复刻的scrcpy,尊重它的Licence
[size=1em][size=1em]Copyright[size=1em] [size=1em]([size=1em]C[size=1em])[size=1em] [size=1em]2020[size=1em] Barry

[size=1em]

[size=1em]Licensed under the Apache License, Version [size=1em]2.0[size=1em] [size=1em]([size=1em]the [size=1em]"License"[size=1em])[size=1em];

[size=1em]you may not use [size=1em]this[size=1em] file [size=1em]except[size=1em] [size=1em]in[size=1em] compliance with the License.

[size=1em]You may obtain a copy [size=1em]of[size=1em] the License at

[size=1em]

[size=1em]    http[size=1em]://www.apache.org/licenses/LICENSE-2.0[size=1em]

[size=1em]

[size=1em]Unless required by applicable law or agreed to [size=1em]in[size=1em] writing, software

[size=1em]distributed under the License is distributed on an [size=1em]"AS IS"[size=1em] BASIS,

[size=1em]WITHOUT WARRANTIES OR CONDITIONS [size=1em]OF[size=1em] ANY KIND, either express or implied.

[size=1em]See the License [size=1em]for[size=1em] the specific language governing permissions and

[size=1em]limitations under the License.



九、关于作者
一枚普通的程序员,工作中主要使用C++进行桌面客户端开发,一毕业在山东做过一年多钢铁仿真教育软件,后来转战上海先后从事安防,在线教育相关领域工作,对音视频比较熟悉,对音视频领域如语音通话,直播教育,视频会议等相关解决方案有所了解。同时具有android,linux服务器等开发经验。

回复

使用道具 举报

1228

主题

1996

帖子

7570

积分

认证用户组

Rank: 5Rank: 5

积分
7570
沙发
 楼主| 发表于 2020-10-1 23:37:21 | 只看该作者
无功能限制的开源软件Scrcpy https://github.com/Genymobile/scrcpy


Simon Ma为它开发了一个直观简单易用的图形界面——Scrcpy-GUI   https://github.com/Tomotoes/scrcpy-gui


还有一个GUI,QtScrcpy也非常优秀  https://github.com/barry-ran/QtScrcpy
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-20 18:44 , Processed in 0.061461 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表