4 Services marked as "(Proprietary)" are not distributed with the GPL version
14 ffmpeg libavformat based producer for video and audio.
18 'file' - a filename specification or URL in the form:
19 [{protocol}|{format}]:{resource}[?{format-parameter}[&{format-parameter}...]]
20 For example, video4linux:/dev/video1?width:320&height:240
21 Note: on the bash command line, & must be escaped as '\&'.
22 Also, note the use of ':' instead of '=' for parameters.
23 Use 'ffmpeg -formats' to see a list of supported protocols
28 Format parameters only appear to be useful with 'video4linux' or
29 'audio_device' formats. For 'video4linux' the parameters are
30 width, height, frame_rate, frame_rate_base, and standard (ntsc|pal).
31 For 'audio_device' the parameters are channels and sample_rate.
33 Initialisation Properties
35 int video_index - index of video stream to use (-1 is off)
36 int audio_index - index of audio stream to use (-1 is off)
42 string resource - file location
43 double fps - this is fixed at 25 for PAL currently
44 double source_fps - the framerate of the resource
45 double aspect_ratio - sample aspect ratio of the resource
46 - this is determined on every frame read
50 ffmpeg must be configured as --enable-shared and installed prior
51 to compilation of mlt.
55 Audio sync discrepancy with some content.
56 Not all libavformat supported formats are seekable.
57 Ogg Vorbis is currently broken.
58 MPEG seeking is inaccurate - doesn't seek to i-frames so you may
59 get junk for a few frames.
60 RAW DV seeking not supported.
61 Fails to play beyond first frame of video of sources with PTS not
62 starting at 0 (video4linux).
68 A friendly giant that likes to rhyme and throw rocks
72 'file' - a filename specification:
73 [{mlt-service}:]{resource} | {mlt-service}
74 - can also be the name of a producer service that can
75 accept the resource specified post construction.
77 Initialisation Properties
81 + all producer initialising properties
85 string resource - file location
86 + all producer read only properties
90 This producer is has two roles:
92 1. it handles the mappings of all file names to the other
94 2. it attaches normalising filters (rescale, resize and resample)
95 to the producers (when necessary).
97 This producer simplifies many aspects of use. Essentially, it
98 ensures that a consumer will receive images and audio precisely as
114 A simple colour generator.
118 colour - A colour value is a hexadecimal representation of RGB plus
119 alpha channel as 0xrrggbbaa.
120 - Also colours can be the words: white, black, red, green,
122 - The default colour is black.
124 Initialisation Properties
145 Test case pipe based producer for video and audio.
149 'file' - produce a/v from file
150 v4l - produce a/v from video4linux and dsp device
152 Initialisation Properties
154 string video_type - "file" or "v4l"
155 string video_file - file or v4l device
156 string video_size - WxH of video to produce (default: "")
157 int video_loop - loop video until audio exhausted (default: 0)
158 string audio_type - "file" or "dsp"
159 string audio_file - file or dsp device
160 int audio_rate - audio frequency (default: 48000)
161 int audio_channels - audio channels (default: 2)
162 int audio_track - audio track to use (default: 0)
163 int audio_loop - loop audio until video exhausted (default: 0)
166 double fps - output frames per second (default: 25)
167 double aspect_ratio - aspect ratio of video
171 string resource - file or "v4l"
172 int end_of_clip - holds 1 when input is exhausted
180 in point setting is broken.
182 Implementation does not allow fast random access.
188 libdv based decoder for video and audio.
192 'file' - produce a/v from file
194 Initialisation Properties
201 string resource - file location
202 double fps - output frames per second
203 int length - duration of resource (in frames)
207 string quality - one of "best," "fast" or anything else chooses
216 DVCPRO is incorrectly identified as 16:9 aspect ratio. You must use
217 libdv from CVS or a post 0.101 release.
223 MainConcept based dv decoder for video and audio.
227 'file' - produce a/v from file
229 Initialisation Properties
236 string resource - file location
237 double fps - output frames per second
238 int length - duration of resource (in frames)
242 MainConcept DV or DVCPRO SDK, libdv.
243 "dv_sdk" installed parallel to mlt.
253 MainConcept based mpeg decoder for video and audio.
257 'file' - produce a/v from file
259 Initialisation Properties
266 string resource - file location
267 double fps - output frames per second
268 double aspect_ratio - sample aspect ratio of video
269 int length - duration of resource (in frames)
273 MainConcept MPEG SDK.
274 "mpeg_sdk_release" installed parallel to mlt.
284 A title generator that uses the Pango international text layout
285 and Freetype2 font renderer.
289 string file - a text file containing Pango markup, see:
290 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
291 - requires xml-like encoding special chars from:
292 <, >, & -to- <, >, &
296 Supplying a filename with extension ".txt" causes the Fezzik
297 producer to load with pango. If the filename begins with "+" the
298 pango producer interprets the filename as pango text. This is a
299 shortcut to embed titles in inigo commands. For westley, it is
300 recommended that you embed the title text in the property value.
302 Pango has builtin scaling. It will rescale the originally rendered
303 title to whatever the consumer requests. Therefore, it will lose
304 its aspect ratio if so requested, and it is up to the consumer to
305 request a proper width and height that maintains the image aspect.
307 Initialisation Properties
314 string markup - a string containing Pango markup see:
315 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
316 - requires xml-like encoding special chars from:
317 <, >, & -to- <, >, &
318 string fgcolour - an RGBA colour specification of the text
320 string bgcolour - an RGBA colour of the background rectangle
321 string align - paragraph alignment: left, centre, right
322 - also, numbers 0, 1 and 2 can be used respectively.
323 int pad - the number of pixels to pad the background rectangle
324 beyond edges of text. default 0.
325 string markup - see constructor argument
326 string text - non-markup string in UTF-8 encoding (can contain
327 markup chars un-encoded)
328 string font - the default typeface to use when not using markup.
329 default "Sans 48". FreeType2 renders at 72 dpi.
330 string encoding - the text encoding type of the input if not UTF-8.
331 - see 'iconv --list' for a list of possible inputs.
335 string resource - the text/markup file or "pango" if no file.
336 int real_width - the original, unscaled width of the rendered title.
337 int real_height - the original, unscaled height of the title.
338 int width - the last requested scaled image width.
339 int height - the last requested scaled image height.
343 libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0,
344 libglib-2.0, libgobject-2.0, libgmodule-2.0, libfontconfig.
348 The foreground and background Pango markup span attributes are not
350 Word wrapping is not supported.
356 A still graphics to video generator using gdk-pixbuf
360 'file' - The name of a graphics file loadable by
361 a gdk-pixbuf loader. see /usr/lib/gdk-pixbuf/loaders
362 definitely png, jpeg, tiff, pnm, and xpm
363 - If "%" in filename, the filename is used with sprintf
364 generate a filename from a counter for multi-file/flipbook
365 animation. The file sequence ends when numeric
367 - If filename contains "/.all.", suffix with an extension to
368 load all pictures with matching extension from a directory.
369 - If filename contains the string "<svg", then pixbuf tries
370 to load the filename as inline SVG XML, which is convenient
375 Pixbuf has builtin scaling. It will rescale the originally rendered
376 title to whatever the consumer requests. Therefore, it will lose
377 its aspect ratio if so requested, and it is up to the consumer to
378 request a proper width and height that maintains the image aspect.
380 Initialisation Properties
387 int ttl - how long (in frames) to repeat each picture in file
388 sequences. default is 25.
392 string resource - file location. See Constructor Argument above.
393 int real_width - the original, unscaled width of the rendered title.
394 int real_height - the original, unscaled height of the title.
395 int width - the last requested scaled image width.
396 int height - the last requested scaled image height.
400 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
404 XXX: in/out settings are incorrectly handled.
410 Reads a stream of contiguous PPM images.
414 command - a shell command to run something that produces ppm
417 Initialisation Properties
423 string resource - the command
431 Since it uses pipes, it is not compatible with bluefish.
437 Construct a service network from an XML description.
438 See docs/westley.txt.
442 URL - an XML text file containing westley XML (schema/DTD pending)
443 - Since westley files can be parameterised, the URL syntax is:
444 {file-name}[?{param-name}{'='|':'}{param-value}[&{param-name}{'='|':'}{param-value}...]]
445 A colon is allowed instead of an equal sign to pacify inigo,
446 who tokenises anything with an equal sign as a property
447 setting. Also, when running inigo from the shell, beware of
448 the '?' and shell filename expansion. You can surround the URL
449 with single quotations to prevent expansion. Finally, fezzik
450 will fail to match the filename when you use parameters, so
451 preface the url with 'westley:' to force fezzik to load with
456 string resource - file location
464 Non-referenced producers and playlists are not destroyed until the
465 network is destroyed.
466 A referenced producer or playlist must appear before the reference.
467 A filter that occurs before a producer has been defined causes a
474 OGG Vorbis file reader.
478 'file' - file to use (only .ogg supported at the moment)
480 Initialisation Properties
487 double fps - this is fixed at 25 for PAL currently
495 Fixed frame size (PAL audio chunks).
496 Doesn't cover ogg files with multiple, differing sections.
505 Shift the luma component using a constant value.
509 start - the constant floating point numeric value to apply.
512 Initialisation Properties
516 double start - see Constructor Argument above.
517 double end - the ending adjustment value. the filter interpolates
518 between the start and end adjustments over the
519 duration of the effect.
531 Does not go completely to black or white.
538 Copy audio from one channel to another channel.
542 to - the 0-indexed channel to copy into, default is 1.
547 int from - the channel from which to copy, default is 0.
563 Deinterlace a frame consisting of two fields using bob, weave,
564 greedy, one-field, and linear blend methods. This code is
565 appropriated from the Xine XV video output plugin.
569 method - a string containing the deinterlace method: bob, weave,
570 greedy, onefield, or linearblend. The default is
573 Initialisation Properties
588 If the frame properties "progressive" or "consumer_progressive"
589 are non-zero, then the filter is not applied. Also, if applied,
590 this sets the frame property "progressive" to 1.
598 Not a bug, but it only provides fair quality.
605 Use ffmpeg executable to substitute audio stream.
609 file - filename of a WAV, Ogg Vorbis (--enable-vorbis),
610 MP3 (--enable-mp3lame), or AC-3 (--enable-a52) audio file.
612 Initialisation Properties
619 string resource - file
623 ffmpeg plus for ffmpeg:
624 libogg and libvorbis for Ogg Vorbis, libmp3lame for MP3, liba52 for AC-3.
628 Uses pipes and is therefore not compatible with bluefish.
635 Adjust image luma using a non-linear power-law curve
639 gamma - a floating point value. The default is 1.0, or none.
641 Initialisation Properties
648 double gamma - the exponential factor of the power-law curve
663 Convert colour image to greyscale
669 Initialisation Properties
690 Applies a luma transition between the current and next frames.
691 Useful for transitions from a slideshow created using producer
698 Initialisation Properties
709 int period - how long to wait between success iterations of the
710 transition. For best results set this to a multiple
711 of ttl used in pixbuf. The default is 24.
713 luma. - all properties beginning with "luma." are passed to the
714 encapsulated luma transition. For example, luma.out controls
715 the duration of the wipe.
719 transition_luma and its dependencies
730 Provides various mirror and image reversing effects.
734 mirror - horizontal, vertical, diagonal, flip, flop
736 Initialisation Properties
738 int reverse - being 0 or 1
769 Initialisation Properties
771 string start - in the format X,Y:WxH[:PWxPY]
772 - PWxPY is the size of the averaging region in pixels.
773 string end - in the format X,Y:WxH[:PWxPY]
793 Apply one or filters to a region of the video image. The region
794 can be shaped as well using the alpha channel of another producer.
798 file - A file whose alpha channel will "shape" the region.
799 - The string "circle" is a shortcut but it requires pixbuf with
800 the librsvg loader. The circle is automatically stretched
801 to the region to create an ellipse.
803 Initialisation Properties
807 plus and region transition properties
811 see the region transition
819 "circle" is unpredictable in the absence of the librsvg pixbuf loader.
826 Adjust an audio stream's sampling rate, and duplicate channels if
827 producer provides less than consumer requested.
829 This filter is automatically invoked by Fezzik for the sake of
830 normalisation over inputs and with the consumer.
834 frequency - a numeric value for the new sample rate
836 Initialisation Properties
843 int frequency - the target sample rate
851 Assumes 2 channels during libsamplerate initialisation. Untested
858 Scale the producer video frame size to match the consumer.
859 This filter is automatically invoked by Fezzik in order to normalise
864 interpolation - the rescaling method, one of:
865 nearest (lowest quality, fastest),
867 bilinear (default; good quality, moderate speed),
868 hyper (best quality, slowest).
870 Initialisation Properties
877 string interpolation - see constructor argument above
879 If a property "consumer_aspect_ratio" exists on the frame, then
880 rescaler normalises the producer's aspect ratio and maximises the
881 size of the frame, but may not produce the consumer's requested
882 dimension. Therefore, this option works best in conjunction with the
883 resize filter. This behavior can be disabled by another service by
884 either removing the property, setting it to zero, or setting
885 frame property "distort" to 1.
889 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
899 Image scaling and padding and field order adjustment.
903 Normally resize is used to pad the producer's
904 output to what the consumer has requested after an upstream rescale
905 filter first scales the image to maximise usage of the image area.
906 This filter also adjusts the field order to lower field first
907 if the frame property "top_field_first" has been set to 1.
908 Therefore, when done, it sets the top_field_first to 0.
909 This filter is automatically invoked by Fezzik as part of image
910 sample aspect ratio normalisation.
914 scale - "affine" to use affine transform scaling, otherwise
917 Initialisation Properties
932 Assumes lower field first output.
938 Adjust an audio stream's volume level
942 gain - a string containing one of:
943 - a floating point value of the gain adjustment
944 - a numeric value with the suffix "dB" to adjust in terms of decibels
945 - "normalise" to normalise the volume to the target amplitude -12dBFS
947 Initialisation Properties
951 int window - the number of video frames over which to smooth normalisation.
956 string gain - same as constructor argument above
958 string normalise - normalise the volume to the amplitude:
959 - a numeric value with the suffix "dB" to set amplitude in decibels
960 - a floating point value of the relative volume
961 - an unspecified value uses the default -12dBFS
963 string limiter - limit all samples above:
964 - a numeric value with the suffix "dB"
965 - a floating point value ( dB = 20 * log10(x) )
966 - an unspecified value uses the default -6dBFS
968 double max_gain - a floating point or decibel value of the maximum gain that
969 can be applied during normalisation.
970 - an unspecified value uses the default 20dB
972 string end - a gain value just like the gain property above.
973 This causes the gain to be interpolated from 'gain' to 'end'
976 int window - the size of the normalising smoothing buffer in video frame units.
977 - the smoothing buffer prevents erratic gain changes.
978 - the default value is 75 video frames.
980 gain can be applied as a factor to the normalise amplitude!
994 Add a watermark to the frames.
998 resource - the producer to use (ie: a .png)
1000 Initialisation Properties
1002 string resource - the producer to use
1003 string factory - producer required for the resource ('fezzik')
1004 string geometry - composite geometry
1005 string distort - control scaling
1015 mlt core modules and optionally, fezzik
1028 A key-framable alpha-channel compositor for two frames.
1032 Performs dissolves and luma wipes in addition to alpha compositing.
1034 By default, the aspect ratio of the B frame is respected and the
1035 size portion of the geometry specification simply defines a
1038 This performs field-based rendering unless the A frame property
1039 "progressive" or "consumer_progressive" or the transition property
1040 "progressive" is set to 1.
1042 Constructor Argument
1044 string start - a geometry specification as X,Y:WxH[!][:mix]
1045 - X, Y, W, H are assumed to pixel units unless they
1047 - '!' is a shortcut to specify distort, see below.
1048 - mix is always a 2 digit percentage, defaults to 100.
1049 - default is "85%,5%:10%x10%"
1051 Initialisation Properties
1053 string end - the ending size and position.
1054 string key[F] - X,Y:WxH[:mix] - set a key frame for geometry between
1055 the in and out. F is a frame number and can be
1056 negative to make it relative to the out point.
1059 string factory - The name of a factory service used as a non-PGM
1060 producer loader. The default is fezzik.
1062 Read Only Properties
1068 int progressive - set to 1 to disable field-based rendering.
1069 string distort - when set, causes the B frame image to fill the WxH
1070 completely with no regard to B's aspect ratio.
1071 string halign - when not distorting, set the horizontal alignment
1072 of B within the geometry rectangle.
1073 - one of: left (0), centre (1), or right (2).
1074 - the default is left.
1075 string valign - when not distorting, set the vertical alignment of
1076 B within the geometry rectangle.
1077 - one of: top (0), middle (1), or bottom (2).
1078 - the default is top.
1079 string luma - the luma map file name. If not supplied, a dissolve.
1080 double softness - only when using a luma map, how soft to make the
1081 edges between A and B. 0.0 = no softness. 1.0 =
1083 Any property starting with "luma." is passed to the non-PGM luma
1092 Assumes lower field first during field rendering.
1098 A generic dissolve and wipe transition processor.
1103 from how it uses a grayscale "map" file. As the luma value varies
1104 over time, a threshold filter is applied to the map to determine
1105 what parts of frame A vs. frame B to show. It reads PGM files
1106 up to 16 bits! Alternatively, it can use the first frame from any
1107 producer that outputs yuv, but it will be limited to the luma
1108 gamut of 220 values.
1109 This performs field-based rendering unless the A frame property
1110 "progressive" or "consumer_progressive" or the transition property
1111 "progressive" is set to 1.
1113 Constructor Argument
1115 string resource - the luma map file name - either PGM or any other
1117 - If not supplied, a dissolve.
1119 Initialisation Properties
1123 string factory - The name of a factory service used as a non-PGM
1124 producer loader. The default is Fezzik.
1128 string resource - same as above
1129 double softness - only when using a luma map, how soft to make the
1130 edges between A and B. 0.0 = no softness. 1.0 =
1132 int reverse - reverse the direction of the transition.
1133 Any property starting with "producer." is passed to the non-PGM luma
1136 Read Only Properties
1146 Assumes lower field first output.
1152 An two stream audio mixer.
1154 Constructor Argument
1158 Initalisation Properties
1165 double start - the mix level to apply to the second frame.
1166 - any negative value causes an automatic crossfade from 0 to 1.
1167 double end - the ending value of the mix level. mix level will be interpolated
1168 from start to end over the in-out range.
1169 int reverse - set to 1 to reverse the direction of the mix.
1171 Read Only Properties
1181 Samples from the longer of the two frames are discarded.
1188 Apply zero or more filters to B frame as it is composited onto
1189 a region of the A frame. The "shape" of the region can be defined
1190 by the alpha channel of a third producer.
1192 Constructor Argument
1194 resource - a shape producer
1196 Initialisation Properties
1198 string resource - nothing is rectangle, "circle" is a pixbuf-
1199 generated SVG circle, anything else is loaded by the factory.
1200 string factory - the service that creates the shape producer.
1201 - the default is fezzik.
1202 string filter[N] - one or more filters to apply. All filter
1203 properties are passed using the same filter "key"
1204 Any property starting with "composite." is passed to the
1205 encapsulated composite transition.
1207 Read Only Properties
1213 transition_composite
1223 bluefish (Proprietary)
1227 BlueFish444 audio and video output module.
1229 Constructor Argument
1231 card - a numeric card id starting at 1, default is 1.
1233 Initialisation Properties
1235 string standard - "PAL" (default) or "NTSC"
1236 - default is based upon MLT_NORMALISATION
1237 environment variable, which defaults to PAL.
1238 int frames - the number of DMA video frames. default is 8.
1239 minimum is 2. maximum on my system is 11.
1240 int buffer - the number of frames to buffer within MLT, minimum 1,
1242 string rescale - a rescale method, see the Filters/rescale.
1244 Read Only Properties
1250 BlueVelvet SDK installed parallel to mlt in "bluefish."
1254 Does not work with any service that uses pipes!
1256 If mlt crashes, you might need to reload the BlueDriver kernel
1257 module due to unreleased DMA buffers.
1259 Only supports 2 channel audio at the moment.
1267 Constructor Argument
1269 string target - the filename to write to, e.g. /dev/dv1394.
1271 Initialisation Properties
1273 int buffer - the number of frames to buffer, minimum 1, default 25.
1274 string rescale - a rescale method, see the Filters/rescale.
1278 int progressive - indicates whether to use progressive or field-
1279 based rendering, default 0 (off).
1281 Read Only Properties
1297 Simple DirectMedia Layer audio and video output module.
1299 Constructor Argument
1301 string video_standard - "PAL" (default), "NTSC", or "WxH"
1303 Initialisation Properties
1305 int buffer - the number of frames to buffer, minimum 1, default 25.
1306 string rescale - a rescale method, see the Filters/rescale.
1307 - Hint: "none" works very good with SDL output.
1311 double volume - audio level factor
1312 int video_off - if 1, disable video output
1313 int audio_off - if 1, disable audio output
1314 int scale_overlay - if 1, resample video from source pixel aspect
1315 ratio to square pixels.
1316 int progressive - indicates whether to use progressive or field-
1317 based rendering, default 0 (off).
1319 Read Only Properties
1325 libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE
1335 Serialise the service network to XML.
1336 See docs/westley.txt for more information.
1338 Constructor Argument
1340 resource - the name of a file in which to store the XML.
1341 - stdout is default.
1343 Initialisation Properties
1345 string resource - same as above.
1353 Untested arbitrary nesting of multitracks and playlists.
1354 Property "id" is generated as service type followed by number if
1355 no property named "id" exists, but it fails to guarantee uniqueness.