Platforms to show: All Mac Windows Linux Cross-Platform

Back to AVAssetWriterMBS class.

AVAssetWriterMBS.addInput(input as AVAssetWriterInputMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Adds an input to the receiver.

input: The asset writer input to be added.

Inputs are created with a media type and output settings. These both must be compatible with the receiver.
You cannot add inputs after writing has started.

AVAssetWriterMBS.addInputGroup(inputGroup as AVAssetWriterInputGroupMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 14.0 ✅ Yes ❌ No ❌ No ✅ Yes All
Adds an asset writer input group instance to the asset writer.

inputGroup: The asset writer input group to be added.

The asset writer will mark the tracks associated with grouped inputs as mutually exclusive to each other for playback or other processing, if the output container format supports mutually exclusive relationships among tracks.
When an input group is added to an asset writer, the value of marksOutputTrackAsEnabled for the AVAssetWriterInput instance set as the default input will automatically be set to true and all other inputs in the group will be set to false.
Input groups cannot be added after writing has started.
Available in OS X v10.9 and later.

AVAssetWriterMBS.availableMediaTypes as string()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The media types for which inputs can be added (read-only)

Some media types may not be accepted within the type of file with which the writer was initialized.

AVAssetWriterMBS.canAddInput(input as AVAssetWriterInputMBS) as boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Returns a Boolean value that indicates whether a given input can be added to the receiver.

input: The asset writer input to be tested.

Returns true if input can be added, otherwise false.
You cannot add an input that accepts media data of a type that is not compatible with the receiver, or with output settings that are not compatible with the receiver.

AVAssetWriterMBS.canAddInputGroup(input as AVAssetWriterInputGroupMBS) as boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 14.0 ✅ Yes ❌ No ❌ No ✅ Yes All
Returns whether an input group can be added to the receiver.

inputGroup: The asset writer input group to be added.
Returns true if inputGroup can be added to the inputGroups, otherwise false.

If outputFileType specifies a container format that does not support mutually exclusive relationships among tracks, or if the specified instance of AVAssetWriterInputGroup contains inputs with media types that cannot be related, the group cannot be added.
Available in OS X v10.9 and later.

AVAssetWriterMBS.canApplyOutputSettings(outputSettings as dictionary, mediaType as string) as boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Returns a Boolean value that indicates whether give output settings are supported for a specified media type.

outputSettings: The output settings to validate.
mediaType: The media type for which the output settings are validated.

Returns true if the output settings in outputSettings are supported for mediaType, otherwise false.
You can use this method to test, for example, whether video output settings that specify H.264 compression will fail (as would be the case if the container format for which the writer was initialized does not support the carriage of H.264-compressed video).

AVAssetWriterMBS.cancelWriting

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Instructs the writer to cancel writing.

This method blocks until writing is canceled.

AVAssetWriterMBS.Constructor(outputFile as folderitem, outputFileType as string, byref error as NSErrorMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Initializes an asset writer for writing to the file identified by a given URL in a format specified by a given UTI.

outputFile: The location of the file to be written.
outputFileType: The UTI-identified format of the file to be written.
For example, AVFileTypeQuickTimeMovie for a QuickTime movie file, AVFileTypeMPEG4 for an MPEG-4 file, and AVFileTypeAMR for an adaptive multi-rate audio format file.
Error: If initialization of the asset writer fails, upon return contains an error object that describes the problem.

Returns an asset writer for writing to the file identified by URL in the format specified by outputFileType, or nil if the writer could not be initialized.

Writing will fail if a file already exists at URL. UTIs for container formats that can be written are declared in AVMediaFormat.h.

See also:

AVAssetWriterMBS.Constructor(outputURL as string, outputFileType as string, byref error as NSErrorMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Initializes an asset writer for writing to the file identified by a given URL in a format specified by a given UTI.

outputURL: The location of the file to be written. The URL must be a file URL.
outputFileType: The UTI-identified format of the file to be written.
For example, AVFileTypeQuickTimeMovie for a QuickTime movie file, AVFileTypeMPEG4 for an MPEG-4 file, and AVFileTypeAMR for an adaptive multi-rate audio format file.
Error: If initialization of the asset writer fails, upon return contains an error object that describes the problem.

Returns an asset writer for writing to the file identified by URL in the format specified by outputFileType, or nil if the writer could not be initialized.

Writing will fail if a file already exists at URL. UTIs for container formats that can be written are declared in AVMediaFormat.h.

See also:

AVAssetWriterMBS.endSessionAtSourceTime(endTime as CMTimeMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Concludes an explicit sample-writing session.

endTime: The ending asset time for the sample-writing session, in the timeline of the source samples.

You may invoke this method to complete a session you began by invoking startSessionAtSourceTime.

You do not need to call this method; if you call finishWriting without calling this method, the session's effective end time will be the latest end timestamp of the session's samples (that is, no samples will be edited out at the end).

The endTime defines the moment on the timeline of source samples at which the session ends. In the case of the QuickTime movie file format, each sample-writing session's startTime…endTime pair corresponds to a period of movie time into which the session's samples are inserted. Samples with later timestamps will be still be added to the media but will be edited out of the movie. So if the first session has duration D1 = endTime - startTime, it will be inserted into the movie at movie time 0 through D1; the second session would be inserted into the movie at movie time D1 through D1+D2, and so on.

It is legal to have a session with no samples; this will cause creation of an empty edit of the prescribed duration.

Some examples using this method:

AVAssetWriterMBS.error as NSErrorMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
If the receiver's status is AVAssetWriterStatusFailed, describes the error that caused the failure. (read-only)

The value of this property is an error object that describes what caused the receiver to no longer be able to write to its output file. If the receiver's status is not AVAssetWriterStatusFailed, the value of this property is nil.

AVAssetWriterMBS.finishWriting as boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Completes the writing of the output file.

Returns true if writing can be finished, otherwise false.

This method blocks until writing is finished. When this method returns successfully, the file being written by the receiver is complete and ready to use. You can check the values of the status and error properties for more information on why writing could not be finished.

Some examples using this method:

AVAssetWriterMBS.finishWritingWithCompletionHandler(tag as Variant = nil)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 14.0 ✅ Yes ❌ No ❌ No ✅ Yes All
Marks all unfinished inputs as finished and completes the writing of the output file.

Calls later AVFoundationMBS.finishWritingCompleted event.

This method returns immediately and causes its work to be performed asynchronously. To determine whether the operation succeeded, you can check the value of the status property within the handler parameter. If the status is AVAssetWriterStatusFailed, then the error property will contain an instance of NSError that describes the failure.

To guarantee that all sample buffers are successfully written, you must ensure that all calls to appendSampleBuffer and appendPixelBuffer have returned before invoking this method.

Available in OS X v10.9 and later.

With tag you can pass any value you like to the event later. This can be for example an object reference or a number in an array. Be aware that the reference to this tag value is kept until the event is called and can cause memory reference cycles.

AVAssetWriterMBS.inputGroups as AVAssetWriterInputGroupMBS()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 14.0 ✅ Yes ❌ No ❌ No ✅ Yes All
An array of asset writer input groups that have been added to the asset writer. (read-only)

The value of this property is an array containing concrete instances of AVAssetWriterInputGroup.
Input groups are added to the receiver using the addInputGroup method.
Available in OS X v10.9 and later.

AVAssetWriterMBS.inputs as AVAssetWriterInputMBS()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The asset writer inputs associated with the asset writer. (read-only)

The array contains AVAssetWriterInput objects.

AVAssetWriterMBS.metadata as AVMetadataItemMBS()

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The collection of metadata for association with the asset and for carriage in the output file.

The array contains AVMetadataItem objects.
See also SetMetaData.

AVAssetWriterMBS.movieFragmentInterval as CMTimeMBS

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The time to elapse between writing movie fragments.

This property only applies to the QuickTime movie file type.

Sometimes a write operation may be unexpectedly interrupted (because a process crashes, for example). By using movie fragments, such a partially-written QuickTime movie file can be successfully opened and played up to the largest multiple of movieFragmentInterval smaller than the point at which the write operation was interrupted.

The default value is kCMTimeInvalid, which means that movie fragments should not be used, that only a movie atom describing all of the media in the file should be written.

You cannot set the value after writing has started.

AVAssetWriterMBS.movieTimeScale as Double

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Specifies the asset-level time scale to be used.

For file types that contain a moov atom, such as QuickTime Movie files, specifies the asset-level time scale to be used.
The default value is 0, which indicates that you should choose a convenient value, if applicable.
You cannot set the value after writing has started.

AVAssetWriterMBS.outputFileType as string

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The file format of the writer's output. (read-only)

The format is identified by the UTI, specified when the writer is initialized.

AVAssetWriterMBS.outputURL as string

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The URL to which output is directed. (read-only)

The URL is the same as that specified when the writer is initialized.

AVAssetWriterMBS.setMetadata(items() as AVMetadataItemMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Set the collection of metadata for association with the asset and for carriage in the output file.

The array contains AVMetadataItem objects.
You cannot set the value after writing has started.

AVAssetWriterMBS.shouldOptimizeForNetworkUse as boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Indicates whether the output file should be written in way that makes it more suitable for playback over a network.

When the value of this property is true, the output file will be written in such a way that playback can start after only a small amount of the file is downloaded.

The default value is false.
You cannot set the value after writing has started.

AVAssetWriterMBS.startSessionAtSourceTime(startTime as CMTimeMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Initiates a sample-writing session for the output asset.

startTime: The starting asset time for the sample-writing session, in the timeline of the source samples.

Sequences of sample data appended to the asset writer inputs are considered to fall within "sample-writing sessions." You must call this method to begin one of these sessions.

Each writing session has a start time which, where allowed by the file format being written, defines the mapping from the timeline of source samples onto the file's timeline. In the case of the QuickTime movie file format, the first session begins at movie time 0, so a sample appended with timestamp T will be played at movie time (T-startTime). Samples with timestamps before startTime will still be added to the output media but will be edited out of the movie. If the earliest buffer for an input is later than startTime, an empty edit will be inserted to preserve synchronization between tracks of the output asset.

It is an error to invoke this method twice in a row without invoking endSessionAtSourceTime in between.

Some examples using this method:

AVAssetWriterMBS.startWriting as boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
Tells the writer to start writing its output.

Returns true if writing can be started, otherwise false.

You must call this method after all inputs have added and other configuration properties have been set to tell the receiver to prepare for writing. After invoking this method, you can start writing sessions using startSessionAtSourceTime and can write media samples using the methods provided by each of the writer's inputs.

status signals the terminal state of the asset reader, and if a failure occurs, error describes the failure.

Some examples using this method:

AVAssetWriterMBS.status as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
method AVFoundation MBS AVFoundation Plugin 13.2 ✅ Yes ❌ No ❌ No ✅ Yes All
The status of writing samples to the receiver's output file. (read-only)

The value of this property is an AVAssetWriterStatus constant that indicates whether writing is in progress, has completed successfully, has been canceled, or has failed. If an attempt to append samples fails, you can check the value of this property to determine why no more samples could be written.

The items on this page are in the following plugins: MBS AVFoundation Plugin.


The biggest plugin in space...