<!--
{
  "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/AVCompositionTrack",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCompositionTrack"
  },
  "title" : "AVCompositionTrack"
}
-->

# AVCompositionTrack

A track in a composition that presents media of a uniform type.

```
class AVCompositionTrack
```

## Overview

This object provides an immutable composition track. The framework also provides a mutable subclass, [`AVMutableCompositionTrack`](/documentation/AVFoundation/AVMutableCompositionTrack).

## Topics

### Accessing track information

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

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

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

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

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

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

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

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

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

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

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

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

### Accessing temporal information

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

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

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

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

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

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

[`samplePresentationTime(forTrackTime:)`](/documentation/AVFoundation/AVCompositionTrack/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/AVCompositionTrack/languageCode)

The language code of the track.

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

The language tag of the track.

### Managing format descriptions

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

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

[`formatDescriptionReplacements`](/documentation/AVFoundation/AVCompositionTrack/formatDescriptionReplacements)

The replacement format descriptions.

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

An object that represents a format description and its replacement.

### Accessing visual characteristics

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

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

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

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

### Accessing audible characteristics

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

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

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

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

### Accessing frame-based characteristics

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

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

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

The minimum duration of the track’s frames.

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

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

### Accessing metadata

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

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

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

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

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

An array of metadata formats available for the track.

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

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

### Accessing track segments

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

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

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

Returns a segment whose target time range contains, or is closest to, the specified track time.

### Accessing track associations

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

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

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

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

### Determining sample cursor support

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

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



---

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)