0%

使用scrcpy在电脑上控制手机玩弹射世界

弹珠庆祝开服半年发了无料10连,朋友把小号给我让我玩玩。总是盯着手机屏幕也太累了,试试用scrcpy在电脑上挂auto吧。
对自己的脖子好一点
本文花费了大量时间做毫无意义的事情,不要浪费时间看了。

其实scrcpy这工具简单的不能再简单了,去年下半年也拿来挂过不少游戏。不过弹珠这种游戏最好还能兼顾一下清晰度和帧率,正好最近scrcpy更新了基于OpenGL的三线过滤,今天就拿来试试效果。

窗口大小与裁剪

选用的设备是一加7T,原生屏幕大小1080×2400,scrcpy的默认缩放是442×984
由于弹珠对于超长屏用了上下填充空白的方式适配,用scrcpy的时候希望能把上下裁掉。

先打开PS,量一下弹珠对屏幕的实际占用部分
主界面和副本界面分别用了两种填充方式
主界面:顶部填充145px,底部填充117px,中间实际部分是1080×2138
副本界面:顶部和底部分别填充了240px,中间实际部分是1080×1920

因为主界面较大,为了不造成UI缺失所以按照主界面作最低切割限制。但是如图所示副本界面的顶端游戏logo会切断不够美观,因此顶端切割部分在主界面范围的基础上稍微扩大一些,把logo包含进去。
出于没什么卵用的美观需求,把logo上下边的空白保留一样的16px。

最终切割区域如下,被红色覆盖区域就是窗口显示部分。
顶部填充94px,底部填充117px,中间实际大小为1080×2189

看一下scrcpy文档关于切割和缩放的部分。
PC端显示大小

1
scrcpy -m 1024

这里默认是限制较长的一边,另一边的长度由纵横比计算

屏幕裁剪

1
scrcpy --crop 1224:1440:0:0   # 1224x1440 at offset (0,0)

总结一下就是--crop [目标宽度]:[目标高度]:[起始x坐标]:[起始y坐标]
另外-m需要在–crop之后使用

最终的参数就是scrcpy --crop 1080:2189:0:94 -m 900

不过使用-m限制大小后,画质会有明显的劣化,虽然码率是默认的8M但是屏幕上会有大量色块存在。
默认使用direct3d渲染,之后换用OpenGL来测试一下低缩放后的效果。

缩小窗口后使用OpenGL渲染

按照scrcpy 1.13的更新,使用OpenGL的三线过滤能大幅度优化缩小时的显示效果,参数如下:

1
scrcpy --render-driver=opengl

使用ctrl+i开启控制台内的fps显示,比较OpenGL和Direct3D在-m 900下的画质和帧数

1
2
3
scrcpy --render-driver=opengl --crop 1080:2189:0:94 -m 900 
---
scrcpy --crop 1080:2189:0:94 -m 900

两者的帧数都很稳定,在副本内都是保持59-60fps上下浮动
画质对比如下图所示,左边是OpenGL,右边是Direct3D

总体显示上,OpenGL相对模糊一些,但是大幅度减少了图像变化时的色块,观感提升很多。

一些其它设置

运行时关闭屏幕

1
scrcpy -S

该功能在旧版的scrcpy中对Android 10支持不佳。目前的v1.13经测试已经可以做到运行时熄屏省电而不影响电脑端控制了。

修改窗口文字

1
scrcpy --window-title 'My device'

既然是专门用来玩弹珠的配置,那就设置成--window-title ワーフリ

限制最大帧率

1
scrcpy --max-fps 15

在之前的fps测试中偶见fps飙到80以上的,这里限制成60,--max-fps 60

总结

添加前文的这些参数,最终得到的启动命令如下:

1
scrcpy --render-driver=opengl --crop 1080:2189:0:94 -m 900 -S --window-title ワーフリ --max-fps 60

在scrcpy目录内新建为bat批处理文件,再发送到桌面快捷方式,之后就可以保护颈椎了。
还有很多scrcpy功能没用到,这东西确实是个很方便的工具,在免费和低延迟方面可能是目前最好的PC遥控手机工具。

欢迎在Weibo和Twitter关注我