Warning, /multimedia/kdenlive/data/effects/README.md is written in an unsupported language. File is not indexed.
0001 # Effects (and Transitions) 0002 0003 Kdenlive uses MLT for all video/audio effects/filters. 0004 For filters that provide metadata the GUI can be generated automatically. 0005 If the generated GUI is not sufficient a custom one can be build using a XML 0006 file describing the effect and its parameters. 0007 0008 ## Important notes 0009 * Effects can be blacklisted in `kdenlive/data/blacklisted_effects.txt`. All effects with a custom XML GUI need to be blacklisted 0010 0011 * Effects can be added to "Main effects" list in `kdenlive/data/preferred_effects.txt` 0012 0013 * Effects can be assigned to an effect category in `kdenlive/data/kdenliveeffectscategory.rc`. 0014 0015 * Kdenlive parses the effect folder at each startup, so that if you have an XML file describing a new effect, 0016 just copy it to your `~/.kde/share/apps/kdenlive/effects/` folder and restart Kdenlive to enable the new effect. 0017 0018 ## The basic structure of a XML filter description: 0019 ```xml 0020 01 <!DOCTYPE kpartgui> 0021 02 <effect tag="mlt_filter" id="mlt_filter_custom1"> 0022 03 <name>Filter name</name> 0023 04 <description>Filter the image</description> 0024 05 <author>Anon</author> 0025 06 <parameter type="constant" name="amount" default="10" min="0" max="1000" factor="1000"> 0026 07 <name>Amount of filtering</name> 0027 08 </parameter> 0028 09 <parameter type="bool" name="enable" default="0"> 0029 10 <name>Enable</name> 0030 11 </parameter> 0031 15 </effect> 0032 ``` 0033 0034 Line 1: 0035 * required to make strings used in the effect translatable (see [here](https://api.kde.org/frameworks/ki18n/html/prg_guide.html)) 0036 0037 Line 2: 0038 0039 | tag name | description | 0040 | :------------| :------------- | 0041 | `tag` | MLT ("mlt_service") name of the effect (see [MLT Docs](https://www.mltframework.org/docs/)) | 0042 | `id` | internal kdenlive id, can be anything, but must be unique for each effect | 0043 | `type` | _(default = `"video"`)_ whether effect modifies video or audio (use `"audio"` then) | 0044 | `unique` | _(default = `"0"`)_ this effect cannot be attached multiple times to one clip (speed, fades, ...) | 0045 | `version` | _(optional)_ minimum version of the effect required to be available (works only if the MLT filter provides the necessary metadata) | 0046 | `dependency` | _(optional)_ ) MLT ("mlt_service") name of an effect or composition this asset depends on. If the dependency is not available this asset will not be available in Kdenlive too| 0047 0048 Line 3: 0049 * name of the effect that will appear to the user 0050 0051 Line 4: 0052 * Short description of the effect to be shown in the effects list 0053 * Additionally a <full> part can be added inside. It's content will be available in the effect stack (see [frei0r_lightgraffiti.xml](frei0r_lightgraffiti.xml) for an example): 0054 * supports HTML formatting (requires the use of CDATA) 0055 0056 Line 5: 0057 * name of the author(s) of the filter (not of the XML file ;)) 0058 0059 The rest: 0060 0061 ### list of tags for `<parameter>...</parameter>` 0062 0063 | tag name | description | 0064 | :-------- | :------------- | 0065 | `name` | visible name of the parameter (depending on the GUI this parameter uses) | 0066 | `comment` | _(optional)_ description of the parameter (support HTML formatting) (not yet supported by all widgets) | 0067 0068 ### list of attributes for `<parameter ...>` 0069 | attribute name | description | 0070 | :------------- | :------------- | 0071 | `name` | MLT filter parameter name | 0072 | `paramprefix` | a string to be prepended to the parameter value before passing it to MLT | 0073 | `suffix` | a string to be appended to the parameter (for UI display only) | 0074 | `min` | the minimal accepted value | 0075 | `max` | the maximal accepted value | 0076 | `visualmin` | the minimal value displayed in timeline keyframes (can be > than min) | 0077 | `visualmax` | the maximal value displayed in timeline keyframes (can be < than max) | 0078 | `default` | initial value, format depends on parameter type | 0079 | `value` | | 0080 | `optional` | if it is set, it means that this parameter can have an empty value. So then loading a project, don't set its value to default | 0081 | `type` | widget (GUI) to use. See section below for possible values 0082 0083 For double values these placeholders are available: 0084 0085 | placeholder | description | 0086 | :--------------------- | :---------- | 0087 | `%maxWidth ` | width of the current profile | 0088 | `%maxHeight` | height of the current profile | 0089 | `%width` | synonym for `%maxWidth` | 0090 | `%height` | synonym for `%maxHeight` | 0091 | `%contentWidth` | width of the target clip | 0092 | `%contentHeight` | height of the target clip | 0093 | `%fittedContentWidth` | width of the target clip scaled to fit current profile | 0094 | `%fittedContentHeight` | height of the target clip scaled to fit current profile | 0095 | `%out` | the out position of the current item | 0096 | `%fade"` | the default fade duration (can be configured by the user) | 0097 0098 0099 0100 #### values for attribute `type` 0101 0102 ##### `"fixed"` 0103 * sets a (MLT filter) parameter, but does not expose it to the user (no GUI) 0104 0105 ##### `"constant"` 0106 * number 0107 * represented by a slider 0108 * ###### additional parameter attributes: 0109 | attribute name | description | 0110 | :------------- | :------------- | 0111 | `factor` | _(optional)_ values coming from MLT will be multiplied with factor | 0112 | `offset` | _(optional)_ will be added to values coming from MLT after `factor` is applied | 0113 | `min` | smallest value possible (after multiplying with `factor`) | 0114 | `max` | largest value possible (after multiplying with `factor`) | 0115 | `suffix` | _(optional)_ displayed unit of the value 0116 0117 0118 ##### `"double"` 0119 * synonym for `"constant"` 0120 0121 0122 ##### `"bool"` 0123 * true/false 0124 * represented by a checkbox 0125 0126 0127 ##### `"switch"` 0128 * 2 possible options defined by strings (max / min) 0129 * represented by a checkbox 0130 0131 0132 ##### `"list"` 0133 * multiple choice 0134 * represented by a drop-down menu 0135 * ###### additional parameter attributes: 0136 | attribute name | description | 0137 | :------------- | :------------- | 0138 | `paramlist` | list of possible values separated by semicolon (no whitespaces!). Special keyword `%lumaPaths` available to show files in the applications luma directories | 0139 * ###### additional tags: 0140 | tag name | description | 0141 | :----------------- | :------------- | 0142 | `paramlistdisplay` | _(optional)_ list of names to use for the values separated by comma | 0143 0144 0145 ##### `"position"` 0146 * time stored as frame number 0147 * represented by a slider 0148 0149 0150 ##### `"color"` 0151 * color value, similar to representation HTML (`"#rrggbb"`/`"#aarrggbb"` or `"0xrrggbbaa"`) 0152 * represented by a button opening the KDE color dialog + a color picker button 0153 * ###### additional attributes: 0154 | attribute name | description | 0155 | :------------- | :------------- | 0156 | `alpha` | _(default = `"0"`)_ use to enable alpha support | 0157 0158 0159 ##### `"keyframe"` 0160 * keyframable number 0161 * keyframes are opt-in (only one keyframe by default -> should be preferred over "constant" whenever possible) 0162 * works with MLT filters that utilize start/end values 0163 * same attributes as "constant" 0164 * ###### additional attributes: 0165 | attribute name | description | 0166 | :------------- | :------------- | 0167 | `factor` | _(optional)_ values coming from MLT will be multiplied with factor | 0168 | `intimeline` | _(default = `"0"`)_ parameter to preselect for editing in the timeline (only one parameter can have `"1"`) | 0169 | `widget` | _(optional)_ GUI based on the standard keyframe GUI (possible values: `"corners"`) | 0170 0171 0172 ##### `"simplekeyframe"` 0173 * works with MLT filters that use mlt_geometry for keyframe support (includes all frei0r filters) 0174 * same attributes as "keyframe" 0175 0176 0177 ##### `"geometry"` 0178 * a rectangle: position + dimension + additional value 0179 * works with MLT filters using mlt_geometry 0180 * the rect can be edited on the project monitor 0181 * ###### additional attributes: 0182 | attribute name | description | 0183 | :------------- | :------------- | 0184 | `fixed` | _(default = `"0"`)_ use to disable keyframe support | 0185 | `showrotation` | _(default = `"0"`)_ use to enable support to 3 axis rotation | 0186 | `opacity` | _(default = `"true"`)_ use to disable support of the opacity setting | 0187 0188 You can set `default` to `"adjustcenter"` to adjust the geometry to the frame size 0189 0190 0191 ##### `"url"` 0192 * url/path 0193 * represented by button to open "file open" dialog 0194 * ###### additional attributes: 0195 | attribute name | description | 0196 | :------------- | :------------- | 0197 | `filter` | Filter for file extensions. Example : `"*.cpp *.cc *.C\|C++ Source Files\n*.h *.H\|Header files"` or as using MIME type: `"image/png text html"` | 0198 | `mode` | _(optional)_ Default is empty = open. `"save"` means none-exsisting files can be selected and gui label is "save" 0199 0200 <!-- Attention if you see this comment (i.e. your editor does not support markdown), note that the string above is probably not show right. Please consider "*.cpp *.cc *.C|C++ Source Files\n*.h *.H|Header" to be right --> 0201 0202 0203 ##### `"urllist"` 0204 * url/path 0205 * represented by button to open "file open" dialog (like `url`) but in addition the file can be selected from a predefined list (like `"list"`) and it has support for KNewStuff (e.g. https://store.kde.org) 0206 * ###### additional attributes: 0207 | attribute name | description | 0208 | :------------- | :------------- | 0209 | `filter` | Filter for file extensions. Example : `"Source Files (*.cpp *.cc *.C);;Header files (*.h *.H)"` (warning: this format is different to `url`!) | 0210 | `newstuff` | _(optional)_ KNewStuff config file (usually placed in `kdenlive/data` and added to to `kdenlive/src/uiresources.qrc` so the value looks like `":data/kdenlive_wipes.knsrc"`). If this is empty no download button is shown| 0211 | `paramlist` | list of possible values separated by semicolon (no whitespaces!). Special keywords `%lumaPaths` and `%lutPaths` are available to show files in the applications luma/lut directories | 0212 * ###### additional tags: 0213 | tag name | description | 0214 | :--------------- | :------------- | 0215 | `paramlistdisplay` | _(optional)_ list of names to use for the values separated by comma | 0216 0217 ##### `"wipe"` 0218 * special GUI for the wipe transition makes it possible to select a direction of a slide 0219 0220 0221 ##### `"curve"` 0222 * cubic curve editor for the frei0r color curves filter (old version) 0223 0224 0225 ##### `"bezier_spline"` 0226 * cubic Bézier spline editor for the frei0r color curves filter (new version, might be reused for other filters) 0227 0228 0229 ##### `"roto-spline"` 0230 * GUI for the rotoscoping filter (spline on the monitor) 0231 0232 0233 ##### `"keywords"` 0234 * Text entry with a selection of possible keywords to be inserted in the text. 0235 * ###### additional tags: 0236 | attribute name | description | 0237 | :------------- | :------------- | 0238 | `keywords` | list of possible keyword values separated by semicolon | 0239 | `keywordsdisplay` | list of names to use for the values separated by semicolon | 0240 0241 0242 ##### `"fontfamily"` 0243 * Font typeface entry 0244 0245 0246 ##### `"readonly"` 0247 * Data (usually an animated geometry) that can be pasted to clipboard or dragged/dropped on another geometry parameter. Cannot be modified directly by user.