One Logo Pool Ball
AVFoundation · IOS API REFERENCE

AVAssetExportSession

class · iOS 4.0+ · SDK 27.1

class AVAssetExportSession

Members (47)

static · iOS 4.0+

allExportPresets

TypeScript
static allExportPresets(): Array<string>
Swift declaration
class func allExportPresets() -> [String]
static · iOS 6.0+

determineCompatibility

TypeScript
static determineCompatibility(presetName: string, asset: AVAsset, outputFileType: (AVFileType) | null, handler: ((arg0: boolean) => void)): void
Swift declaration
class func compatibility(ofExportPreset presetName: String, with asset: AVAsset, outputFileType: AVFileType?) async -> Bool
static · iOS 4.0+ · Deprecated in iOS 16.0

exportPresets

TypeScript
static exportPresets(asset: AVAsset): Array<string>
Swift declaration
class func exportPresets(compatibleWith asset: AVAsset) -> [String]
method · iOS 4.0+ · Deprecated in iOS 27.0

cancelExport

TypeScript
cancelExport(): void
Swift declaration
func cancelExport()
method · iOS 6.0+

determineCompatibleFileTypes

TypeScript
determineCompatibleFileTypes(handler: ((arg0: Array<AVFileType>) => void)): void
Swift declaration
var compatibleFileTypes: [AVFileType] { get async }
method · iOS 13.0+

estimateMaximumDuration

TypeScript
estimateMaximumDuration(handler: ((arg0: _CoreMedia_CMTime, arg1: (NativeError) | null) => void)): void
Swift declaration
var estimatedMaximumDuration: CMTime { get async throws }
method · iOS 13.0+

estimateOutputFileLength

TypeScript
estimateOutputFileLength(handler: ((arg0: number, arg1: (NativeError) | null) => void)): void
Swift declaration
var estimatedOutputFileLengthInBytes: Int64 { get async throws }
method · iOS 4.0+ · Deprecated in iOS 18.0

exportAsynchronously

TypeScript
exportAsynchronously(handler: (() => void)): void
Swift declaration
func export() async
init · iOS 4.0+

init

TypeScript
static init(asset: AVAsset, presetName: string): (AVAssetExportSession) | null
Swift declaration
init?(asset: AVAsset, presetName: String)
get · iOS 5.0+

asset

TypeScript
get asset(): AVAsset
Swift declaration
var asset: AVAsset { get }
get · iOS 4.0+

audioMix

TypeScript
get audioMix(): (AVAudioMix) | null
Swift declaration
@NSCopying var audioMix: AVAudioMix? { get set }
set · iOS 4.0+

audioMix

TypeScript
set audioMix(value: (AVAudioMix) | null)
Swift declaration
@NSCopying var audioMix: AVAudioMix? { get set }
get · iOS 7.0+

audioTimePitchAlgorithm

TypeScript
get audioTimePitchAlgorithm(): AVAudioTimePitchAlgorithm
Swift declaration
var audioTimePitchAlgorithm: AVAudioTimePitchAlgorithm { get set }
set · iOS 7.0+

audioTimePitchAlgorithm

TypeScript
set audioTimePitchAlgorithm(value: AVAudioTimePitchAlgorithm)
Swift declaration
var audioTimePitchAlgorithm: AVAudioTimePitchAlgorithm { get set }
get · iOS 16.0+

audioTrackGroupHandling

TypeScript
get audioTrackGroupHandling(): AVAssetTrackGroupOutputHandling
Swift declaration
var audioTrackGroupHandling: AVAssetTrackGroupOutputHandling { get set }
set · iOS 16.0+

audioTrackGroupHandling

TypeScript
set audioTrackGroupHandling(value: AVAssetTrackGroupOutputHandling)
Swift declaration
var audioTrackGroupHandling: AVAssetTrackGroupOutputHandling { get set }
get · iOS 8.0+

canPerformMultiplePassesOverSourceMediaData

TypeScript
get canPerformMultiplePassesOverSourceMediaData(): boolean
Swift declaration
var canPerformMultiplePassesOverSourceMediaData: Bool { get set }
set · iOS 8.0+

canPerformMultiplePassesOverSourceMediaData

TypeScript
set canPerformMultiplePassesOverSourceMediaData(value: boolean)
Swift declaration
var canPerformMultiplePassesOverSourceMediaData: Bool { get set }
get · iOS 7.0+

customVideoCompositor

TypeScript
get customVideoCompositor(): (SDKHandle) | null
Swift declaration
var customVideoCompositor: (any AVVideoCompositing)? { get }
get · iOS 8.0+

directoryForTemporaryFiles

TypeScript
get directoryForTemporaryFiles(): (string) | null
Swift declaration
var directoryForTemporaryFiles: URL? { get set }
set · iOS 8.0+

directoryForTemporaryFiles

TypeScript
set directoryForTemporaryFiles(value: (string) | null)
Swift declaration
var directoryForTemporaryFiles: URL? { get set }
get · iOS 4.0+ · Deprecated in iOS 18.0

error

TypeScript
get error(): (NativeError) | null
Swift declaration
var error: (any Error)? { get }
get · iOS 5.0+ · Deprecated in iOS 18.0

estimatedOutputFileLength

TypeScript
get estimatedOutputFileLength(): number
Swift declaration
var estimatedOutputFileLength: Int64 { get }
get · iOS 4.0+

fileLengthLimit

TypeScript
get fileLengthLimit(): number
Swift declaration
var fileLengthLimit: Int64 { get set }
set · iOS 4.0+

fileLengthLimit

TypeScript
set fileLengthLimit(value: number)
Swift declaration
var fileLengthLimit: Int64 { get set }
get · iOS 4.0+ · Deprecated in iOS 18.0

maxDuration

TypeScript
get maxDuration(): _CoreMedia_CMTime
Swift declaration
var maxDuration: CMTime { get }
get · iOS 4.0+

metadata

TypeScript
get metadata(): (Array<AVMetadataItem>) | null
Swift declaration
var metadata: [AVMetadataItem]? { get set }
set · iOS 4.0+

metadata

TypeScript
set metadata(value: (Array<AVMetadataItem>) | null)
Swift declaration
var metadata: [AVMetadataItem]? { get set }
get · iOS 7.0+

metadataItemFilter

TypeScript
get metadataItemFilter(): (AVMetadataItemFilter) | null
Swift declaration
var metadataItemFilter: AVMetadataItemFilter? { get set }
set · iOS 7.0+

metadataItemFilter

TypeScript
set metadataItemFilter(value: (AVMetadataItemFilter) | null)
Swift declaration
var metadataItemFilter: AVMetadataItemFilter? { get set }
get · iOS 4.0+ · Deprecated in iOS 27.0

outputFileType

TypeScript
get outputFileType(): (AVFileType) | null
Swift declaration
var outputFileType: AVFileType? { get set }
set · iOS 4.0+ · Deprecated in iOS 27.0

outputFileType

TypeScript
set outputFileType(value: (AVFileType) | null)
Swift declaration
var outputFileType: AVFileType? { get set }
get · iOS 4.0+ · Deprecated in iOS 27.0

outputURL

TypeScript
get outputURL(): (string) | null
Swift declaration
var outputURL: URL? { get set }
set · iOS 4.0+ · Deprecated in iOS 27.0

outputURL

TypeScript
set outputURL(value: (string) | null)
Swift declaration
var outputURL: URL? { get set }
get · iOS 4.0+

presetName

TypeScript
get presetName(): string
Swift declaration
var presetName: String { get }
get · iOS 4.0+ · Deprecated in iOS 27.0

progress

TypeScript
get progress(): number
Swift declaration
var progress: Float { get }
get · iOS 4.0+

shouldOptimizeForNetworkUse

TypeScript
get shouldOptimizeForNetworkUse(): boolean
Swift declaration
var shouldOptimizeForNetworkUse: Bool { get set }
set · iOS 4.0+

shouldOptimizeForNetworkUse

TypeScript
set shouldOptimizeForNetworkUse(value: boolean)
Swift declaration
var shouldOptimizeForNetworkUse: Bool { get set }
get · iOS 4.0+ · Deprecated in iOS 18.0

status

TypeScript
get status(): AVAssetExportSession_Status
Swift declaration
var status: AVAssetExportSession.Status { get }
get · iOS 4.0+

supportedFileTypes

TypeScript
get supportedFileTypes(): Array<AVFileType>
Swift declaration
var supportedFileTypes: [AVFileType] { get }
get · iOS 4.0+

timeRange

TypeScript
get timeRange(): _CoreMedia_CMTimeRange
Swift declaration
var timeRange: CMTimeRange { get set }
set · iOS 4.0+

timeRange

TypeScript
set timeRange(value: _CoreMedia_CMTimeRange)
Swift declaration
var timeRange: CMTimeRange { get set }
get · iOS 4.0+

videoComposition

TypeScript
get videoComposition(): (AVVideoComposition) | null
Swift declaration
@NSCopying var videoComposition: AVVideoComposition? { get set }
set · iOS 4.0+

videoComposition

TypeScript
set videoComposition(value: (AVVideoComposition) | null)
Swift declaration
@NSCopying var videoComposition: AVVideoComposition? { get set }
method · iOS 27.0+

configureForResumableExport

TypeScript
configureForResumableExport(): Promise<AVAssetExportSession_ResumptionState>
Swift declaration
func configureForResumableExport() async -> AVAssetExportSession.ResumptionState

Configures the export session for resumable export. This method validates that the export session's current configuration supports resumption and checks the temporary directory for any partial results from previous export attempts. Call this method after configuring all export settings (preset, output file type, etc.) and before calling `exportAsynchronously()`. - Returns: A `ResumptionState` indicating whether resumption is available and whether the export will resume from a previous state. - Note: Even if resumption is not available, you can still perform a normal (non-resumable) export by calling `exportAsynchronously()`. Example usage: ```swift let exportSession = AVAssetExportSession(asset: asset, presetName: .hevc1920x1080)! exportSession.outputFileType = .mov exportSession.outputURL = outputURL exportSession.directoryForTemporaryFiles = temporaryDirectory let state = await exportSession.configureForResumableExport() switch state { case .resumable(let isResuming): print("Export is resumable. Continuing from previous state: \(isResuming)") case .notResumable(let reason): print("Cannot perform resumable export with current configuration: \(reason)") } try await exportSession.export(to: outputURL, as: .mov) ```

method · iOS 13.0+

export

TypeScript
export(url: string, fileType: AVFileType): Promise<void>
Swift declaration
@backDeployed(before: macOS 26.0, iOS 26.0, tvOS 26.0, visionOS 26.0)
final func export(to url: URL, as fileType: AVFileType, isolation: isolated (any Actor)? = #isolation) async throws

Initiates an asset export operation. Progress can be monitored using states(updateInterval:). Thrown errors may include: - CancellationError: export operation is cancelled - Parameters: - url: Indicates the URL of the export session's output. You may use UTType.preferredFilenameExtension to obtain an appropriate path extension for the fileType you have specified. For more information, see <UniformTypeIdentifiers/UTType.h> - fileType: Indicates the type of file to be written by the session.

method · iOS 18.0+

states

TypeScript
states(updateInterval?: number): (SDKHandle) & (SDKHandle)
Swift declaration
func states(updateInterval: TimeInterval = .infinity) -> some Sendable & AsyncSequence<AVAssetExportSession.State, Never>

Monitor the progress of an asset export session - Parameter updateInterval: time interval between updates while in exporting state - Returns: sequence of asset export session progress states

Skipped declarations

1 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.

AVAssetExportSession.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

All AVFoundation types →