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. |
filter | shotcut:hidden | //filter/property[@name = ‘shotcut:hidden’] | Set 1 to hide this filter instance in the Shotcut UI. |
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
.