v1.3.2-release正式公布啦~
该版本上新了Scrcpy投屏,然而安卓投屏曾经有MiniCap了。到底Scrcpy能带来怎么的体验呢?

以往Sonic应用的Minicap投屏

如果咱们把Minicap画质压缩到80,咱们能够看到投屏成果清晰度还是算高的:

而后咱们看一下带宽:

很显著,清晰度达到了咱们的要求,然而带宽切实是太高了,这还是我略微压缩过的,如果是一些分辨率稍大一点的手机,可能每帧达到1M左右,会造成FPS降落,而且局域网带宽重大负荷。

于是Sonic之前应用的是Minicap官网说的形式:

Usable to very smooth FPS depending on device. Older, weaker devices running an old version of Android can reach 10-20 FPS. Newer devices running recent versions of Android can usually reach 30-40 FPS fairly easily, but there are some exceptions. For maximum FPS we recommend running minicap at half the real vertical and horizontal resolution.

压缩投屏的分辨率来取得更高的FPS,踩过不少坑之后,拿到的清晰度就是咱们看到的

能够看到图片的文字都曾经比拟含糊,然而带宽的确升高了不少,FPS 也达到了顺畅的水准:

除此之外,我还做了丢帧,雷同图片的间接不发送,其余的抛弃三分之一的帧,然而带宽还是比拟高。
当然,Minicap还有一个很致命的毛病,兼容性太差了,不仅小米、vivo、LGE有兼容性问题,最新的华为P50都曾经无奈兼容了。

Scrcpy的晋升

Scrcpy咱们将socket桥接过来解决,间接发送h264裸流给前端渲染,清晰度是怎么样的呢?


能够看进去,投屏清晰度曾经和Minicap最清晰的时候有得一拼了(实践上比Minicap要略微清晰),那么他的带宽是多少呢?

对你没有看错,一帧根本不超10KB!
那么Scrcpy带来的投屏体验天然是很不错的,那为什么Sonic不间接舍弃Minicap呢?
Scrcpy也有一个毛病,就是会造成CPU功耗减少、设施发热会更重大一些,我认为这种危险应该让用户去衡量,于是将两种投屏形式都做进去,让用户能够切换着应用。

Scrcpy提供不少好的思路,iOS目前始终用wda的mjpegserver,带宽耗费和FPS都没能达到称心的水平,接下来,须要对iOS的投屏也要做一番优化了!