p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px ".PingFang SC"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px ".PingFang SC"; color: #454545; min-height: 21.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px "Helvetica Neue"; color: #e4af0a }
1、Airplay 投屏
手机系统兼容性:兼容iOS9、iOS10、iOS11(目前需要适配)系统,每次iOS系统升级,对应的Airplay Mirroring协议会更新,破解成本高。
运行环境:Airplay接收视频流端可以是PC或者是iOS手机上的App,手机App上面需要对视频流H264再次解码,性能消耗较大。
应用:目前主要录屏软件采用的方式是,将手机屏幕内容投屏到PC软件上。
2、ReplayKit2
手机系统兼容性:iOS11以上系统,官方提供的直播录屏方案,稳定性教好。
运行环境:需要App实现ReplayKit2框架的代码,跟随App,需要一定操作流程。
应用:直播App软件,在手机上面进行编码,对手机性能要求较高。
3、libimobiledevice方式
手机系统兼容性:iOS9(未验证)、iOS10、iOS11 以上系统,苹果的itunes USB协议破解版本,兼容性较好
运行环境:libimobiledevice代码开源,可以运行在MacOS、Windows、linux系统之上。需要USB将手机连接Mac。
应用:一些针对iOS手机的信息展示功能小软件
局限:libimobiledevice代码中有截屏功能,截屏每秒钟最多只有4帧,无法满足实时采集需求。
4、AVCaptureDevice deviceWithUniqueID 方式
手机运行环境:iOS系统都兼容
运行环境:MacOS系统,效果很好,QuickTime的采集方式。需要USB将手机连接Mac。
应用:暂时没有看到Mac上面的软件采用
相关代码:https://github.com/openstf/ios-minicap/blob/master/src/StreamClient.mm
其他平台实现:
该方式是最完美的方式,需要继续调研,Windows上面比较少见。有一个人宣称做出来了,但是没有公开代码。
https://plus.google.com/114395554184391775867/posts/N3pKpzK8A6K
https://github.com/huisinro/ios-usb-mirroring