Audio
1、iOS 框架
MediaPlayer 、 AudioToolbox 、 AudioUnit 、 AVFoundation 、 AVKit 、 OpenAL。其中MediaPlayer 、 AVFoundation 是基于 Objective-C/Swift 的; AudioToolBox 、 AudioUnit 和 OpenAL 是基于 C 的。
2、第三方库
FFmpeg 、 FAAC 、 FAAD2。
使用 MediaPlayer 框架的 MPMusicPlayerController 播放音频文件。
使用 AudioToolbox 框架的 System Sound Services 播放音频文件、 Audio Queue Services 录制和播放音频数据、 Audio Converter Services 进行音频转码(格式、 bit-depth 和采样率)、 Audio File Services 和 AudioFileStream 读写音频文件。
使用 AudioUnit 框架进行回音消除、音频数据录制和播放等。
使用 AVFoundation 框架的 AVAudioSession 操作音频会话、 AVAudioFile(iOS8) 读写音频文件、 AVAudioRecorder 录制音频文件、 AVAudioPlayer 和 AVPlayer 播放音频文件、 AVCaptureSession 录制音频和视频数据。
在 iOS 8 之前使用 AVFoundation 框架的 AVAssetWritter 将 PCM 音频写入 AAC LC 编码格式的音频文件,而且使用的是硬编码。
在 iOS 8 及以后可以使用 AVFoundation 框架的 AVAudioEngine 进行均衡器、混响和混音等操作,其基于底层的 AudioUnit ,但比后者更易用。
在 iOS 8 及以后可以使用 AVKit 框架的 AVPlayerController 播放音频文件或流。
使用 FAAC 将 PCM 软编码为 AAC LC。
使用 FFmpeg 或 FAAD2 将 AAC LC 软解码为 PCM 、 PCM 重采样(Resample)。
Video
1、iOS 框架
UIKit 、 MediaPlayer 、 AVFoundation 、 AVKit 、 VideoToolBox 、 GLKit(OpenGL ES) 。其中 UIKit 、 MediaPlayer 、 AVFoundation 和 AVKit 基于 Objective-C ; VideoToolBox 和 GLKit 基于 C 的。当然, GLKit 远远不只是可以渲染视频。
2、第三方库
FFmpeg 、 x264。
使用 UIKit 框架的 UIImagePickerController 录制包含音频的视频文件、 UIVideoEditorController 可对视频进行简单编辑。
使用 MediaPlayer 框架的 MPMoviePlayerViewController(MPMoviePlayerController/MPMoviePlayer) 播放视频文件或流。
使用 AVFoundation 框架的 AVPlayer 播放视频文件或流、 AVCaptureSession 录制视频帧。
在 iOS 8 之前使用 AVFoundation 框架的 AVAssetWritter 将 YUV 数据写入 H.264 编码格式的视频文件,而且使用的是硬编码。
在 iOS 8 及以后使用 VideoToolBox 框架将 YUV 视频数据硬编码为 H.264 ,以及将 H.264 硬解码为 YUV 视频数据。
在 iOS 8 及以后可以使用 AVKit 框架的 AVPlayerController 播放视频文件或流。
使用 GLKit 将 sRGB 或 YUV 视频数据渲染输出到屏幕。
使用 FFmpeg 将 H.264 软解码为 YUV 。
使用 x264 将 YUV 视频软编码为 H.264 。
1、官方资料
a:综合
Audio & Video Starting Point
Multimedia Programming Guide
Core Audio Overview
Audio Session Programming Guide
b.MediaPlayer
Media Player Framework Reference
iPod Library Access Programming Guide
c.Audio Toolbox
Audio Toolbox Framework Reference
Audio Queue Programming Guide
d.Audio Unit
Audio Unit Programming Guide
Audio Unit Hosting Guide For iOS
e.AV Foundation
AV Foundation Framework Reference
AV Foundation Programming Guide
f.编解码及文件格式
CAF File Overview
Core Audio Format Specification
Apple Core Audio Format Specification 1.0
g.WWDC
WWDC 2013 606 : Moving to AVKit and AVFoundation
WWDC 2014 503 : Direct access to media encoding and decoding
2、第三方资料
Learning Core Audio
Audio file format
Comparison of audio coding formats
List of codecs
List of open-source codecs
Comparison of video codecs
Comparison of video container formats
Color space (YUV、sRGB)
objc.io #12 相机与照片
objc.io #23 视频
objc.io #24 音频
http://msching.github.io/blog/2014/07/07/audio-in-ios/