AVAssetExportSession

符号

实例化一个 session

// 通过指定一个 asset 和 present 实例化一个输出 session 
init?(asset: AVAsset, presetName: String)

配置 output

// 输出的 output 的 url
var outputURL: URL?

// 支持的文件类型
var supportedFileTypes: [String]

// 通过 session 写的文件类型
var outputFileType: String?

// 文件长度限制,表明 session 输出是文件长度不会超过这个限制
// 
var fileLengthLimit: Int64

// 输出的时间范围
var timeRange: CMTimeRange

// 通过 session 写入到文件的元数据
var metadata: [AVMetadataItem]?

// 元数据过滤器
var metadataItemFilter: AVMetadataItemFilter?

var audioMix: AVAudioMix?

var audioTimePitchAlgorithm: String

var shouldOptimizeForNetworkUse: Bool

var videoComposition: AVVideoComposition?

var customVideoCompositor: AVVideoCompositing?

var canPerformMultiplePassesOverSourceMediaData: Bool

var directoryForTemporaryFiles: URL?

输出预设

var presetName: String

class func allExportPresets()

class func exportPresets(compatibleWith: AVAsset)

class func determineCompatibility(ofExportPreset: String, 
                                            with: AVAsset, 
                                  outputFileType: String?, 
                               completionHandler: (Bool) -> Void)

func determineCompatibleFileTypes(completionHandler: ([String]) -> Void)

输出

func exportAsynchronously(completionHandler: () -> Void)

func cancelExport()

var error: Error?

var estimatedOutputFileLength: Int64


var maxDuration: CMTime

输出状态

var progress: Float

var status: AVAssetExportSessionStatus

获取资源

var asset: AVAsset

常量

// 导出状态
AVAssetExportSessionStatus
    case unknown        // 导出状态是未知的
    case waiting        // session 等待去导出更多数据
    case exporting      // 表明 session 正在输出
    case completed      // 表明 session 已经完成输出
    case failed         // 表明 session 已取消
    case cancelled      // 表明 session 已经取消


// 输出预设(设备匹配(适应的)的 quickTime files)
Export Preset Names for Device-Appropriate QuickTime Files

你可以使用这些输出选项去产出 QuickTime.mov 文件, 视频尺寸要适应当前的设备。
输出将不会缩放来自一个小尺寸的视频,视频压缩使用的是 h.264,音频是使用 acc 进行压缩。

    let AVAssetExportPresetLowQuality: String        // 低质量
    let AVAssetExportPresetMediumQuality: String     // 中等质量
    let AVAssetExportPresetHighestQuality: String    // 高等质量

// quickTime 文件输出预设的给定的尺寸
Export Preset Names for QuickTime Files of a Given Size

    let AVAssetExportPreset640x480: String        // 640x480
    let AVAssetExportPreset960x540: String        // 960x540
    let AVAssetExportPreset1280x720: String       // 1280x720
    let AVAssetExportPreset1920x1080: String      // 1920x1080
    let AVAssetExportPreset3840x2160: String      // 3840x2160


// iTunes audio 的输出预设
Export Preset Name for iTunes Audio

你使用输出选项去产出一个 .m4a 的音频文件。适当的iTunes无缝播放数据。

    let AVAssetExportPresetAppleM4A: String

// apple 设备的 输出预设
Export Preset Names for Apple Devices

你使用这些选项去产出一个能在指定 apple 设备的文件。
这些预设只在 macOS 中有效.
文件将会有一个 .m4v 文件(或者是 .m4a )

    let AVAssetExportPresetAppleM4VCellular: String
    let AVAssetExportPresetAppleM4ViPod: String
    let AVAssetExportPresetAppleM4V480pSD: String
    let AVAssetExportPresetAppleM4VAppleTV: String
    let AVAssetExportPresetAppleM4VWiFi: String
    let AVAssetExportPresetAppleM4V720pHD: String
    let AVAssetExportPresetAppleM4V1080pHD: String
    let AVAssetExportPresetAppleProRes422LPCM: String

results matching ""

    No results matching ""