---
title: AVMutableVideoComposition
framework: avfoundation
role: symbol
role_heading: Class
path: avfoundation/avmutablevideocomposition
---

# AVMutableVideoComposition

A mutable video composition subclass.

## Declaration

```swift
class AVMutableVideoComposition
```

## Overview

Overview If you use the built-in video compositor, the instructions a video composition contain can specify a spatial transformation, an opacity value, and a cropping rectangle for each video source. This values can vary over time by applying linear ramping functions. You can create a custom video compositor by implementing the AVVideoCompositing protocol. The system provides the custom video compositor with pixel buffers for each of its video sources during playback, and can perform arbitrary graphical operations on them to produce visual output.

## Topics

### Creating a video composition

- [videoComposition(withPropertiesOf:completionHandler:)](avfoundation/avmutablevideocomposition/videocomposition(withpropertiesof:completionhandler:).md)
- [videoComposition(withPropertiesOf:prototypeInstruction:completionHandler:)](avfoundation/avmutablevideocomposition/videocomposition(withpropertiesof:prototypeinstruction:completionhandler:).md)
- [videoComposition(with:applyingCIFiltersWithHandler:completionHandler:)](avfoundation/avmutablevideocomposition/videocomposition(with:applyingcifilterswithhandler:completionhandler:).md)
- [init(propertiesOf:)](avfoundation/avmutablevideocomposition/init(propertiesof:).md)
- [init(propertiesOf:prototypeInstruction:)](avfoundation/avmutablevideocomposition/init(propertiesof:prototypeinstruction:).md)
- [init(asset:applyingCIFiltersWithHandler:)](avfoundation/avmutablevideocomposition/init(asset:applyingcifilterswithhandler:).md)

### Configuring video composition properties

- [frameDuration](avfoundation/avmutablevideocomposition/frameduration.md)
- [renderSize](avfoundation/avmutablevideocomposition/rendersize.md)
- [renderScale](avfoundation/avmutablevideocomposition/renderscale.md)
- [animationTool](avfoundation/avmutablevideocomposition/animationtool.md)

### Specifying composition instructions

- [instructions](avfoundation/avmutablevideocomposition/instructions.md)
- [AVVideoCompositionInstructionProtocol](avfoundation/avvideocompositioninstructionprotocol.md)

### Configuring HDR metadata

- [perFrameHDRDisplayMetadataPolicy](avfoundation/avmutablevideocomposition/perframehdrdisplaymetadatapolicy.md)
- [AVVideoComposition.PerFrameHDRDisplayMetadataPolicy](avfoundation/avvideocomposition/perframehdrdisplaymetadatapolicy-swift.struct.md)

### Configuring color

- [colorPrimaries](avfoundation/avmutablevideocomposition/colorprimaries.md)
- [colorTransferFunction](avfoundation/avmutablevideocomposition/colortransferfunction.md)
- [colorYCbCrMatrix](avfoundation/avmutablevideocomposition/colorycbcrmatrix.md)

### Identifying source tracks

- [sourceTrackIDForFrameTiming](avfoundation/avmutablevideocomposition/sourcetrackidforframetiming.md)
- [sourceSampleDataTrackIDs](avfoundation/avmutablevideocomposition/sourcesampledatatrackids-7i02t.md)

### Specifying a custom compositor

- [customVideoCompositorClass](avfoundation/avmutablevideocomposition/customvideocompositorclass.md)

### Initializers

- [init(propertiesOfAsset:prototypeInstruction:)](avfoundation/avmutablevideocomposition/init(propertiesofasset:prototypeinstruction:).md)

## Relationships

### Inherits From

- [AVVideoComposition](avfoundation/avvideocomposition.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSMutableCopying](foundation/nsmutablecopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Built-in video compositing

- [Editing and playing HDR video](avfoundation/editing-and-playing-hdr-video.md)
- [Debugging AVFoundation audio mixes, compositions, and video compositions](avfoundation/debugging-avfoundation-audio-mixes-compositions-and-video-compositions.md)
- [AVVideoComposition](avfoundation/avvideocomposition.md)
- [AVVideoCompositionInstruction](avfoundation/avvideocompositioninstruction-swift.class.md)
- [AVVideoCompositionLayerInstruction](avfoundation/avvideocompositionlayerinstruction.md)
- [AVMutableVideoCompositionInstruction](avfoundation/avmutablevideocompositioninstruction.md)
- [AVMutableVideoCompositionLayerInstruction](avfoundation/avmutablevideocompositionlayerinstruction.md)
