zoukankan      html  css  js  c++  java
  • iOS 系统级别录屏方式调研

    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

  • 相关阅读:
    appium python api(转)
    make clean 与 make distclean 的区别
    实参相依查找[条款25]----《C++必知必会》
    成员函数查找[条款24]---《C++必知必会》
    C++匿名名字空间
    程序界面多语言切换功能如何实现
    C 语言中 define 的全部使用方法总结
    #if defined(__cplusplus)
    伯乐在线
    jsp手动分页
  • 原文地址:https://www.cnblogs.com/doudouyoutang/p/7892030.html
Copyright © 2011-2022 走看看