当前位置: 首页 > news >正文

QScrCpy源码解析(4)获取手机端数据知识补充

一.知识点补充

1.abd

adb是用来在电脑端对手机进行调试的一个控制程序,通过命令行启动,adb会解析你的命令,对手机进行相对应的控制目前,主流的设备系统都支持adb调试,安卓,鸿蒙,澎湃等

2引入scrcpy.sever

scrcpy.sever是一个运行在安卓系统上的脚本(国产系统大多进行了兼容)服务,可以获取安卓手机的屏幕信息,然后压缩成h.264格式发送给电脑

3端口映射(采用127.0.0.0系列的本地ip)

A db中存在一种端口映射的机制,他可以使得adb forward进行手机端的电脑端端口的映射

我们在电脑端监听对应的端口,当手机的信息发送到设定好的映射端口之后,a db就会自动的把数据传递给我们,电脑端监听对应的端口收到信息之后就可以进行数据的读取,以此达成电脑端和手机端进行通信的目的。

此时,如果采用的方式是USB进行连接,传输的数据会直接通过USB线进行发送,默认的传输协议是TCP,而不会经过网卡,如果是WIFI进行连接的话,首先,我们需要打开手机的一个局域网IP热点,他会通过网卡进行一个数据的传输。

adb的端口映射,最终目的是为了绕过防火墙的机制,我们在使用adb的时候,一般会以管理员进行程序的执行,同时,我们电脑端和手机端的端口映射使用的一般是本地的IP地址,防火墙对于本地的IP 一般是不做限制的,并且我们使用的端口是5555,这个端口一般防火墙不会重点关注。

A db的端口应试,它又分为正向隧道和反向隧道两种。在本项目中,我们需要让设备中的数据传递到我们的电脑中,所以本次我们采用正向隧道的方法。

3手机端的视频硬件加速和视频推理服务

手机端的执行流程大概是通过scrcpy.sever进行一个视频推流(非截图方式,采用的是手机端的mediacodec硬件进行数据编码的加速,mediaprojection进行捕获屏幕和创建虚拟显示器)暂不详细讨论

而这一切都需要启动视频推流服务,启动之后,可以对当前端口的服务器进行一个优化,以及指定视频推流协议

 

4 h.264

H点264格式是视频压缩的一种算法格式,通过这样的压缩算法,可以将数据量大大的压缩,从而提升传输的一个效率,同时也不会过分的压缩导致服务端和客户端编码解码的困难。

 

5FM pack

FM peck可是用来对于数据进行解码和封装的一种工具,当我们的电脑端接收到手机端发送来的数据之后,可以用FM pack进行数据的解析,得到一个未压缩的数据,Yu v或者rgb格式

6OpenGL

使用OpenGL进行屏幕的一个渲染QT中内置的有一个q openglwidget类,可以快速的渲染得到的数据

 

 

 

 

 

 

 


http://www.mrgr.cn/news/98226.html

相关文章:

  • RVOS-4.实现上下文切换和协作式多任务
  • 大模型到底是怎么产生的?一文了解大模型诞生全过程
  • KTransformers安装笔记 利用docker安装KTransformers
  • 句句翻译。
  • mysql安装-MySQL MGR(Group Replication)+ ProxySQL 架构
  • 【初入职场】文件地狱大逃亡:运维侠Python自动化逆袭之路4整理术(日省3h摸鱼真经)
  • 探秘数据库连接池:HikariCP与Tomcat JDBC
  • 第16届蓝桥杯c++省赛c组个人题解
  • Rasa 模拟实现超简易医生助手(适合初学练手)
  • Google 官方提示工程 (Prompt Engineering)白皮书 总结
  • JavaWeb-04-Web后端基础(SpringBootWeb、HTTP协议、分层解耦、IOC和DI)
  • Agent革命:Google AI白皮书解密未来智能体的进化之路
  • 双指针、滑动窗口
  • FTXUI 笔记(五)——基本交互组件
  • Java—— 文字版格斗游戏
  • 一种基于学习的多尺度方法及其在非弹性碰撞问题中的应用
  • 【Linux实践系列】:匿名管道收尾+完善shell外壳程序
  • # Shell脚本参数设计规范(DeepSeek指导)
  • 大模型到底是怎么产生的?一文揭秘大模型诞生全过程
  • Redis之缓存更新策略