iOS视频开发中的基本知识点

2018-12-26 14:53 [复制链接] 49 0

作者 | 极链科技Video++移动Team张炫赫
整理 | 包包

前沿
随着移动技术的成熟和即将到来的5G时代,越来越多的公司开始开发移动视频软件来占领市场,随着抖音的登场,视频APP现已是火海一片,连BAT也按奈不住纷纷入场。

AVFoundation
在开发领域AVFoundation框架是iOS开发视频的必用框架。该框架包含的类超过100个、大量协议的集合及许多不同的功能和常量。在第一次遇到这些问题时,看似掌握这个框架有一定的难度, 但是如果你将这个框架仔细地按功能单元进行分解,就会变得比较容易理解。下面就看一下AVFoundation所提供的一些核心功能。
音频播放和记录
AVAudioPlayer和AVAudioRecorder可以在应用程序中提供一种更简单的整合音频播放和记录的功能。这些方法并不是AVFoundation用于播放和记录音频的唯一方式,却是学习起来最简单并且功能最强大的方法

媒体文件检查
AVFoundation提供检查正在使用的媒体文件的功能。可以查看这些媒体资源来确定是否适合一些特定的任务,比如是否可以用于回放或其是否可以被编辑和导出。还可以获取该媒体资源相关的技术参数,比如内容持续时间 创建日期或首选播放音量等。此外,该框架还基于AVMetadataItem类提供功能强大的元数据支持。这就允许开发者读写关于媒体资源的描述信息。

视频播放
AVFoundation框架可以让你播放从本地文件或远程流中获取的视频资源,并对视频播放和内容展示进行控制。这一部分的核心类是AVPlayer和AVPlayerItem,正是这两个类让你能够对资源的播放进行控制,此外它还可以整合其他更高级的功能,如控制子标题和章节信息等。或者让你链接访问音频和视频这两个不同的资源。

媒体捕捉
AVFoundation提供了一个丰富的API集来让你可以对这些设备进行精密控制。摄像头捕捉的核心类是AVCaptureSession,其作为所有活动的汇集点来接收摄像头设备由各路流发过来的电影和图片。这也是AVFoundation框架的一个可靠功能。

媒体编辑
AVFoundation框架语允许创建可以将多个音频和视频资源进行组合的应用程序,允许修改和编辑独立的媒体片段,随时修改音频文件的参数以及添加动画标题和场景切换效果。
AVFoundation有关资源组合的功能源于AVAsset的子类AVComposition。AVComposition中的轨道都是AVAssetTrack的子类AVCompositionTrack。一个组合轨迹本身由一个或多个媒体片断组成,由AVCompositionTrackSegment类定义,代表这个组合中的实际媒体区域 。

描述如下图所示:
AVComposition和AVCompositionTrack都是不可变对象,提供对资源的只读操作。这些对象提供了一个合适的接口让应用程序的一部分可以进行播放或处理。但当需要创建自己的组合时,就需要使用AVMutableComposition和AVMutableCompositionTrack所提供的可变子类。要创建自定义组合,需指定在将要添加到组合的源媒体的时间范围,还要指定要添加片段的每个轨道的位置。

媒体处理
虽然通过AVFoundation框架可以在不通过对媒体资源字节一级进行操作的前提下实现大量功能,但有时你可能还是需要访问更底层的数据并对其进行操作。幸运的是,当需要执行更高级的媒体处理任务时,可以使用AVAssetReader和AVAssetWriter类来实现这些功能。这些类提供直接访问视频帧和音频样本的功能,所以可以对媒体资源进行任何更高级的处理。

使用道具 举报 只看该作者 回复
最新评论 | 正序浏览
只看楼主|楼层直达:
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|站点地图|Video++ ( 沪ICP备14042830-6号

Powered by video++

快速回复 返回顶部 返回列表