iOS reference / AVFoundation / AVMutableMovieTrackAVFoundation · IOS API REFERENCE
AVMutableMovieTrack class · iOS 13.0+ · SDK 27.1
class AVMutableMovieTrackMembers (71) method · iOS 13.0+ addTrackAssociation TypeScript addTrackAssociation(movieTrack: AVMovieTrack, trackAssociationType: AVAssetTrack_AssociationType): voidSwift declaration func addTrackAssociation(to movieTrack: AVMovieTrack, type trackAssociationType: AVAssetTrack.AssociationType)method · iOS 8.0+ · Deprecated in iOS 27.0 append TypeScript appendDecodeTimePresentationTime(sampleBuffer: _CoreMedia_CMSampleBuffer, outDecodeTime?: (SDKHandle) | null, outPresentationTime?: (SDKHandle) | null): voidSwift declaration func append(_ sampleBuffer: CMSampleBuffer, decodeTime outDecodeTime: UnsafeMutablePointer<CMTime>?, presentationTime outPresentationTime: UnsafeMutablePointer<CMTime>?) throwsmethod · iOS 7.0+ associatedTracks TypeScript associatedTracks(trackAssociationType: AVAssetTrack_AssociationType): Array<AVAssetTrack>Swift declaration func associatedTracks(ofType trackAssociationType: AVAssetTrack.AssociationType) -> [AVAssetTrack]method · iOS 13.0+ hasMediaCharacteristic TypeScript hasMediaCharacteristic(mediaCharacteristic: AVMediaCharacteristic): booleanSwift declaration func hasMediaCharacteristic(_ mediaCharacteristic: AVMediaCharacteristic) -> Boolmethod · iOS 13.0+ insertEmptyTimeRange TypeScript insertEmptyTimeRange(timeRange: _CoreMedia_CMTimeRange): voidSwift declaration func insertEmptyTimeRange(_ timeRange: CMTimeRange)method · iOS 13.0+ insertMediaTimeRange TypeScript insertMediaTimeRange(mediaTimeRange: _CoreMedia_CMTimeRange, trackTimeRange: _CoreMedia_CMTimeRange): booleanSwift declaration func insertMediaTimeRange(_ mediaTimeRange: CMTimeRange, into trackTimeRange: CMTimeRange) -> Boolmethod · iOS 13.0+ insertTimeRange TypeScript insertTimeRange(timeRange: _CoreMedia_CMTimeRange, track: AVAssetTrack, startTime: _CoreMedia_CMTime, copySampleData: boolean): voidSwift declaration func insertTimeRange(_ timeRange: CMTimeRange, of track: AVAssetTrack, at startTime: CMTime, copySampleData: Bool) throwsmethod · iOS 13.0+ metadata TypeScript metadataForFormat(format: AVMetadataFormat): Array<AVMetadataItem>Swift declaration func metadata(forFormat format: AVMetadataFormat) -> [AVMetadataItem]method · iOS 13.0+ removeTimeRange TypeScript removeTimeRange(timeRange: _CoreMedia_CMTimeRange): voidSwift declaration func removeTimeRange(_ timeRange: CMTimeRange)method · iOS 13.0+ removeTrackAssociation TypeScript removeTrackAssociation(movieTrack: AVMovieTrack, trackAssociationType: AVAssetTrack_AssociationType): voidSwift declaration func removeTrackAssociation(to movieTrack: AVMovieTrack, type trackAssociationType: AVAssetTrack.AssociationType)method · iOS 13.0+ replaceFormatDescription TypeScript replaceFormatDescription(formatDescription: _CoreMedia_CMFormatDescription, newFormatDescription: _CoreMedia_CMFormatDescription): voidSwift declaration func replaceFormatDescription(_ formatDescription: CMFormatDescription, with newFormatDescription: CMFormatDescription)method · iOS 13.0+ samplePresentationTime TypeScript samplePresentationTime(trackTime: _CoreMedia_CMTime): _CoreMedia_CMTimeSwift declaration func samplePresentationTime(forTrackTime trackTime: CMTime) -> CMTimemethod · iOS 13.0+ scaleTimeRange TypeScript scaleTimeRange(timeRange: _CoreMedia_CMTimeRange, duration: _CoreMedia_CMTime): voidSwift declaration func scaleTimeRange(_ timeRange: CMTimeRange, toDuration duration: CMTime)method · iOS 13.0+ segment TypeScript segment(trackTime: _CoreMedia_CMTime): (AVAssetTrackSegment) | nullSwift declaration func segment(forTrackTime trackTime: CMTime) -> AVAssetTrackSegment?get · iOS 13.0+ alternateGroupID TypeScript get alternateGroupID(): numberSwift declaration var alternateGroupID: Int { get set }set · iOS 13.0+ alternateGroupID TypeScript set alternateGroupID(value: number)Swift declaration var alternateGroupID: Int { get set }get · iOS 13.0+ availableMetadataFormats TypeScript get availableMetadataFormats(): Array<AVMetadataFormat>Swift declaration var availableMetadataFormats: [AVMetadataFormat] { get }get · iOS 7.0+ availableTrackAssociationTypes TypeScript get availableTrackAssociationTypes(): Array<AVAssetTrack_AssociationType>Swift declaration var availableTrackAssociationTypes: [AVAssetTrack.AssociationType] { get }get · iOS 16.0+ canProvideSampleCursors TypeScript get canProvideSampleCursors(): booleanSwift declaration var canProvideSampleCursors: Bool { get }get · iOS 13.0+ cleanApertureDimensions TypeScript get cleanApertureDimensions(): { width: number; height: number }Swift declaration var cleanApertureDimensions: CGSize { get set }set · iOS 13.0+ cleanApertureDimensions TypeScript set cleanApertureDimensions(value: { width: number; height: number })Swift declaration var cleanApertureDimensions: CGSize { get set }get · iOS 13.0+ commonMetadata TypeScript get commonMetadata(): Array<AVMetadataItem>Swift declaration var commonMetadata: [AVMetadataItem] { get }get · iOS 11.0+ isDecodable TypeScript get isDecodable(): booleanSwift declaration var isDecodable: Bool { get }get · iOS 13.0+ isEnabled TypeScript get isEnabled(): booleanSwift declaration var isEnabled: Bool { get set }set · iOS 13.0+ isEnabled TypeScript set isEnabled(value: boolean)Swift declaration var isEnabled: Bool { get set }get · iOS 13.0+ encodedPixelsDimensions TypeScript get encodedPixelsDimensions(): { width: number; height: number }Swift declaration var encodedPixelsDimensions: CGSize { get set }set · iOS 13.0+ encodedPixelsDimensions TypeScript set encodedPixelsDimensions(value: { width: number; height: number })Swift declaration var encodedPixelsDimensions: CGSize { get set }get · iOS 13.0+ estimatedDataRate TypeScript get estimatedDataRate(): numberSwift declaration var estimatedDataRate: Float { get }get · iOS 13.0+ extendedLanguageTag TypeScript get extendedLanguageTag(): (string) | nullSwift declaration var extendedLanguageTag: String? { get set }set · iOS 13.0+ extendedLanguageTag TypeScript set extendedLanguageTag(value: (string) | null)Swift declaration var extendedLanguageTag: String? { get set }get · iOS 13.0+ formatDescriptions TypeScript get formatDescriptions(): Array<unknown>Swift declaration var formatDescriptions: [Any] { get }get · iOS 13.0+ hasAudioSampleDependencies TypeScript get hasAudioSampleDependencies(): booleanSwift declaration var hasAudioSampleDependencies: Bool { get }get · iOS 13.0+ hasProtectedContent TypeScript get hasProtectedContent(): booleanSwift declaration var hasProtectedContent: Bool { get }get · iOS 13.0+ languageCode TypeScript get languageCode(): (string) | nullSwift declaration var languageCode: String? { get set }set · iOS 13.0+ languageCode TypeScript set languageCode(value: (string) | null)Swift declaration var languageCode: String? { get set }get · iOS 13.0+ layer TypeScript get layer(): numberSwift declaration var layer: Int { get set }set · iOS 13.0+ layer TypeScript set layer(value: number)Swift declaration var layer: Int { get set }get · iOS 13.0+ mediaDataStorage TypeScript get mediaDataStorage(): (AVMediaDataStorage) | nullSwift declaration @NSCopying var mediaDataStorage: AVMediaDataStorage? { get set }set · iOS 13.0+ mediaDataStorage TypeScript set mediaDataStorage(value: (AVMediaDataStorage) | null)Swift declaration @NSCopying var mediaDataStorage: AVMediaDataStorage? { get set }get · iOS 13.0+ metadata TypeScript get metadata(): Array<AVMetadataItem>Swift declaration var metadata: [AVMetadataItem] { get set }set · iOS 13.0+ metadata TypeScript set metadata(value: Array<AVMetadataItem>)Swift declaration var metadata: [AVMetadataItem] { get set }get · iOS 7.0+ minFrameDuration TypeScript get minFrameDuration(): _CoreMedia_CMTimeSwift declaration var minFrameDuration: CMTime { get }get · iOS 13.0+ isModified TypeScript get isModified(): booleanSwift declaration var isModified: Bool { get set }set · iOS 13.0+ isModified TypeScript set isModified(value: boolean)Swift declaration var isModified: Bool { get set }get · iOS 13.0+ naturalSize TypeScript get naturalSize(): { width: number; height: number }Swift declaration var naturalSize: CGSize { get set }set · iOS 13.0+ naturalSize TypeScript set naturalSize(value: { width: number; height: number })Swift declaration var naturalSize: CGSize { get set }get · iOS 13.0+ naturalTimeScale TypeScript get naturalTimeScale(): numberSwift declaration var naturalTimeScale: CMTimeScale { get }get · iOS 13.0+ nominalFrameRate TypeScript get nominalFrameRate(): numberSwift declaration var nominalFrameRate: Float { get }get · iOS 5.0+ isPlayable TypeScript get isPlayable(): booleanSwift declaration var isPlayable: Bool { get }get · iOS 13.0+ preferredMediaChunkAlignment TypeScript get preferredMediaChunkAlignment(): numberSwift declaration var preferredMediaChunkAlignment: Int { get set }set · iOS 13.0+ preferredMediaChunkAlignment TypeScript set preferredMediaChunkAlignment(value: number)Swift declaration var preferredMediaChunkAlignment: Int { get set }get · iOS 13.0+ preferredMediaChunkDuration TypeScript get preferredMediaChunkDuration(): _CoreMedia_CMTimeSwift declaration var preferredMediaChunkDuration: CMTime { get set }set · iOS 13.0+ preferredMediaChunkDuration TypeScript set preferredMediaChunkDuration(value: _CoreMedia_CMTime)Swift declaration var preferredMediaChunkDuration: CMTime { get set }get · iOS 13.0+ preferredMediaChunkSize TypeScript get preferredMediaChunkSize(): numberSwift declaration var preferredMediaChunkSize: Int { get set }set · iOS 13.0+ preferredMediaChunkSize TypeScript set preferredMediaChunkSize(value: number)Swift declaration var preferredMediaChunkSize: Int { get set }get · iOS 13.0+ preferredTransform TypeScript get preferredTransform(): _CoreFoundation_CGAffineTransformSwift declaration var preferredTransform: CGAffineTransform { get set }set · iOS 13.0+ preferredTransform TypeScript set preferredTransform(value: _CoreFoundation_CGAffineTransform)Swift declaration var preferredTransform: CGAffineTransform { get set }get · iOS 13.0+ preferredVolume TypeScript get preferredVolume(): numberSwift declaration var preferredVolume: Float { get set }set · iOS 13.0+ preferredVolume TypeScript set preferredVolume(value: number)Swift declaration var preferredVolume: Float { get set }get · iOS 13.0+ productionApertureDimensions TypeScript get productionApertureDimensions(): { width: number; height: number }Swift declaration var productionApertureDimensions: CGSize { get set }set · iOS 13.0+ productionApertureDimensions TypeScript set productionApertureDimensions(value: { width: number; height: number })Swift declaration var productionApertureDimensions: CGSize { get set }get · iOS 8.0+ requiresFrameReordering TypeScript get requiresFrameReordering(): booleanSwift declaration var requiresFrameReordering: Bool { get }get · iOS 13.0+ sampleReferenceBaseURL TypeScript get sampleReferenceBaseURL(): (string) | nullSwift declaration var sampleReferenceBaseURL: URL? { get set }set · iOS 13.0+ sampleReferenceBaseURL TypeScript set sampleReferenceBaseURL(value: (string) | null)Swift declaration var sampleReferenceBaseURL: URL? { get set }get · iOS 13.0+ segments TypeScript get segments(): Array<AVAssetTrackSegment>Swift declaration var segments: [AVAssetTrackSegment] { get }get · iOS 13.0+ isSelfContained TypeScript get isSelfContained(): booleanSwift declaration var isSelfContained: Bool { get }get · iOS 13.0+ timeRange TypeScript get timeRange(): _CoreMedia_CMTimeRangeSwift declaration var timeRange: CMTimeRange { get }get · iOS 13.0+ timescale TypeScript get timescale(): numberSwift declaration var timescale: CMTimeScale { get set }set · iOS 13.0+ timescale TypeScript set timescale(value: number)Swift declaration var timescale: CMTimeScale { get set }get · iOS 13.0+ totalSampleDataLength TypeScript get totalSampleDataLength(): numberSwift declaration var totalSampleDataLength: Int64 { get }method · iOS 26.0+ append TypeScript append(sampleBuffer: _CoreMedia_CMReadySampleBuffer<_CoreMedia_CMSampleBuffer_DynamicContent>): { "decodeTime": _CoreMedia_CMTime; "presentationTime": _CoreMedia_CMTime }Swift declaration func append(_ sampleBuffer: CMReadySampleBuffer<CMSampleBuffer.DynamicContent>) throws -> (decodeTime: CMTime, presentationTime: CMTime)Appends sample data to a media file and adds sample references for the added data to a track's media sample tables.
If the ready sample buffer carries sample data, the sample data is written to the container specified by the track property mediaDataStorage if non-nil, or else by the movie property defaultMediaDataStorage if non-nil, and sample references will be appended to the track's media. If both media data storage properties are nil, the method will fail with an error.
If the sample buffer carries sample references only, sample data will not be written and sample references to the samples in their original container will be appended to the track's media as necessary.
Note regarding sample timing: in a track's media, the first sample's decode timestamp must always be zero. For an audio track, each sample buffer's duration is used as the sample decode duration. For other track types, difference between a sample's decode timestamp and the following sample's decode timestamp is used as the first sample's decode duration, so as to preserve the relative timing.
Note that this method does not modify the track's sourceTimeMappings but only appends sample references and sample data to the track's media. To make the new samples appear in the track's timeline, invoke -insertMediaTimeRange:intoTimeRange:. You can retrieve the mediaPresentationTimeRange property before and after appending a sequence of samples, using CMTimeRangeGetEnd on each to calculate the media TimeRange for -insertMediaTimeRange:intoTimeRange:.
Note that this method expects
- the sample buffer's media type must match with track's media type
- the sample buffer must contain encoded video (should not contain image buffers)
- the sample buffer must contain encoded media data (should not contain caption groups)
It's safe for multiple threads to call this method on different tracks at once.
- Parameter sampleBuffer: The CMReadySampleBuffer to be appended; this may be obtained from an instance of AVAssetReader.
- Returns: A tuple containing the decodeTime & presentationTime.
- decodeTime: CMTime structure to receive the decode time in the media of the first sample appended from the sample buffer.
- presentationTime: CMTime structure to receive the presentation time in the media of the first sample appended from the sample buffer. Pass NULL if you do not need this information.
- Throws: This method throws AVErrorDiskFull if the device containing the track's media data storage is full.
Skipped declarations 1 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.
AVMutableMovieTrack.init()
inherited init: clang: 'init' is unavailable
All AVFoundation types →