]> git.sesse.net Git - mlt/blob - docs/services.txt
89ef07447fc3c6d185baef7cbb9e2cfdccda4006
[mlt] / docs / services.txt
1 Service Documentation
2
3 Authors: Charles Yates <charles.yates@pandora.be>
4          Dan Dennedy <dan@dennedy.org>
5 Last Revision: 2009-05-08
6
7
8 SERVICES
9 --------
10
11         Services marked as "(Proprietary)" are not distributed with the LGPL
12         version of mlt.
13
14 Producers
15 ---------
16
17         avformat
18
19             Description
20
21                 ffmpeg libavformat based producer for video and audio.
22
23             Constructor Argument
24
25                 'file' - a filename specification or URL in the form:
26                          [{protocol}|{format}]:{resource}[?{format-parameter}[&{format-parameter}...]]
27                          For example, video4linux:/dev/video1?width:320&height:240
28                          Note: on the bash command line, & must be escaped as '\&'.
29                          Also, note the use of ':' instead of '=' for parameters.
30                          Use 'ffmpeg -formats' to see a list of supported protocols 
31                          and formats.
32                          
33             Details
34             
35                 Format parameters only appear to be useful with 'video4linux' or
36                 'audio_device' formats. For 'video4linux' the parameters are
37                 width, height, frame_rate, frame_rate_base, and standard (ntsc|pal).
38                 For 'audio_device' the parameters are channels and sample_rate.
39
40             Initialisation Properties
41
42                 int video_index - index of video stream to use (-1 is off)
43                 int audio_index - index of audio stream to use (-1 is off)
44                 int in - in point
45                 int out - out point
46
47             Read Only Properties
48
49                 string resource - file location
50                 double source_fps - the framerate of the resource
51                 double aspect_ratio - sample aspect ratio of the resource
52                                     - this is determined on every frame read
53
54             Dependencies
55
56                 ffmpeg
57
58             Known Bugs
59
60                 Audio sync discrepancy with some content.
61                 Not all libavformat supported formats are seekable.
62                 Fails to play beyond first frame of video of sources with PTS not
63                 starting at 0 (video4linux).
64
65         loader
66
67             Description
68
69                 A friendly giant that likes to rhyme and throw rocks
70
71             Constructor Argument
72
73                 'file'    - a filename specification:
74                           [{mlt-service}:]{resource} | {mlt-service}
75                         - can also be the name of a producer service that can
76                           accept the resource specified post construction.
77
78             Initialisation Properties
79
80                 int in - in point
81                 int out - out point
82                 + all producer initialising properties
83
84             Read Only Properties
85
86                 string resource - file location
87                 + all producer read only properties
88
89             Details
90
91                 This producer has two roles:
92
93                 1. it handles the mappings of all file names to the other
94                 producers;
95                 2. it attaches normalising filters (rescale, resize and resample)
96                 to the producers (when necessary).
97
98                 This producer simplifies many aspects of use. Essentially, it
99                 ensures that a consumer will receive images and audio precisely as
100                 they request them. 
101
102             Dependencies
103
104                 all.
105
106             Known Bugs
107
108                 None.
109
110         
111         colour
112         
113             Description
114             
115                 A simple colour generator.
116                 
117             Constructor Argument
118             
119                 colour - A colour value is a hexadecimal representation of RGB plus
120                          alpha channel as 0xrrggbbaa.
121                        - Also colours can be the words: white, black, red, green,
122                          or blue.
123                        - The default colour is black.
124                        
125             Initialisation Properties
126             
127                 none
128                 
129             Read Only Properties
130             
131                 none
132                 
133             Dependencies
134             
135                 none
136                 
137             Known Bugs
138             
139                 none
140
141         
142         libdv
143
144             Description
145
146                 libdv based decoder for video and audio.
147
148             Constructor Argument
149
150                 'file'    - produce a/v from file
151
152             Initialisation Properties
153
154                 int in - in point
155                 int out - out point
156
157             Read Only Properties
158
159                 string resource - file location
160                 double fps - output frames per second
161                 int length - duration of resource (in frames)
162                 
163             Mutable Properties
164             
165                 string quality - one of "best," "fast" or anything else chooses
166                                  medium.
167
168             Dependencies
169
170                 libdv.
171
172             Known Bugs
173
174                 DVCPRO is incorrectly identified as 16:9 aspect ratio. You must use
175                 libdv from CVS or a post 0.101 release. 
176
177         noise
178
179             Description
180
181                 White noise producer
182
183             Constructor Argument
184
185                 none
186
187             Initialisation Properties
188
189                 int in - in point
190                 int out - out point
191
192             Read Only Properties
193
194                 string resource - file location
195                 double fps - output frames per second
196                 double aspect_ratio - sample aspect ratio of video
197                 int length - duration of resource (in frames)
198                 
199             Dependencies
200
201                 none
202
203             Known Bugs
204
205                 none
206
207         pango
208
209             Description
210
211                 A title generator that uses the Pango international text layout
212                 and Freetype2 font renderer.
213
214             Constructor Argument
215
216                 string file - a text file containing Pango markup, see:
217                 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
218                             - requires xml-like encoding special chars from: 
219                               <, >, &   -to-   &lt;, &gt;, &amp;
220                               
221             Details
222             
223                 Supplying a filename with extension ".txt" causes the loader 
224                 producer to load with pango. If the filename begins with "+" the 
225                 pango producer interprets the filename as pango text. This is a
226                 shortcut to embed titles in melt commands. For MLT XML, it is 
227                 recommended that you embed the title text in the property value.
228                 
229                 Pango has builtin scaling. It will rescale the originally rendered
230                 title to whatever the consumer requests. Therefore, it will lose
231                 its aspect ratio if so requested, and it is up to the consumer to
232                 request a proper width and height that maintains the image aspect.
233
234             Initialisation Properties
235
236                 int in - in point
237                 int out - out point
238
239             Mutable Properties
240
241                 string markup - a string containing Pango markup see:
242                 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
243                               - requires xml-like encoding special chars from: 
244                                 <, >, &   -to-   &lt;, &gt;, &amp;
245                 string fgcolour - an RGBA colour specification of the text 
246                                   (i.e. 0xrrggbbaa)
247                 string bgcolour - an RGBA colour of the background rectangle
248                 string align - paragraph alignment: left, centre, right
249                              - also, numbers 0, 1 and 2 can be used respectively.
250                 int pad - the number of pixels to pad the background rectangle 
251                           beyond edges of text. default 0.
252                 string markup - see constructor argument
253                 string text - non-markup string in UTF-8 encoding (can contain 
254                               markup chars un-encoded)
255                 string font - the default typeface to use when not using markup.
256                               default "Sans 48". FreeType2 renders at 72 dpi.
257                 string encoding - the text encoding type of the input if not UTF-8.
258                                 - see 'iconv --list' for a list of possible inputs.
259                         int weight - the weight of the font (default is 400)
260
261             Read Only Properties
262
263                 string resource - the text/markup file or "pango" if no file.
264                 int real_width - the original, unscaled width of the rendered title.
265                 int real_height - the original, unscaled height of the title.
266                 int width - the last requested scaled image width.
267                 int height - the last requested scaled image height.
268
269             Dependencies
270
271                 libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0, 
272                 libglib-2.0, libgobject-2.0, libgmodule-2.0, libfontconfig.
273
274             Known Bugs
275
276                 The foreground and background Pango markup span attributes are not
277                 supported.
278                 Word wrapping is not supported.
279
280         pixbuf
281
282             Description
283
284                 A still graphics to video generator using gdk-pixbuf
285
286             Constructor Argument
287
288                 'file' - The name of a graphics file loadable by
289                          a gdk-pixbuf loader. see /usr/lib/gdk-pixbuf/loaders
290                          definitely png, jpeg, tiff, pnm, and xpm
291                        - If "%" in filename, the filename is used with sprintf
292                          generate a filename from a counter for multi-file/flipbook 
293                          animation. The file sequence ends when numeric 
294                          discontinuity >100.
295                        - If filename contains "/.all.", suffix with an extension to 
296                          load all pictures with matching extension from a directory.
297                        - If filename contains the string "<svg", then pixbuf tries
298                          to load the filename as inline SVG XML, which is convenient
299                          for melt commands.
300                          
301             Details
302             
303                 Pixbuf has builtin scaling. It will rescale the originally rendered
304                 title to whatever the consumer requests. Therefore, it will lose
305                 its aspect ratio if so requested, and it is up to the consumer to
306                 request a proper width and height that maintains the image aspect.
307
308             Initialisation Properties
309
310                 int in - in point
311                 int out - out point
312                 int begin  - when using an image sequence, this sets the starting
313                              number.
314
315             Mutable Properties
316
317                 int ttl - how long (in frames) to repeat each picture in file 
318                           sequences. default is 25.
319
320             Read Only Properties
321
322                 string resource - file location. See Constructor Argument above.
323                 int real_width - the original, unscaled width of the rendered title.
324                 int real_height - the original, unscaled height of the title.
325                 int width - the last requested scaled image width.
326                 int height - the last requested scaled image height.
327
328             Dependencies
329
330                 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
331
332             Known Bugs
333
334                 XXX: in/out settings are incorrectly handled.
335
336         ppm
337         
338             Description
339
340                 Reads a stream of contiguous PPM images.
341                 
342             Constructor Argument
343
344                 command - a shell command to run something that produces ppm
345                           streams on stdout.
346                 
347             Initialisation Properties
348
349                 none
350                 
351             Read Only Properties
352
353                 string resource - the command
354                 
355             Dependencies
356
357                 none
358                 
359             Known Bugs
360
361                 Since it uses pipes, it is not compatible with bluefish.
362
363         xml
364
365             Description
366
367                 Construct a service network from an XML description.
368                 See docs/mlt-xml.txt.
369
370             Constructor Argument
371
372                 URL - an XML text file containing MLT XML
373                     - Since MLT XML files can be parameterised, the URL syntax is:
374                       {file-name}[?{param-name}{'='|':'}{param-value}[&{param-name}{'='|':'}{param-value}...]]
375                       A colon is allowed instead of an equal sign to pacify melt,
376                       who tokenises anything with an equal sign as a property 
377                       setting. Also, when running melt from the shell, beware of
378                       the '?' and shell filename expansion. You can surround the URL
379                       with single quotations to prevent expansion. Finally, the loader
380                       will fail to match the filename when you use parameters, so
381                       preface the url with 'xml:' to force the loader to load with
382                       the xml service.
383                       
384             Read Only Properties
385
386                 string resource - file location
387
388             Dependencies
389
390                 libxml2
391
392             Known Bugs
393
394                 Non-referenced producers and playlists are not destroyed until the 
395                 network is destroyed.
396                 A referenced producer or playlist must appear before the reference.
397                 A filter that occurs before a producer has been defined causes a 
398                 segfault.
399
400         vorbis
401
402             Description
403
404                 OGG Vorbis file reader.
405
406             Constructor Argument
407
408                 'file' - file to use (only .ogg supported at the moment)
409
410             Initialisation Properties
411
412                 int in - in point
413                 int out - out point
414
415             Read Only Properties
416
417                 double fps - this is fixed at 25 for PAL currently
418
419             Dependencies
420
421                 libvorbisfile
422
423             Known Bugs
424
425                 Fixed frame size (PAL audio chunks).
426                 Doesn't cover ogg files with multiple, differing sections.
427
428 Filters
429 -------
430
431         brightness
432         
433             Description
434             
435                 Shift the luma component using a constant value.
436                 
437             Constructor Argument
438             
439                 start - the constant floating point numeric value to apply.
440                       - the default is 0.
441                 
442             Initialisation Properties
443             
444                 int in - in point
445                 int out - out point
446                 double start - see Constructor Argument above.
447                 double end - the ending adjustment value. the filter interpolates
448                              between the start and end adjustments over the 
449                              duration of the effect.
450                              
451             Read Only Properties
452             
453                 none
454                 
455             Dependencies
456             
457                 none
458                 
459             Known Bugs
460             
461                 Does not go completely to black or white.
462                 
463         
464         channelcopy
465         
466             Description
467             
468                 Copy audio from one channel to another channel.
469                 
470             Constructor Argument
471             
472                 to - the 0-indexed channel to copy into, default is 1.
473                 
474             Mutable Properties
475             
476                 int to - see above
477                 int from - the channel from which to copy, default is 0.
478                 
479             Dependencies
480             
481                 none
482                 
483             Known Bugs
484             
485                 none
486                 
487
488
489         deinterlace
490         
491             Description
492
493                 Deinterlace a frame consisting of two fields using bob, weave,
494                 greedy, one-field, and linear blend methods. This code is 
495                 appropriated from the Xine XV video output plugin.
496             
497             Constructor Argument
498
499                 method - a string containing the deinterlace method: bob, weave,
500                          greedy, onefield, or linearblend. The default is
501                          linearblend.
502             
503             Initialisation Properties
504
505                 int in - in point
506                 int out - out point
507                 
508             Read Only Properties
509
510                 none
511             
512             Mutable Properties
513             
514                 string method
515                 
516             Details
517             
518                 If the frame properties "progressive" or "consumer_progressive"
519                 are non-zero, then the filter is not applied. Also, if applied,
520                 this sets the frame property "progressive" to 1.
521
522             Dependencies
523
524                 none
525                 
526             Known Bugs
527
528                 Not a bug, but it only provides fair quality.
529                 
530             
531         gamma
532         
533             Description
534
535                 Adjust image luma using a non-linear power-law curve
536                 
537             Constructor Argument
538
539                 gamma - a floating point value. The default is 1.0, or none.
540             
541             Initialisation Properties
542             
543                 int in - in point
544                 int out - out point
545
546             Mutable Properties
547
548                 double gamma - the exponential factor of the power-law curve
549                 
550             Dependencies
551
552                 none
553                 
554             Known Bugs
555
556                 none
557                 
558         
559         greyscale
560         
561             Description
562
563                 Convert colour image to greyscale
564                 
565             Constructor Argument
566
567                 none
568                 
569             Initialisation Properties
570             
571                 int in - in point
572                 int out - out point
573
574             Read Only Properties
575
576                 none
577                 
578             Dependencies
579
580                 none
581                 
582             Known Bugs
583
584                 none
585             
586         gtkrescale
587
588             Description
589
590                 Scale the producer video frame size to match the consumer.
591                 This filter is designed for use as a normaliser for the loader producer.
592
593             Constructor Argument
594
595                 interpolation - the rescaling method, one of:
596                     nearest (lowest quality, fastest),
597                     tiles,
598                     bilinear (default; good quality, moderate speed),
599                     hyper (best quality, slowest).
600
601             Initialisation Properties
602
603                 int in - in point
604                 int out - out point
605
606             Mutable Properties
607
608                 string interpolation - see constructor argument above
609
610                 If a property "consumer_aspect_ratio" exists on the frame, then
611                 rescaler normalises the producer's aspect ratio and maximises the
612                 size of the frame, but may not produce the consumer's requested
613                 dimension. Therefore, this option works best in conjunction with the
614                 resize filter. This behavior can be disabled by another service by
615                 either removing the property, setting it to zero, or setting
616                 frame property "distort" to 1.
617
618             Dependencies
619
620                 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
621
622             Known Bugs
623
624                 none
625
626         jackrack
627         
628             Description
629             
630                 Creates Jack ports and runs a JackRack project to process audio
631                         through a stack of LADSPA filters.
632                 
633             Constructor Argument
634             
635                 src - a JackRack file
636                         
637                 Details
638                 
639                         If you are using a consumer that uses ALSA, then you should start
640                         jackd with the dummy driver: jackd -d dummy.
641                         I also recommend using a period size of 2048: -p 2048.
642                         
643                         jackd -ddummy -r48000 -p2048
644                 
645             Initialisation Properties
646             
647                 int in - in point
648                 int out - out point
649                         
650                         The following can be used without a rack file in order to connect
651                         filter_jackrack to a running instance of JackRack:
652                         string out_1 - Jack port to connect MLT's output port (JackRack's input)
653                         string out_2 - Jack port to connect MLT's output port (JackRack's input)
654                         string in_1 - Jack port to connect MLT's input port (JackRack's output)
655                         string in_2 - Jack port to connect MLT's input port (JackRack's output)
656                 
657             Read Only Properties
658             
659                 none
660                 
661             Mutable Properties
662
663                         none
664                 
665             Dependencies
666             
667                 Jack, LADSPA, glib-2.0, libxml2
668                 
669             Known Bugs
670             
671                         Currently, due to timing and synchronisation issues, the audio
672                         is distorted with repeated samples and latency clicks.
673                 no encapsulated resampling and jack runs at a fixed frequency
674             
675         ladspa
676         
677             Description
678             
679                 Runs a JackRack project to process audio through a stack of
680                         LADSPA filters without using Jack.
681                 
682             Constructor Argument
683             
684                 src - a JackRack file
685                         
686                 Details
687
688                         Due to audio integrity issues with the jackrack filter, this
689                         filter is better for runtime, while jackrack is more suitable
690                         for prototyping a rack file using the Jack Rack GUI.
691                 
692             Initialisation Properties
693             
694                 int in - in point
695                 int out - out point
696                         
697             Read Only Properties
698             
699                 none
700                 
701             Mutable Properties
702
703                         none
704                 
705             Dependencies
706             
707                 Jack, LADSPA, glib-2.0, libxml2
708                         Jack is still required because this coexists with the jackrack 
709                         filter.
710                 
711             Known Bugs
712             
713                 no encapsulated resampling and jack runs at a fixed frequency
714             
715         luma
716         
717             Description
718             
719                 Applies a luma transition between the current and next frames.
720                 Useful for transitions from a slideshow created using producer
721                 pixbuf.
722                 
723             Constructor Argument
724             
725                 file - a luma wipe
726                 
727             Initialisation Properties
728             
729                 int in - in point
730                 int out - out point
731                 
732             Read Only Properties
733             
734                 none
735                 
736             Mutable Properties
737             
738                 int period - how long to wait between success iterations of the
739                              transition. For best results set this to a multiple
740                              of ttl used in pixbuf. The default is 24.
741                              
742                 luma. - all properties beginning with "luma." are passed to the
743                         encapsulated luma transition. For example, luma.out controls
744                         the duration of the wipe.
745                 
746             Dependencies
747             
748                 transition_luma and its dependencies
749                 
750             Known Bugs
751             
752                 none
753             
754         mirror
755         
756             Description
757             
758                 Provides various mirror and image reversing effects.
759
760             Constructor Argument
761             
762                 mirror - horizontal, vertical, diagonal, flip, flop
763                 
764             Initialisation Properties
765             
766                 int reverse - being 0 or 1
767                 int in - in point
768                 int out - out point
769                 
770             Read Only Properties
771             
772                 none
773                 
774             Mutable Properties
775             
776                 none
777
778             Dependencies
779             
780                 none
781                 
782             Known Bugs
783             
784                 none
785
786
787         mono
788         
789             Description
790             
791                 Mix all channels of audio into a mono signal and output it as
792                         N channels.
793
794             Constructor Argument
795             
796                 channels - the number of output channels (default 2)
797                 
798             Initialisation Properties
799             
800                 none
801                 
802             Read Only Properties
803             
804                 none
805                 
806             Mutable Properties
807             
808                 none
809
810             Dependencies
811             
812                 none
813                 
814             Known Bugs
815             
816                 none
817
818
819         obscure
820         
821             Description
822
823                 Obscuring filter.
824                 
825             Constructor Argument
826
827                 none
828                 
829             Initialisation Properties
830             
831                 string start - in the format X/Y:WxH[:PWxPY]
832                              - PWxPY is the size of the averaging region in pixels.
833                 string end - in the format X/Y:WxH[:PWxPY]
834                 int in - in point
835                 int out - out point
836
837             Read Only Properties
838
839                 none
840                 
841             Dependencies
842
843                 none
844
845             Known Bugs
846
847                 none
848
849         region
850         
851             Description
852             
853                 Apply one or more filters to a region of the video image. The region
854                 can be shaped as well using the alpha channel of another producer.
855                 
856             Constructor Argument
857             
858                 resource - A file whose alpha channel will "shape"  the region.
859                      - The string "circle" is a shortcut but it requires pixbuf with
860                        the librsvg loader. The circle is automatically stretched
861                        to the region to create an ellipse.
862         
863             Initialisation Properties
864
865                 int in - in point
866                 int out - out point
867                 plus and region transition properties
868                 
869             Read Only Properties
870             
871                 see the region transition
872                 
873             Dependencies
874             
875                 transition_region
876                 
877             Known Bugs
878             
879                 "circle" is unpredictable in the absence of the librsvg pixbuf loader.
880                 
881
882         resample
883
884             Description
885
886                 Adjust an audio stream's sampling rate, and duplicate channels if 
887                 producer provides less than consumer requested.
888                 
889                 This filter is automatically invoked by the loader producer for the
890                 sake of normalisation over inputs and with the consumer.
891
892             Constructor Argument
893
894                 frequency - a numeric value for the new sample rate
895
896             Initialisation Properties
897
898                 int in - in point
899                 int out - out point
900
901             Mutable Properties
902
903                 int frequency - the target sample rate
904
905             Dependencies
906
907                 libresample
908
909             Known Bugs
910
911                 Assumes 2 channels during libsamplerate initialisation. Untested
912                 with >2 channels.
913
914         rescale
915
916             Description
917
918                 Scale the producer video frame size to match the consumer.
919                 This filter is designed for use as a normaliser for the loader producer.
920
921             Constructor Argument
922
923                 None.
924
925             Initialisation Properties
926
927                 int in - in point
928                 int out - out point
929
930             Mutable Properties
931
932                 If a property "consumer_aspect_ratio" exists on the frame, then
933                 rescaler normalises the producer's aspect ratio and maximises the
934                 size of the frame, but may not produce the consumer's requested
935                 dimension. Therefore, this option works best in conjunction with the
936                 resize filter. This behavior can be disabled by another service by
937                 either removing the property, setting it to zero, or setting
938                 frame property "distort" to 1.
939
940             Dependencies
941
942                 none
943
944             Known Bugs
945
946                 none but... it only implements a nearest neighbour scaling - it is
947                         used as the base class for the gtkrescale and mcrescale filters.
948
949         resize
950         
951             Description
952
953                 Image scaling and padding and field order adjustment.
954                     
955             Details
956             
957                 Normally resize is used to pad the producer's
958                 output to what the consumer has requested after an upstream rescale
959                 filter first scales the image to maximise usage of the image area.
960                 This filter also adjusts the field order to lower field first
961                 if the frame property "top_field_first" has been set to 1.
962                 Therefore, when done, it sets the top_field_first to 0.
963                 This filter is automatically invoked by the loader as part of image
964                 sample aspect ratio normalisation.
965                 
966             Constructor Argument
967
968                 scale - "affine" to use affine transform scaling, otherwise
969                          center and pad.
970                 
971             Initialisation Properties
972             
973                 int in - in point
974                 int out - out point
975
976             Read Only Properties
977
978                 none
979                 
980             Dependencies
981
982                 none
983                 
984             Known Bugs
985
986                 Assumes lower field first output.
987
988         volume
989
990             Description
991
992                 Adjust an audio stream's volume level 
993                                 - based on the 'normalize' utility
994                 
995             Constructor Argument
996
997                 gain - a string containing one of:
998                      - a floating point value of the gain adjustment
999                      - a numeric value with the suffix "dB" to adjust in terms of decibels
1000                      - "normalise" to normalise the volume to the target amplitude -12dBFS
1001                 
1002             Initialisation Properties
1003             
1004                 int in - in point
1005                 int out - out point
1006                 int window - the number of video frames over which to smooth normalisation.
1007                              defaults to 75.
1008
1009             Mutable Properties
1010
1011                 string gain - same as constructor argument above
1012
1013                 string normalise - normalise the volume to the amplitude:
1014                     - a numeric value with the suffix "dB" to set amplitude in decibels
1015                     - a floating point value of the relative volume
1016                     - an unspecified value uses the default -12dBFS
1017
1018                 string limiter - limit all samples above:
1019                     - a numeric value with the suffix "dB"
1020                     - a floating point value ( dB = 20 * log10(x) )
1021                     - an unspecified value uses the default -6dBFS
1022
1023                 double max_gain - a floating point or decibel value of the maximum gain that
1024                     can be applied during normalisation.
1025                     - an unspecified value uses the default 20dB
1026
1027                 string end - a gain value just like the gain property above.
1028                              This causes the gain to be interpolated from 'gain' to 'end'
1029                              over the duration.
1030
1031                 int window - the size of the normalising smoothing buffer in video frame units.
1032                            - the smoothing buffer prevents erratic gain changes.
1033                            - the default value is 75 video frames. 
1034
1035                 gain can be applied as a factor to the normalise amplitude!
1036                 
1037             Dependencies
1038
1039                 none
1040                 
1041             Known Bugs
1042
1043                 none
1044
1045         watermark
1046
1047             Description
1048
1049                 Add a watermark to the frames.
1050
1051             Constructor Argument
1052
1053                 resource - the producer to use (ie: a .png)
1054
1055             Initialisation Properties
1056
1057                 string resource - the producer to use
1058                 string factory - producer required for the resource (default: 'loader')
1059                 string composite.geometry - composite geometry
1060                 string composite.distort - control scaling
1061                 int in - in point
1062                 int out - out point
1063
1064             Mutable Properties
1065
1066                 none
1067
1068             Dependencies
1069
1070                 mlt core modules and optionally, loader
1071
1072             Known Bugs
1073
1074                 none
1075
1076 Transitions
1077 -----------
1078
1079         composite
1080         
1081             Description
1082
1083                 A key-framable alpha-channel compositor for two frames.
1084                 
1085             Details
1086             
1087                 Performs dissolves and luma wipes in addition to alpha compositing.
1088                 
1089                 By default, the aspect ratio of the B frame is respected and the
1090                 size portion of the geometry specification simply defines a 
1091                 bounding rectangle.
1092             
1093                 This performs field-based rendering unless the A frame property
1094                 "progressive" or "consumer_progressive" or the transition property
1095                 "progressive" is set to 1.
1096                 
1097             Constructor Argument
1098
1099                         none[*]
1100
1101             Initialisation Properties
1102                 
1103                 int in - in point
1104                 int out - out point
1105                 string factory - The name of a factory service used as a non-PGM
1106                                  producer loader. The default is 'loader'.
1107         
1108             Read Only Properties
1109
1110                 none
1111
1112             Mutable Properties
1113
1114
1115                         string geometry - key frame specification
1116                                                         - this is a ; delimited form of the deprecated start,
1117                                                           key[n], end properties
1118                 int progressive - set to 1 to disable field-based rendering.
1119                 string distort - when set, causes the B frame image to fill the WxH
1120                                  completely with no regard to B's aspect ratio.
1121                 string halign - when not distorting, set the horizontal alignment
1122                                 of B within the geometry rectangle.
1123                               - one of: left (0), centre (1), or right (2).
1124                               - the default is left.
1125                 string valign - when not distorting, set the vertical alignment of 
1126                                 B within the geometry rectangle.
1127                               - one of: top (0), middle (1), or bottom (2).
1128                               - the default is top.
1129                 string luma - the luma map file name. If not supplied, a dissolve.
1130                 double softness - only when using a luma map, how soft to make the
1131                                   edges between A and B. 0.0 = no softness. 1.0 =
1132                                   too soft.
1133                 Any property starting with "luma." is passed to the non-PGM luma
1134                     producer.
1135
1136                 Deprecated Properties
1137
1138                 string start - a geometry specification as X/Y:WxH[!][:mix]
1139                              - X, Y, W, H are assumed to pixel units unless they
1140                                have the suffix '%'
1141                              - '!' is a shortcut to specify distort, see below.
1142                              - mix is always a 2 digit percentage, defaults to 100.
1143                              - default is "85%/5%:10%x10%"
1144                 string end - the ending size and position.
1145                 string key[F] - X/Y:WxH[:mix] - set a key frame for geometry between
1146                                 the in and out. F is a frame number and can be
1147                                 negative to make it relative to the out point.
1148
1149             Dependencies
1150
1151                 none
1152             
1153             Known Bugs
1154
1155                 Assumes lower field first during field rendering.
1156
1157         luma
1158         
1159             Description
1160
1161                 A generic dissolve and wipe transition processor.
1162
1163             Details
1164
1165                 luma gets its name
1166                 from how it uses a grayscale "map" file. As the luma value varies
1167                 over time, a threshold filter is applied to the map to determine
1168                 what parts of frame A vs. frame B to show. It reads PGM files
1169                 up to 16 bits! Alternatively, it can use the first frame from any
1170                 producer that outputs yuv, but it will be limited to the luma
1171                 gamut of 220 values.
1172                 This performs field-based rendering unless the A frame property
1173                 "progressive" or "consumer_progressive" or the transition property
1174                 "progressive" is set to 1.
1175             
1176             Constructor Argument
1177
1178                 string resource - the luma map file name - either PGM or any other
1179                                   producable video. 
1180                                 - If not supplied, a dissolve.
1181
1182             Initialisation Properties
1183             
1184                 int in - in point
1185                 int out - out point
1186                 string factory - The name of a factory service used as a non-PGM
1187                                  producer loader. The default is 'loader'.
1188
1189             Mutable Properties
1190
1191                 string resource - same as above
1192                 double softness - only when using a luma map, how soft to make the
1193                                   edges between A and B. 0.0 = no softness. 1.0 =
1194                                   too soft.
1195                 int reverse - reverse the direction of the transition.
1196                 Any property starting with "producer." is passed to the non-PGM luma
1197                     producer.
1198                 
1199             Read Only Properties
1200
1201                 none
1202                 
1203             Dependencies
1204
1205                 none
1206                 
1207             Known Bugs
1208                 
1209                 Assumes lower field first output.
1210
1211         mix
1212
1213             Description
1214
1215                 An two stream audio mixer.
1216
1217             Constructor Argument
1218
1219                 start - see below
1220
1221             Initalisation Properties
1222
1223                 int in - in point
1224                 int out - out point
1225
1226             Mutable Properties
1227
1228                 double start - the mix level to apply to the second frame.
1229                              - any negative value causes an automatic crossfade from 0 to 1.
1230                 double end - the ending value of the mix level. mix level will be interpolated
1231                              from start to end over the in-out range.
1232                 int reverse - set to 1 to reverse the direction of the mix.
1233
1234             Read Only Properties
1235
1236                 none
1237
1238             Dependencies
1239
1240                 none
1241
1242             Known Bugs
1243
1244                 Samples from the longer of the two frames are discarded.
1245                 
1246         
1247         region
1248         
1249             Description
1250             
1251                 Apply zero or more filters to B frame as it is composited onto
1252                 a region of the A frame. The "shape" of the region can be defined
1253                 by the alpha channel of a third producer.
1254                 
1255             Constructor Argument
1256
1257                 resource - a shape producer
1258             
1259             Initialisation Properties
1260             
1261                 string resource - nothing is rectangle, "circle" is a pixbuf-
1262                     generated SVG circle, anything else is loaded by the factory.
1263                 string factory - the service that creates the shape producer.
1264                                - the default is 'loader'.
1265                 string filter[N] - one or more filters to apply. All filter
1266                                    properties are passed using the same filter "key"
1267                 Any property starting with "composite." is passed to the 
1268                     encapsulated composite transition.
1269                 
1270             Read Only Properties
1271             
1272                 none
1273                 
1274             Dependencies
1275             
1276                 transition_composite
1277                 
1278             Known Bugs
1279             
1280                 none
1281                 
1282
1283 Consumers
1284 ---------
1285
1286         avformat
1287         
1288             Description
1289             
1290                 Multiformat transcoding consumer.
1291
1292             Constructor Argument
1293
1294                 string target - the filename to write to, e.g. test.mpeg.
1295
1296             Initialisation Properties
1297             
1298                 int buffer - the number of frames to buffer, minimum 1, default 25.
1299                 string rescale - a rescale method, see the Filters/rescale.
1300                 int progressive - indicates whether to use progressive or field-
1301                                   based rendering, default 0 (off).
1302                 
1303             Read Only Properties
1304             
1305                 none
1306                 
1307             Dependencies
1308             
1309                 libavformat
1310                 
1311             Known Bugs
1312             
1313                 Plenty.
1314
1315         libdv
1316         
1317             Description
1318             
1319                 libdv dv producer.
1320
1321             Constructor Argument
1322
1323                 string target - the filename to write to, e.g. /dev/dv1394.
1324
1325             Initialisation Properties
1326             
1327                 int buffer - the number of frames to buffer, minimum 1, default 25.
1328                 string rescale - a rescale method, see the Filters/rescale.
1329             
1330             Mutable Properties
1331             
1332                 int progressive - indicates whether to use progressive or field-
1333                                   based rendering, default 0 (off).
1334                 
1335             Read Only Properties
1336             
1337                 none
1338                 
1339             Dependencies
1340             
1341                 libdv
1342                 
1343             Known Bugs
1344             
1345                 none
1346
1347         sdl
1348
1349             Description
1350
1351                 Simple DirectMedia Layer audio and video output module.
1352                 
1353             Constructor Argument
1354
1355                 string video_standard - "PAL" (default), "NTSC", or "WxH"
1356                 
1357             Initialisation Properties
1358             
1359                 int buffer - the number of frames to buffer, minimum 1, default 25.
1360                 string rescale - a rescale method, see the Filters/rescale.
1361                                - Hint: "none" works very good with SDL output.
1362                 
1363             Mutable Properties
1364
1365                 double volume - audio level factor
1366                 int video_off - if 1, disable video output
1367                 int audio_off - if 1, disable audio output
1368                         int resize - TODO
1369                 int progressive - indicates whether to use progressive or field-
1370                                   based rendering, default 0 (off).
1371                 int audio_buffer - size of the sdl audio buffer (default: 1024)
1372                 
1373             Read Only Properties
1374
1375                 none
1376                 
1377             Dependencies
1378
1379                 libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE
1380             
1381             Known Bugs
1382
1383                 none
1384
1385         xml
1386
1387             Description
1388
1389                 Serialise the service network to XML.
1390                 See docs/mlt-xml.txt for more information.
1391                 
1392             Constructor Argument
1393
1394                 resource - the name of a file in which to store the XML.
1395                           - stdout is default.
1396                 
1397             Initialisation Properties
1398
1399                 string resource - same as above.
1400                 
1401             Dependencies
1402             
1403                 libxml2
1404                 
1405             Known Bugs
1406
1407                 Untested arbitrary nesting of multitracks and playlists.
1408                 Property "id" is generated as service type followed by number if
1409                 no property named "id" exists, but it fails to guarantee uniqueness.