MLT XML Annotations

Shotcut adds several XML elements and attributes to the MLT XML it generates. Also, currently it needs many of these to properly map MLT objects into the Shotcut UI. Eveyhw

MLT Object MLT Property XPath Description
tractor shotcut /mlt/tractor/property[@name = ‘shotcut’] Set to 1 on a to indicate that Shotcut can edit this MLT XML.
tractor shotcut:virtual /mlt/tractor/property[@name = ‘shotcut:virtual’] Set to 1 to force Shotcut to load this XML as a virtual clip.
tractor shotcut:trackHeight /mlt/tractor/property[@name = ‘shotcut:trackHeight’] Stores the track height in pixel units.
tractor shotcut:scaleFactor /mlt/tractor/property[@name = ‘shotcut:scaleFactor’] Stores the timeline zoom level as a real number.
tractor shotcut:markers /mlt/tractor/property[@name = ‘shotcut:markers’] Stores the timeline markers using a child properties element.
playlist shotcut:name //playlist/property[@name = ‘shotcut:name’] The name of the track in the multitrack timeline.
playlist shotcut:audio //playlist/property[@name = ‘shotcut:audio’] Set to 1 to indicate this is an audio-only track.
playlist shotcut:video //playlist/property[@name = ‘shotcut:video’] Set to 1 to indicate this is an audio/video track.
filter shotcut:filter //filter/property[@name = ‘shotcut:filter’] This is the Shotcut identifier for a filter. There can be more than one Shotcut filter UI for a single MLT filter. This provides disambiguation. The identifier comes from the filter’s QML Metadata.
transition shotcut:transition //transition/property[@name = ‘shotcut:transition’] This is the Shotcut identifier for a transition. There can be more than one Shotcut transition UI for a single MLT transition. This provides disambiguation. A lot of times in the code, this is just checked to see if the MLT transition represents a transition that the user added instead of one that Shotcut adds automatically to provide audio mixing and video compositing.
producer shotcut:comment //producer/property[@name = ‘shotcut:comment’] Stores the user’s comments about a clip or shot.
producer shotcut:producer //producer/property[@name = ‘shotcut:producer’] This is the Shotcut identifier for a producer. There can be more than one Shotcut producer UI for a single MLT producer. Or, there can be more than one MLT producer for a single Shotcut UI. This property can be used to specify the proper Shotcut UI in case it can not be inferred from the producer service name.
producer shotcut_aspect_num //producer[property/@name =’mlt_service’ and (property/text() = ‘avformat’ or property/text() = ‘qimage’ or property/text() = ‘pixbuf’)]/property[@name = ‘shotcut_aspect_num’] The numerator of the display aspect ratio.
producer shotcut_aspect_den //producer[property/@name = ‘mlt_service’ and (property/text() = ‘avformat’ or property/text() = ‘qimage’ or property/text() = ‘pixbuf’)]/property[@name = ‘shotcut_aspect_den’] The denominator of the display aspect ratio.
producer shotcut_sequence //producer[property/@name = ‘mlt_service’ and (property/text() = ‘qimage’ or property/text() = ‘pixbuf’)]/property[@name=’shotcut_sequence’] Set to 1 to indicate this is an image sequence.
producer shotcut_resource //producer[property/@name = ‘mlt_service’ and (property/text() = ‘qimage’ or property/text() = ‘pixbuf’)]/property[@name=’shotcut_resource’] When working with image sequences, this stores the image file that the user selected since Shotcut will set the MLT resource property to something suitable for image sequences.
producer shotcut:caption //producer/property[@name = ‘shotcut:caption’] Used to provide a friendly name for a producer to be used for display to the user
producer shotcut:detail //producer/property[@name = ‘shotcut:detail’] Used to provide a more detailed description for the producer than the caption. For example if the caption is the file name, the detail could be the full file path
producer shotcut:hash //producer/property[@name = ‘shotcut:hash’] A MD5 hash of a media file (whole file if less than 2 MB, or first MB followed by last MB for files larger than 2 MB)
producer shotcut:group //producer/property[@name = ‘shotcut:group’] A numeric value for a unique group of clips, start and skipped values are unimportant
producer shotcut:skipConvert //producer/property[@name = ‘shotcut:skipConvert’] If set 1, then Shotcut will not prompt to convert the file if it believes it to be variable frame rate or unseekable.
producer shotcut:resource //producer/property[@name = ‘shotcut:resource’] A copy of the resource property used by the proxy manager.
producer shotcut:disableProxy //producer/property[@name = ‘shotcut:disableProxy’] Set to 1 to indicate that proxy should not be generated for this producer.
producer shotcut:originalResource //producer[property/@name =’mlt_service’ and property/text() = ‘avformat’]/property[@name = ‘shotcut:originalResource’] A copy of the resource property used by the Reverse action to restore original when reversing a reversed.
producer shotcut:originalIn //producer[property/@name =’mlt_service’ and property/text() = ‘avformat’]/property[@name = ‘shotcut:originalResource’] A copy of the in property used by the Reverse action to restore original when reversing a reversed.
producer shotcut:originalOut //producer[property/@name =’mlt_service’ and property/text() = ‘avformat’]/property[@name = ‘shotcut:originalOut’] A copy of the out property used by the Reverse action to restore original when reversing a reversed.
producer shotcut:defaultAudioIndex //producer[property/@name =’mlt_service’ and property/text() = ‘avformat’]/property[@name = ‘shotcut:originalOut’] A copy of the audio_index property used by the audio levels/waveform generator.
producer shotcut:proxy.meta //producer[property/@name =’mlt_service’ and property/text() = ‘avformat’]/property[@name = ‘shotcut:proxy.meta’] Indicates whether the MLT properties beginning with “meta.” reflect the proxy (1) or source media.
various shotcut:projectAudioChannels //property[@name = ‘shotcut:skipConvert’] Sets the number of audio channels to use for this project. 2 is used if not specified.
various shotcut:projectFolder //property[@name = ‘shotcut:projectFolder’] Set to 1 to indicate this project uses a project folder.
various shotcut:projectNote //property[@name = ‘shotcut:projectNotes’] The text contents of the Notes panel.
filter shotcut:animIn //filter/property[@name = ‘shotcut:animIn’] The duration in frames for the simple keyframes’ starting animation.
filter shotcut:animOut //filter/property[@name = ‘shotcut:animOut’] The duration in frames for the simple keyframes’ ending animation.
filter shotcut:backup //filter/property[@name = ‘shotcut:backup’] Motion tracking uses this to save the property value of whatever parameter is affected before applying tracking results. It uses it to restore the state when re-apply tracking (different operation or tracker) or choosing to reset.

Warning: All of these are subject to change as Shotcut is still in development.

In addition to these, Shotcut expects the following things in regular MLT XML:

Note: As of version 21.05.01 there is now a chain element instead of producer when the mlt_service is avformat. So, all of the things pertaining to producer in the table above also apply to chain.

About

Shotcut is a free, open source, cross-platform video editor for Windows, Mac and Linux. Major features include support for a wide range of formats; no import required meaning native timeline editing; Blackmagic Design support for input and preview monitoring; and resolution support to 4k.

Social Links

Copyright © 2011-2024 by Meltytech, LLC
Shotcut is a trademark of Meltytech, LLC.