美文网首页
iOS音视频二: AVFoundation框架总览

iOS音视频二: AVFoundation框架总览

作者: 司空123 | 来源:发表于2019-05-14 22:19 被阅读0次

一 、AVFoundation简介:

AVFoundation是可以用来播放和创建基于时间的视听媒体的几个框架之一。它提供了一个Objective-C接口,您可以使用它在基于时间的视听数据的详细级别上工作。例如,您可以使用它来检查、创建、编辑或重新编码媒体文件。您还可以从设备获取输入流,并在实时捕获和回放期间操作视频。

AVFoundation 在iOS上的体系结构:


frameworksBlockDiagram_2x.png

AVFoundation 在Mac OS上的体系结构:


frameworksBlockDiagramOSX_2x.png

二 、AVFoundation主要功能:

音频的录制、播放
视频的播放
媒体文件检查
媒体捕捉
媒体编辑
媒体处理
媒体采样
媒体压缩
音频编解码
视频编解码
音频的音效处理

三 、AVFoundation主要类及功能:

#if ! AVF_IS_WATCHOS_SDK
// 负责展示动画的类
#import <AVFoundation/AVAnimation.h>
// 获得图片、文件、媒体库的类
#import <AVFoundation/AVAsset.h>
#import <AVFoundation/AVAssetCache.h>
//资源导出会话:是一个通过资源文件对象去创建一个指定预设的输出的转码内容会话
#import <AVFoundation/AVAssetExportSession.h>
//获得视频的图像类 
#import <AVFoundation/AVAssetImageGenerator.h>
// 从资源读取音视频数据
#import <AVFoundation/AVAssetReader.h>
//读取资源文件输出类
#import <AVFoundation/AVAssetReaderOutput.h>
// 资源文件的加载器会从AVURLAsset和代理方法得到加载的内容
#import <AVFoundation/AVAssetResourceLoader.h>
//用于创建和跟踪媒体数据的解密密钥
#import <AVFoundation/AVContentKeySession.h>
//资源的分轨
#import <AVFoundation/AVAssetTrack.h>
//这里面封装了一组资源的分轨
#import <AVFoundation/AVAssetTrackGroup.h>
//表示资源分轨的一段
#import <AVFoundation/AVAssetTrackSegment.h>
//资源文件写入类
#import <AVFoundation/AVAssetWriter.h>
//写入文件的输入类
#import <AVFoundation/AVAssetWriterInput.h>
//异步获取实现此协议的类中属性的加载完成情况
#import <AVFoundation/AVAsynchronousKeyValueLoading.h>
// 存储AVAudioMixInputParameters
#import <AVFoundation/AVAudioMix.h>
//音量变化的描述类,它同一个音频的 track 相关联
#import <AVFoundation/AVAudioProcessingSettings.h>

#if TARGET_OS_IPHONE
#if __has_include(<AVFoundation/AVAssetDownloadTask.h>)
//资源下载任务
#import <AVFoundation/AVAssetDownloadTask.h>
#endif
#if __has_include(<AVFoundation/AVAssetDownloadStorageManager.h>)
#import <AVFoundation/AVAssetDownloadStorageManager.h>
#endif
#endif

#if (TARGET_OS_IPHONE || defined(__MAC_10_7))
#import <AVFoundation/AVCaptureDataOutputSynchronizer.h>
//硬件捕获设备类
#import <AVFoundation/AVCaptureDevice.h>
//从硬件捕获设备获得输入的数据
#import <AVFoundation/AVCaptureInput.h>
//获得输出的数据
#import <AVFoundation/AVCaptureOutput.h>
//媒体捕捉会话.用于连接输入输出设备
#import <AVFoundation/AVCaptureSession.h>
//获取系统压力
#import <AVFoundation/AVCaptureSystemPressure.h>
//捕获的视频数据的预览图层
#import <AVFoundation/AVCaptureVideoPreviewLayer.h>
#endif

//AVCompositionTrack的合集
#import <AVFoundation/AVComposition.h>
//媒体轨道片段集合,由 AVCompositionTrackSegment 类进行描述。
#import <AVFoundation/AVCompositionTrack.h>
//组合轨道段
#import <AVFoundation/AVCompositionTrackSegment.h>
#import <AVFoundation/AVDepthData.h>
#import <AVFoundation/AVPortraitEffectsMatte.h>
#import <AVFoundation/AVError.h>
#endif

#import <AVFoundation/AVFAudio.h>

#if ! AVF_IS_WATCHOS_SDK
#import <AVFoundation/AVMediaFormat.h>
#import <AVFoundation/AVMediaSelection.h>
#import <AVFoundation/AVMediaSelectionGroup.h>
#import <AVFoundation/AVMetadataFormat.h>
#import <AVFoundation/AVMetadataIdentifiers.h> 
#import <AVFoundation/AVMetadataItem.h>
#import <AVFoundation/AVMetadataObject.h>
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
#import <AVFoundation/AVMovie.h>
#import <AVFoundation/AVMovieTrack.h>
#endif
#import <AVFoundation/AVOutputSettingsAssistant.h>
// 音视频播放器
#import <AVFoundation/AVPlayer.h>
// 音视频播放的元素
#import <AVFoundation/AVPlayerItem.h>
//音视频播放器元素媒体数据收集器
#import <AVFoundation/AVPlayerItemMediaDataCollector.h>
//播放器元素输出类
#import <AVFoundation/AVPlayerItemOutput.h>

#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
#import <AVFoundation/AVPlayerItemProtectedContentAdditions.h>
#endif
//播放器元素的分轨
#import <AVFoundation/AVPlayerItemTrack.h>
//播放器的图层
#import <AVFoundation/AVPlayerLayer.h>

#import <AVFoundation/AVPlayerLooper.h>
//播放器媒体选择的规范
#import <AVFoundation/AVPlayerMediaSelectionCriteria.h>
#import <AVFoundation/AVQueuedSampleBufferRendering.h>
#import <AVFoundation/AVRouteDetector.h>
#import <AVFoundation/AVSampleBufferAudioRenderer.h>
//用来显示压缩或解压的视频帧
#import <AVFoundation/AVSampleBufferDisplayLayer.h>
#import <AVFoundation/AVSampleBufferRenderSynchronizer.h>
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
#import <AVFoundation/AVSampleBufferGenerator.h>
#import <AVFoundation/AVSampleCursor.h>
#endif
#import <AVFoundation/AVSynchronizedLayer.h>
#import <AVFoundation/AVTextStyleRule.h>
//音频时间类
#import <AVFoundation/AVTime.h>
//用于表示在特定时间范围内有效使用的元数据项集合
#import <AVFoundation/AVTimedMetadataGroup.h>
#import <AVFoundation/AVUtilities.h>
#import <AVFoundation/AVVideoCompositing.h>
//视频的自定义播放
#import <AVFoundation/AVVideoComposition.h>
//音频会话
#import <AVFoundation/AVVideoSettings.h>
#endif
#if TARGET_OS_TV
#import <AVFoundation/AVDisplayCriteria.h>
#endif

相关文章

  • iOS音视频二: AVFoundation框架总览

    一 、AVFoundation简介: AVFoundation是可以用来播放和创建基于时间的视听媒体的几个框架之一...

  • 直播APP流程

    音视频采集 *iOS采集音视频数据,导入AVFoundation框架,从CaptureSession会话的回调中获...

  • 视频采集篇

    相关框架iOS中关于音视频的类都在AVFoundation,做音视频,首先导入这个框架 开发步骤 1创建捕捉会话(...

  • IOS音视频(三)AVFoundation 播放和录音

    回顾一下,上一篇博客“IOS音视频(二)AVFoundation视频捕捉” 中讲解了关于AVFoundation框...

  • iOS 视频采集

    前言 AVFoundation框架是iOS中很重要的框架,所有与音视频相关的软硬件控制都在这个框架里。本文主要介绍...

  • AVFoundation 获取视频帧图片以及相关信息

    AVFoundation框架是iOS平台多媒体的主要框架之一,它囊括了四个方面的内容: 音视频播放以及编辑 利用麦...

  • AVFoundation - 入门

    AVFoundation框架是iOS中很重要的框架,所有与音视频相关的软硬件控制都在这个框架里面。接下来主要是对这...

  • iOS音视频

    iOS 音视频开发(一)常用音视频框架介绍iOS 音视频开发(二)AVAudioRecorder录音、AVAudi...

  • AVFoundation 简介

    AVFoundation能做什么 AVFoundation 提供了 iOS 基本的音视频处理,包括播放,采集,编辑...

  • iOS 音视频开发(一)常用音视频框架介绍

    文章规划iOS 音视频开发(一)常用音视频框架介绍(本篇)iOS 音视频开发(二)AVAudioRecorder实...

网友评论

      本文标题:iOS音视频二: AVFoundation框架总览

      本文链接:https://www.haomeiwen.com/subject/ybekgqtx.html