返回

AVCaptureOutput 的前世今生

IOS

在 iOS 生态系统中,AVCaptureOutput 是一个强大的工具,用于从设备摄像头或麦克风捕获音频或视频数据。它是一个灵活且可配置的组件,可以适应各种应用程序场景。在本文中,我们将深入探讨 AVCaptureOutput 的发展历程,从其诞生到当今的演变。

前传:捕捉照片——AVCaptureStillImageOutput

AVCaptureOutput 的故事始于 AVCaptureStillImageOutput,这是一个用于在 iOS 中捕捉静态照片的类。借助 AVCaptureStillImageOutput,开发人员可以访问设备的摄像头,并通过简单的 API 调用捕获图像。

AVCaptureOutput 的诞生

随着 iOS 设备功能的不断增强,对从摄像头捕获视频和音频的需求也随之增加。为了满足这一需求,苹果公司于 2011 年推出了 AVCaptureOutput。与 AVCaptureStillImageOutput 不同,AVCaptureOutput 允许开发人员捕获实时媒体数据。

视频捕获——AVCaptureVideoDataOutput

AVCaptureOutput 的第一个重大应用是视频捕获。通过 AVCaptureVideoDataOutput,开发人员可以访问原始视频帧,从而可以进行实时处理、分析和显示。该类为视频捕获提供了极大的灵活性,从而开启了增强现实、面部识别和运动跟踪等创新应用程序的可能性。

音频捕获——AVCaptureAudioDataOutput

AVCaptureOutput 很快扩展到支持音频捕获。借助 AVCaptureAudioDataOutput,开发人员可以从设备的麦克风获取音频样本。这使得可以构建语音识别、音频处理和音乐创作应用程序。

融合媒体——AVCaptureFileOutput

随着 AVCaptureOutput 的成熟,苹果公司推出了 AVCaptureFileOutput,它将视频和音频数据合并到单个文件中。这简化了视频录制过程,并允许开发人员轻松地保存媒体文件。

会话管理——AVCaptureSession

为了管理多个 AVCaptureOutput 实例以及输入设备(如摄像头和麦克风),苹果公司引入了 AVCaptureSession。AVCaptureSession 充当中心协调器,允许开发人员配置输入和输出设备,并控制媒体数据的流向。

异步捕获——AVCaptureOutputSynchronizer

随着 AVCaptureOutput 的使用越来越广泛,苹果公司认识到同步视频和音频数据流的重要性。因此,他们推出了 AVCaptureOutputSynchronizer,它允许开发人员协调多个 AVCaptureOutput 实例,以确保媒体数据始终保持同步。

硬件编解码器集成——AVCaptureHardwareAcceleratedEncoder

随着移动设备处理能力的不断提升,苹果公司推出了 AVCaptureHardwareAcceleratedEncoder,它利用设备的硬件编解码器进行视频编码。这大大提高了视频捕获和处理的性能和效率。

iOS 13 中的改进

在 iOS 13 中,AVCaptureOutput 迎来了多项重大改进,包括:

  • 录制 ProRes 视频
  • 使用多个麦克风进行音频捕获
  • 支持 Depth Capture 数据
  • 高帧率和 4K 分辨率视频录制

展望未来

AVCaptureOutput 的发展历程是一个不断创新的故事。随着移动设备技术的不断进步,我们预计 AVCaptureOutput 将继续扩展,为开发人员提供更强大的工具,用于从设备摄像头和麦克风捕获和处理媒体数据。

**