从几个开源项目浅谈IOS视频流输出方案

IOS远程控制技术当中,最重要的环节是视频的输出,本文就目前出现的几种IOS视频流技术做一个实践和对比,重点会放在比较这几个方案在性能上的优缺点。

方案分析

IOS视频流方案,目前可以想到的有以下三种:

  1. 通过截屏获取图片,转换成视频流的形式,这种方法可见于facebook研发的WebDriverAgent(WDA)[1]技术,后由Appium进行维护,通过WDA的MJPEG服务接口获取屏幕截图,再用web-socket发送到浏览器端,就可以视觉上形成视频的效果。

  2. Apple自带的开发组件,获取视频流,比如屏幕音视频录制可以使用Apple开发组件:AirPlay、ReplayKit框架等。

  3. 使用MAC本身的QUICKTIME对IOS设备进行录制,这种方式需要通过程序来启用QUICKTIME。

实践和对比

这里根据几个开源项目,做一个不同技术方案的视频流效果对比。

为方便比较,展示视频流的应用架构基本一致,不同之处在于使用哪种方式去获取视频流,程序架构图如下:

1080×381 24.2 KB

流程图

1. WebDriverAgent MJPEG 图片服务器

这里我们用开源项目STF[2] 来观察WDA图片服务视频流的效果。我们部署