iOS Media音视频框架

音频

Core Audio Overview
Multimedia Programming Guide

Core Audio

AudioToolbox

Record or play audio, convert formats, parse audio streams, and configure your audio session.

功能

音频转换服务 AudioConverterService

用于各种线性 PCM 音频格式之间的转换。也可以用于线性 PCM 与各种压缩音频格式的转换,比如将 PCM 音频流编码压缩为 AAC 音频格式,减少数据量。AudioConverter 直接使用硬件进行编码操作,支持AAC,MP3,ALAC音频编码格式。

音频队列服务 AudioQueueService

提供一个缓冲队列用来管理音频流,一般用于录音或者音频播放。

音频文件服务 AudioFileStream

主要用于解析音频流和音频流的读写。

系统声音服务 SystemSoundService

用来直接播放少于30秒的音频文件,非常简单快捷。

  • AudioQueue 和 AudioFileStream 结合配合使用可以实现网络音频流的播放功能。

Audio Queue Services Programming Guide

AudioToolbox

AudioUnit

Add sophisticated audio manipulation and processing capabilities to your app. Create audio unit extensions that generate or modify audio in a host app.

iOS 中的所有音频技术都建立在 AudioUnit 之上。只有当您需要最高程度的控制,性能或灵活性,或者只需直接使用音频单元即可获得特定功能(如声学回声消除)时,在项目中直接使用音频单元是正确的选择。

iOS中的音频框架

功能

具有低延迟的同时音频I / O(输入和输出),例如用于VoIP(互联网协议语音)应用。
  • 一般用于对低延迟要求高的情况,比如直播推送端的录音功能。
响应回放合成声音,例如用于音乐游戏或合成乐器
使用特定的音频单元功能,例如声学回声消除,混合或音调均衡
一种处理链架构,可让您将音频处理模块组合成灵活的网络。这是iOS中唯一提供此功能的音频API。

About Audio Unit Hosting

Core Audio

Use specialized data types to interact with audio streams, complex buffers, and audiovisual timestamps.

包含所有音频框架服务使用的通用的音频格式数据类型。

视频

AVFoundation

Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions.

AVFoundation

功能

AVAsset

Asset表示一个音频或者视频媒体资源,支持网络资源。

  • 可以获取到音视频的track。
  • AVAssetImageGenerator 可以获取到视频中的某一帧图像。
视频音频照片捕获

提供AVCapture相关的工具类实现捕获功能,支持直接生成音频,图片和视频文件。同时也支持获取实时捕获的数据流。

  • 捕获实时的数据流,通过CoreImage 进行滤镜处理,之后通过OpenGL 或者 Metal 渲染,可以实现拍照实时滤镜的功能。包括直播推流端推送视频数据流。
AVPlayer

AVPlayer 用于音视频的播放,支持网络文件的播放。可以实现一些简单的播放功能。

AVAudioSession

与系统音频进行交互,例如修改当前音频功能的模式,监听其他应用的音频播放。

音频
  • AVAudioPlayer用于播放本地音频文件。
  • AVAudioRecorder用于实现简单的录音功能,只能保存到本地文件,不能操作音频流。
  • AVAudioConverter 用于多种音频流格式的转换。
多媒体组合

提供 AVComposition 相关类用于多个源的音频和视频流的组合。

  • 给一个视频音频替换其他的声音文件。
  • 多个视频合成单个视频,单个视频分割为多个视频。
  • 多个音频文件混合,分割。
音视频导出

AVAssetReader 相关类用于本地音视频流的读取,支持多个流组合读取包括 AVComposition 生成的流。

  • 通过 AVAssetReader 获取视频流,通过 Core Image 实现视频播放实时滤镜的功能。
    AVAssetWriter 相关类用于将音视频流写入到本地文件,支持多个流同时写入。
Speech Synthesis

可以将文字转为音频播放。

AVFoundation Programming Guide

AVkit

Create view-level services for media playback, complete with user controls, chapter navigation, and support for subtitles and closed captioning.

AVPlayer 相关类提供音视频播放的功能。基于 AVFoundation 实现,继承自 UIKit,可以直接添加到 UIKit视图中使用。

AVKit

Core Audio Kit

Add user interfaces to audio units.

Core Audio Kit

Core Media

Represent time-based audio-visual assets with essential data types.

提供一些基础数据类型在多个音视频框架中共用。

Core Media

Core Video

Process digital video—including manipulation of individual frames—using a pipeline-based API and support for both Metal and OpenGL.

提供一个使用视频帧的渲染管道,支持 OpenGL 和 Metal 渲染。
  • 将视频流通过 OpenGL 或者 Metal 进行实时渲染,需要通过 Core Video的工具类对视频流进行 Texture转换。

Core Video

Media Player

Add the ability to find and play songs, audio podcasts, audio books, and more from within your app.

主要用于播放 iOS 音乐库中的音乐.

Media Player

VideoToolbox

Work directly with hardware-accelerated video encoding and decoding capabilities.

提供直接使用硬件加速的视频编码和解码功能

硬件编解码就是使用 GPU 进行编解码。相对 CPU 软解码,GPU 可以很少的占用 CPU 资源,速度快,更省电。支持 H.264 和 H.265 视频编码标准。

VideoToolbox

PhotoKit

Work with image and video assets managed by the Photos app, including those from iCloud Photos and Live Photos.

功能

访问系统相册和视频

PhotoKit

你可能感兴趣的:(iOS Media音视频框架)