好奇问一下 scrcpy 是如何做到 p2p 远程投屏的?

101 天前
 MissTang

不是广告,就是想了解到底是怎么实现的

有没有类似的开源代码 测了一下确实可以 把安卓设备跨网投屏,还可以操作 用的是 scrcpy

laixi.app 应该是用易语言写的?

1270 次点击
所在节点    问与答
20 条回复
MissTang
101 天前
想用类似这个技术来做云手机出租
AoEiuV020JP
101 天前
scrcpy 本身就是开源的,
https://github.com/Genymobile/scrcpy
dsgvsn
101 天前
只要有 root ,让 adb 监听某个端口,然后内网穿透或者 ipv6 之类的就可以了
MissTang
101 天前
他这个不需要 root 插上数据线就可以
所以 应该是修改了 scrcpy 添加上了打洞?
tool2dx
101 天前
scrcpy 是用 adb 协议推了一个服务端 jar 到手机上运行,不断的抓屏打包成 H264/H265 ,通过 adb 协议发回到电脑。

但其实代码不复杂,大部分国内厂商都魔改过,去掉了 adb 协议,直接走 tcp 。这样手机都不用开 adb 。
MissTang
101 天前
@AoEiuV020JP 是的 开源的 但是他仅限于本机 USB 连接或者同一个局域网
MissTang
101 天前
@tool2dx 连 ADB 都不需要打开吗? 那如何把这个 jar 推送到手机运行
zbinlin
101 天前
我自己用,Wireguard 组网,手机 `adb tcp ip 5555`,在电脑上先用 `adb connect` 连上,然后使用 scrcpy 操作。
MissTang
101 天前
@zbinlin 我是想做个 p2p 方案 用于 云手机出租业务
他这个 2 端都没有组网 两端只需要安装他的软件就可以
想找找类似的开源项目看看
tool2dx
101 天前
@MissTang adb 推送一次 scrcpy-server.jar 就可以了,github 有魔改的版本是让你自己复制 jar 并运行。

官方视频流都走 adb 协议,不是很合理。最好还是走 tcp 。
MissTang
101 天前
@tool2dx 也就是说 还是需要 USB 调试权限,先推送一次 然后再关闭 USB 调试
但是 如果关闭 USB 调试 那会自动结束掉 scrcpy-server.jar 的进程吧?
zbinlin
101 天前
@MissTang 两端安他的软件不也类似组网的
MissTang
101 天前
@zbinlin 安装目录下看到了 kcp.dll
应该是 UDP 打洞了
LLaMA2
101 天前
不需要 root,手机用数据线插电脑

scrcpy 可以直接使用 adb 连接到手机

adb 本身与可以使用 tcp 连接

usb 接口又可以使用网络 usb 完成映射
kimzn33251
100 天前
“把安卓设备跨网投屏,还可以操作 用的是 scrcpy”
怎么确定是用的 scrcpy ?有什么痕迹么
非 root 方案就是录屏加推流,touch 事件再开个通道传输
云手机方案现在很成熟了,直接上机箱的
MissTang
100 天前
@kimzn33251 是 scrcpy 因为安卓进程列表里有 scrcpy 的包名
MissTang
100 天前
@kimzn33251 录屏的话,会容易被杀后台吧
cd605426287
56 天前
@MissTang scrcpy 启动的是有 adb 权限的进程,抓的是 surface 的内容,不会被杀
MissTang
54 天前
@cd605426287 通过 ADB 启动了 scrcpy 后
再关闭 USB 调试功能
scrcpy 还会处于运行状态吗?
cd605426287
54 天前
@MissTang 不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1061228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX