<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.7.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVAssetTrack",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVAssetTrack"
  },
  "title" : "AVAssetTrack"
}
-->

# AVAssetTrack

An object that models a track of media that an asset contains.

```
class AVAssetTrack
```

## Overview

An asset contains one or more tracks of media that the framework models using the [`AVAssetTrack`](/documentation/AVFoundation/AVAssetTrack) class. A track object holds the uniformly typed media that an asset provides such as audio, video, or closed captions.

A track, like its containing [`AVAsset`](/documentation/AVFoundation/AVAsset), doesn’t load all of its media upon creation. Instead, it defers loading its data until you perform an operation that requires it. Because loading the data can take time, an asset track adopts the [`AVAsynchronousKeyValueLoading`](/documentation/AVFoundation/AVAsynchronousKeyValueLoading) protocol so you can load its property values asynchronously by calling the [`load(_:isolation:)`](/documentation/AVFoundation/AVAsynchronousKeyValueLoading/load(_:isolation:)) method.

## Topics

### Identifying an asset track

[`trackID`](/documentation/AVFoundation/AVAssetTrack/trackID)

The persistent unique identifier for this track.

[`mediaType`](/documentation/AVFoundation/AVAssetTrack/mediaType)

The type of media that a track presents.

[`asset`](/documentation/AVFoundation/AVAssetTrack/asset)

The asset object that contains this track.

### Loading track information

[`formatDescriptions`](/documentation/AVFoundation/AVPartialAsyncProperty/formatDescriptions)

The format descriptions of the media samples that a track references.

[`isPlayable`](/documentation/AVFoundation/AVPartialAsyncProperty/isPlayable-6txa5)

A Boolean value that indicates whether the track is playable in the current environment.

[`isDecodable`](/documentation/AVFoundation/AVPartialAsyncProperty/isDecodable)

A Boolean value that indicates whether the track is decodable in the current environment.

[`isEnabled`](/documentation/AVFoundation/AVPartialAsyncProperty/isEnabled)

A Boolean value that indicates whether the track is in an enabled state.

[`isSelfContained`](/documentation/AVFoundation/AVPartialAsyncProperty/isSelfContained)

A Boolean value that indicates whether the track references sample data only within its container file.

[`totalSampleDataLength`](/documentation/AVFoundation/AVPartialAsyncProperty/totalSampleDataLength)

The total number of bytes of sample data the track requires.

[`mediaCharacteristics`](/documentation/AVFoundation/AVPartialAsyncProperty/mediaCharacteristics)

The media characteristics for the track.

### Loading temporal information

[`timeRange`](/documentation/AVFoundation/AVPartialAsyncProperty/timeRange)

The time range of the track within the overall timeline of the asset.

[`naturalTimeScale`](/documentation/AVFoundation/AVPartialAsyncProperty/naturalTimeScale)

The natural time scale of the media that a track references.

[`estimatedDataRate`](/documentation/AVFoundation/AVPartialAsyncProperty/estimatedDataRate)

The estimated data rate, in bits per second, of the media that the track references.

### Loading language support

[`languageCode`](/documentation/AVFoundation/AVPartialAsyncProperty/languageCode)

The language code of the track.

[`extendedLanguageTag`](/documentation/AVFoundation/AVPartialAsyncProperty/extendedLanguageTag)

The language tag of the track.

### Loading visual characteristics

[`naturalSize`](/documentation/AVFoundation/AVPartialAsyncProperty/naturalSize)

The natural dimensions of the media data that the track references.

[`preferredTransform`](/documentation/AVFoundation/AVPartialAsyncProperty/preferredTransform-90jdn)

The track’s transform preference to apply to its visual content during presentation or processing.

### Loading audible characteristics

[`preferredVolume`](/documentation/AVFoundation/AVPartialAsyncProperty/preferredVolume-8q2yt)

The track’s volume preference for playing its audible media.

[`hasAudioSampleDependencies`](/documentation/AVFoundation/AVPartialAsyncProperty/hasAudioSampleDependencies)

A Boolean value that indicates whether the track has sample dependencies.

### Loading frame-based characteristics

[`nominalFrameRate`](/documentation/AVFoundation/AVPartialAsyncProperty/nominalFrameRate)

The frame rate of the track, in frames per second.

[`minFrameDuration`](/documentation/AVFoundation/AVPartialAsyncProperty/minFrameDuration)

The minimum duration of the track’s frames.

[`requiresFrameReordering`](/documentation/AVFoundation/AVPartialAsyncProperty/requiresFrameReordering)

A Boolean value that indicates whether samples in the track may have different presentation and decode timestamps.

### Loading metadata

[`metadata`](/documentation/AVFoundation/AVPartialAsyncProperty/metadata-6e14c)

An array of metadata items for all metadata identifiers that have a value.

[`commonMetadata`](/documentation/AVFoundation/AVPartialAsyncProperty/commonMetadata-73m58)

An array of metadata items for all common metadata keys that have a value.

[`availableMetadataFormats`](/documentation/AVFoundation/AVPartialAsyncProperty/availableMetadataFormats-5p9xg)

An array of metadata formats available for the track.

[`loadMetadata(for:completionHandler:)`](/documentation/AVFoundation/AVAssetTrack/loadMetadata(for:completionHandler:))

Loads metadata items that a track contains for the specified format.

### Loading track segments

[`segments`](/documentation/AVFoundation/AVPartialAsyncProperty/segments)

The time mappings from the track’s media samples to its timeline.

[`loadSegment(forTrackTime:completionHandler:)`](/documentation/AVFoundation/AVAssetTrack/loadSegment(forTrackTime:completionHandler:))

Loads a segment with a target time range that contains, or is closest to, the specified track time.

[`loadSamplePresentationTime(forTrackTime:completionHandler:)`](/documentation/AVFoundation/AVAssetTrack/loadSamplePresentationTime(forTrackTime:completionHandler:))

Loads a sample presentation time that maps to the specified track time.

[`AVAssetTrackSegment`](/documentation/AVFoundation/AVAssetTrackSegment)

An object that represents a time range segment of an asset track.

### Loading track associations

[`availableTrackAssociationTypes`](/documentation/AVFoundation/AVPartialAsyncProperty/availableTrackAssociationTypes)

An array of association types that the track uses to associate with other tracks.

[`loadAssociatedTracks(ofType:completionHandler:)`](/documentation/AVFoundation/AVAssetTrack/loadAssociatedTracks(ofType:completionHandler:))

Loads associated tracks that have the specified association type.

### Accessing track information

[`formatDescriptions`](/documentation/AVFoundation/AVAssetTrack/formatDescriptions)

The format descriptions of the media samples that a track references.

[`isPlayable`](/documentation/AVFoundation/AVAssetTrack/isPlayable)

A Boolean value that indicates whether the track is playable in the current environment.

[`isDecodable`](/documentation/AVFoundation/AVAssetTrack/isDecodable)

A Boolean value that indicates whether the track is decodable in the current environment.

[`isEnabled`](/documentation/AVFoundation/AVAssetTrack/isEnabled)

A Boolean value that indicates whether the track’s container enables it.

[`isSelfContained`](/documentation/AVFoundation/AVAssetTrack/isSelfContained)

A Boolean value that indicates whether this track references sample data only within its container file.

[`totalSampleDataLength`](/documentation/AVFoundation/AVAssetTrack/totalSampleDataLength)

The total number of bytes of sample data the track requires.

[`hasMediaCharacteristic(_:)`](/documentation/AVFoundation/AVAssetTrack/hasMediaCharacteristic(_:))

Returns a Boolean value that indicates whether the track references media with the specified media characteristic.

### Accessing temporal information

[`timeRange`](/documentation/AVFoundation/AVAssetTrack/timeRange)

The time range of the track within the overall timeline of the asset.

[`naturalTimeScale`](/documentation/AVFoundation/AVAssetTrack/naturalTimeScale)

The natural time scale of the media that a track references.

[`estimatedDataRate`](/documentation/AVFoundation/AVAssetTrack/estimatedDataRate)

The estimated data rate, in bits per second, of the media that the track references.

[`samplePresentationTime(forTrackTime:)`](/documentation/AVFoundation/AVAssetTrack/samplePresentationTime(forTrackTime:))

Maps the specified track time through the appropriate time mapping and returns the resulting sample presentation time.

### Accessing language support

[`languageCode`](/documentation/AVFoundation/AVAssetTrack/languageCode)

The language code of the track.

[`extendedLanguageTag`](/documentation/AVFoundation/AVAssetTrack/extendedLanguageTag)

The language tag of the track.

### Accessing visual characteristics

[`naturalSize`](/documentation/AVFoundation/AVAssetTrack/naturalSize)

The natural dimensions of the media data that the track references.

[`preferredTransform`](/documentation/AVFoundation/AVAssetTrack/preferredTransform)

The track’s transform preference to apply to its visual content during presentation or processing.

### Accessing audible characteristics

Prefer loading audible characteristics asynchronously using the symbols in Loading Audible Characteristics.

[`preferredVolume`](/documentation/AVFoundation/AVAssetTrack/preferredVolume)

The track’s volume preference for playing its audible media.

[`hasAudioSampleDependencies`](/documentation/AVFoundation/AVAssetTrack/hasAudioSampleDependencies)

A Boolean value that indicates whether the track has sample dependencies.

### Accessing frame-based characteristics

Prefer loading frame-based characteristics asynchronously using the symbols in Loading Frame-Based Characteristics.

[`nominalFrameRate`](/documentation/AVFoundation/AVAssetTrack/nominalFrameRate)

The frame rate of the track, in frames per second.

[`minFrameDuration`](/documentation/AVFoundation/AVAssetTrack/minFrameDuration)

The minimum duration of the track’s frames.

[`requiresFrameReordering`](/documentation/AVFoundation/AVAssetTrack/requiresFrameReordering)

A Boolean value that indicates whether samples in the track may have different presentation and decode timestamps.

### Accessing metadata

Prefer loading metadata asynchronously using the symbols in Loading Metadata.

[`metadata`](/documentation/AVFoundation/AVAssetTrack/metadata)

An array of metadata items for all metadata identifiers that have a value.

[`commonMetadata`](/documentation/AVFoundation/AVAssetTrack/commonMetadata)

An array of metadata items for all common metadata keys that have a value.

[`availableMetadataFormats`](/documentation/AVFoundation/AVAssetTrack/availableMetadataFormats)

An array of metadata formats available for the track.

[`metadata(forFormat:)`](/documentation/AVFoundation/AVAssetTrack/metadata(forFormat:))

Returns metadata items that a track contains for the specified format.

### Accessing track segments

Prefer loading track segments asynchronously using the symbols in Loading Track Segments.

[`segments`](/documentation/AVFoundation/AVAssetTrack/segments)

The time mappings from the track’s media samples to its timeline.

[`segment(forTrackTime:)`](/documentation/AVFoundation/AVAssetTrack/segment(forTrackTime:))

Retrieves a segment with a target time range that contains, or is closest to, the specified track time.

### Accessing track associations

Prefer loading track associations asynchronously using the symbols in Loading Track Associations.

[`availableTrackAssociationTypes`](/documentation/AVFoundation/AVAssetTrack/availableTrackAssociationTypes)

An array of association types that the track uses to associate with other tracks.

[`associatedTracks(ofType:)`](/documentation/AVFoundation/AVAssetTrack/associatedTracks(ofType:))

Returns an array of associated tracks that have the specified association type.

[`AVAssetTrack.AssociationType`](/documentation/AVFoundation/AVAssetTrack/AssociationType)

Constants that define track association types.

### Creating sample cursors

[`makeSampleCursor(presentationTimeStamp:)`](/documentation/AVFoundation/AVAssetTrack/makeSampleCursor(presentationTimeStamp:))

Creates a sample cursor and positions it at or near the specified presentation timestamp.

[`makeSampleCursorAtFirstSampleInDecodeOrder()`](/documentation/AVFoundation/AVAssetTrack/makeSampleCursorAtFirstSampleInDecodeOrder())

Creates a sample cursor and positions it at the track’s first media sample in decode order.

[`makeSampleCursorAtLastSampleInDecodeOrder()`](/documentation/AVFoundation/AVAssetTrack/makeSampleCursorAtLastSampleInDecodeOrder())

Creates a sample cursor and positions it at the track’s last media sample in decode order.

### Creating sample cursors

[`canProvideSampleCursors`](/documentation/AVFoundation/AVAssetTrack/canProvideSampleCursors)

A Boolean value that indicates whether the track can provide instances of sample cursors to traverse its media samples and discover information.

[`makeSampleCursor(presentationTimeStamp:)`](/documentation/AVFoundation/AVAssetTrack/makeSampleCursor(presentationTimeStamp:))

Creates a sample cursor and positions it at or near the specified presentation timestamp.

[`makeSampleCursorAtFirstSampleInDecodeOrder()`](/documentation/AVFoundation/AVAssetTrack/makeSampleCursorAtFirstSampleInDecodeOrder())

Creates a sample cursor and positions it at the track’s first media sample in decode order.

[`makeSampleCursorAtLastSampleInDecodeOrder()`](/documentation/AVFoundation/AVAssetTrack/makeSampleCursorAtLastSampleInDecodeOrder())

Creates a sample cursor and positions it at the track’s last media sample in decode order.

### Deprecated

[Deprecated symbols](/documentation/AVFoundation/avassettrack-deprecated-symbols)

Review unsupported symbols and their replacements.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)