音视频编解码:视频基础2- 框架简要

一:AVFoundation

AVFoundation是可以用它来播放和创建基于时间的视听媒体的几个框架之一,它提供了基于时间的视听数据的详细界别上的OC接口。可以用它来检查、创建、编辑、重新编码媒体文件。也可以从设备得到输入流和实时捕捉回放过程中操控视频

1、音频播放和记录。播放音频文件可以使用AVAudioPlayer,录制音频文件可以使用AVAudioRecorder。还可以使用AVAudioSession来配置应用程序的音频行为。
2、媒体文件检查。提供检查正在使用的媒体文件的功能。可以查看媒体资源信息,比如是否可以回放、编辑、导出等,可以获取相关技术参数,比如内容持续时间,创建日期、播放音量等,此外还基于AVMetadataItem类提供功能强大的元数据支持。允许开发者读取关于媒体资源的描述信息。
3、视频播放。AV提供可以播放从本地或者远程流中获取的视频资源,并对视频播放和内容的展示进行控制。核心类是AVPlayer和AVPlayerItem,此外还可以整合其他更高级的功能,如控制子标题和章节信息等。
4、媒体捕捉。核心类是AVCaptureSession,作为所有活动的汇集点来接受摄像头设备由各路流反过来的电影和图片。是用来管理数据捕捉的中央协调对象,使用一个实例来协调从AV输入设备到输出的数据流。
5、媒体编辑。对媒体资源的整合和编辑提供了强有力的支持。允许修改和编辑独立的媒体片段、随时修改音频文件的参数以及添加动画标题和场景切换效果。
6、媒体处理。当需要执行更高级的媒体处理任务是,可以用AVAssetReader和AVAssetWriter类来实现这些功能。这些类提供了直接访问视频帧和音频样本的功能,可以对媒体资源进行任何更高级的处理。

二:FFmpeg

FFmpeg是一套可以用来记录、处理数字音频、视频,并将其转换为流的开源框架,采用LPL或GPL许可证,提供了录制、转换以及流化音视频的完整解决方案。它的可移植性或者说跨平台特性非常强大,可以用在Linux服务器、PC(包括Windows、Mac OS X等)、移动端设备(Android、iOS等移动设备)等平台。名称中的mpeg来自视频编码标准MPEG,而前缀FF是Fast Forward的首字母缩写

三:VideoToolbox

在iOS 8.0以后,系统提供了VideoToolbox编码API,该API可以充分使用硬件来做编码工作以提升性能和编码速度。本节就来讲解一下如何将一系列连续的纹理,利用VideoToolbox编码成一段H264的数据。首先来介绍VideoToolbox如何将一帧视频帧数据编码为H264的压缩数据,并把它封装到H264HWEncoderImpl类中,然后再将封装好的这个类集成进6.2.2节的预览系统中,集成进去之后,对于原来仅仅是预览的项目,也可以将其保存到一个H264文件中了。使用VideoToolbox可以为系统带来以下几个优点,提高编码性能(使得CPU的使用率大大降低),增加编码效率(使得编码一帧的时间缩短),延长电量使用(耗电量大大降低),而VideoToolbox是iOS 8.0以后才公开的API,既可以做编码又可以做解码工作。

你可能感兴趣的:(音视频编解码:视频基础2- 框架简要)