Structure

AVMediaCharacteristic

Options for specifying the characteristics of media types.

Overview

Each track of .mov files and .m4v files (that is, files of type mov and m4v) can optionally carry one or more tagged media characteristics, each of which declares a purpose, a trait, or some other distinguishing property of the track's media.

For example, a track containing audio that mixes original program content with additional narrative descriptions of visual action may be tagged with the media characteristic "public.accessibility.describes-video" in order to distinguish it from other audio tracks stored in the same file that do not contain additional narrative.

Each tagged media characteristic in .mov and .m4v files is stored in track user data as a user data item of type 'tagc' (represented as a FourCharCode) that consists of a standard atom header (size and type) followed by an array of US-ASCII characters (8-bit, high bit clear) comprising the value of the tag. The character array is not a C string; there is no terminating zero. The user data item atom size is sum of the standard atom header size (8) and the size of the US-ASCII character array.

You can inspect the tagged media characteristics of a track as follows:

NSArray *trackUserDataItems = [myAVAssetTrack metadataForFormat:AVMetadataFormatQuickTimeUserData];
NSArray *trackTaggedMediaCharacteristics = [AVMetadataItem metadataItemsFromArray:trackUserDataItems
        withKey:AVMetadataQuickTimeUserDataKeyTaggedCharacteristic
        keySpace:AVMetadataKeySpaceQuickTimeUserData];
for (AVMetadataItem *metadataItem in trackTaggedMediaCharacteristics) {
     NSString *thisTrackMediaCharacteristic = [metadataItem stringValue];
}

You can use hasMediaCharacteristic(_:) to determine whether a track has a particular media characteristic, whether the characteristic is inferred from its media type or format descriptions (such as audible or containsOnlyForcedSubtitles) or requires explicit tagging (such as transcribesSpokenDialogForAccessibility or easyToRead). Note that explicit tagging can’t be used to override inferences from tracks' media types or format descriptions; for example, the following code listing returns false for any audio track, even if the track has been perversely tagged with the visual characteristic.

[anAVAssetTrack hasMediaCharacteristic:AVMediaCharacteristicVisual]

Tagged media characteristics can be written to the QuickTime user data of an output track associated with an AVAssetWriterInput object as follows, provided that the output file type of the asset writer is either mov or m4v:

AVMutableMetadataItem *myTaggedMediaCharacteristic = [[AVMutableMetadataItem alloc] init];
[myTaggedMediaCharacteristic setKey:AVMetadataQuickTimeUserDataKeyTaggedCharacteristic];
[myTaggedMediaCharacteristic setKeySpace:AVMetadataKeySpaceQuickTimeUserData];
[myTaggedMediaCharacteristic setValue:aMeaningfulCharacteristicAsNSString];
[myMutableArrayOfMetadata addObject:myTaggedMediaCharacteristic];
[myAssetWriterInput setMetadata:myMutableArrayOfMetadata];

Topics

Media Characteristics

static let audible: AVMediaCharacteristic

Indicates that the media is audible.

static let containsOnlyForcedSubtitles: AVMediaCharacteristic

Indicates that the options presents only forced subtitles.

static let describesMusicAndSoundForAccessibility: AVMediaCharacteristic

Indicates that the option includes legible content in the language of its specified locale that describes music and sound effects occurring in program audio.

static let describesVideoForAccessibility: AVMediaCharacteristic

Indicates that the option includes audible content that describes the visual portion of the presentation.

static let easyToRead: AVMediaCharacteristic

Indicates that the option provides legible content in the language of its specified locale and that the content has been edited for ease of reading.

static let frameBased: AVMediaCharacteristic

Indicates that the media is frame-based.

static let isAuxiliaryContent: AVMediaCharacteristic

Indicates that the option includes content that’s marked by the content author as auxiliary to the presentation of the asset.

static let isMainProgramContent: AVMediaCharacteristic

Indicates that the option includes content that’s marked by the content author as intrinsic to the presentation of the asset.

static let legible: AVMediaCharacteristic

Indicates that the media is legible.

static let transcribesSpokenDialogForAccessibility: AVMediaCharacteristic

Indicates that the option includes legible content in the language of its specified locale that transcribes spoken dialog.

static let visual: AVMediaCharacteristic

Indicates that the media is visual.

Relationships

See Also

Supporting Types

Video Settings Dictionaries

Define output image and video formats by using these key and value constants.

Video Settings

These constants define dictionary keys for configuring video compression and compression settings for video assets.

struct AVFileType

A uniform type identifier for various file formats.

struct AVMediaType

An identifier for various media types.