<!--
{
  "documentType" : "article",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/media-assets",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Media assets"
}
-->

# Media assets

Load media assets from files and streams to inspect their attributes, tracks, and embedded metadata.

## Topics

### Essentials

[Loading media data asynchronously](/documentation/AVFoundation/loading-media-data-asynchronously)

Build responsive apps by using language-level concurrency features to efficiently load media data.

### Assets

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

An object that models timed audiovisual media.

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

An asset that represents media at a local or remote URL.

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

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

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

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

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

A group of related tracks in an asset.

### Metadata

[Retrieving media metadata](/documentation/AVFoundation/retrieving-media-metadata)

Load descriptive metadata for media assets and their tracks.

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

A metadata item for an audiovisual asset or one of its tracks.

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

A mutable metadata item for an audiovisual asset or for one of its tracks.

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

A structure that defines identifiers for metadata formats.

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

A structure that defines a metadata key.

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

A structure that defines a metadata key space.

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

A structure that defines keys for extra metadata attributes.

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

A structure that defines metadata formats.

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

An object that filters selected information from a metadata item.

### Property loading

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

A protocol that defines the interface to load media data asynchronously.

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

An asynchronous property that constrains its type and value.

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

An asynchronous property that constrains its type.

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

A base class for asynchronous properties.

### Fragmented assets

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

An asset with a duration that the system can extend without modifying its existing media data.

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

An object that provides the track-level interface to inspect a fragmented asset’s media tracks.

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

An object that periodically checks whether the system adds new fragments to a fragmented asset.

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

A protocol that defines whether an asset supports fragment minding.

### Notifications

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

Posted when the collection of arrays of timed metadata groups representing chapters of an AVAsset change and when any of the contents of the timed metadata groups change, but only for changes that occur after the status of the value of @“availableChapterLocales” has reached AVKeyValueStatusLoaded.

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

A notification the system posts when an asset’s fragments change.

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

A notification the system posts when a fragmented asset minder observes a change to a fragmented asset’s duration.

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

Posted when the collection of media selection groups provided by an AVAsset changes and when any of the contents of its media selection groups change, but only for changes that occur after the status of the value of @“availableMediaCharacteristicsWithMediaSelectionOptions” has reached AVKeyValueStatusLoaded.

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

Posted when the array of segments of an AVFragmentedAssetTrack changes while the associated instance of AVFragmentedAsset is being minded by an AVFragmentedAssetMinder, but only for changes that occur after the status of the value of @“segments” has reached AVKeyValueStatusLoaded.

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

Posted when the timeRange of an AVFragmentedAssetTrack changes while the associated instance of AVFragmentedAsset is being minded by an AVFragmentedAssetMinder, but only for changes that occur after the status of the value of @“timeRange” has reached AVKeyValueStatusLoaded.

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

Posted when the collection of track associations of an AVAssetTrack changes, but only for changes that occur after the status of the value of @“availableTrackAssociationTypes” has reached AVKeyValueStatusLoaded.

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

A notification the system posts when a fragmented asset minder observes that the system defragments the asset on disk.

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

Posted after the value of @“containsMovieFragments” has already been loaded and the AVFragmentedMovie is added to an AVFragmentedMovieMinder, either when 1) movie fragments are detected in the movie file on disk after it had previously contained none or when 2) no movie fragments are detected in the movie file on disk after it had previously contained one or more.

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

Posted when the duration of an AVFragmentedMovie changes while it’s being minded by an AVFragmentedMovieMinder, but only for changes that occur after the status of the value of @“duration” has reached AVKeyValueStatusLoaded.

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

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

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

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

Posted when the movie file on disk is defragmented while an AVFragmentedMovie is being minded by an AVFragmentedMovieMinder, but only if the defragmentation occurs after the status of the value of @“canContainMovieFragments” has reached AVKeyValueStatusLoaded.



---

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)