MLT Basic Producers
MLT comes with a lot of producers, which we cannot all tackle here. Instead, we’re just shining some light one what we think will be the most notable producers in the context of Kdenlive. These are (in order of appearance):
- avformat and avformat-novalidate for reading the myriad of different audio/video media format using FFmpeg,
- timewarp for speeing up or slowing down audio/video media,
- pixbuf for reading and understanding the many different image formats,
- kdenlivetitle for rendering Kdenlive titles,
- and finally the color/colour producer for producing uni-color frames.
The “avformat” producer is probably the most-used staple producer that produces frames from audio/video media files using the famous FFmpeg multimedia handling library. Whatever you can throw successfully at FFmeg to decode or encode it, can thus be used in Kdenlive. For more details, please refer to MLT’s avformat producer documentation.
This variant of the “avformat” producer named “avformat-novalidate” is used to speed up loading playlists with known good media files. (See also this MLT commit message about avformat-novalidate.)
The “timewarp” producer is relatively new that allows video and audio to be sped up (max. 20x) or slowed down (down to 0.01x). It can even reverse audio and video within the same range between 0.01x and 20x.
Timewarp actually is an encapsulated producer. See also the MLT timewarp producer documentation. Kdenlive uses this producer internally to emulate the speed effect (which isn’t, technically spoken, an MLT filter, but an MLT producer).
The “pixmap” producer produces frames from a wide range of bitmap and vector graphics formats. Under the hood, it uses the GDK pixbuf, hence its name (see also the
MLT pixbuf producer documentation). Some notable features of this producer are:
- it supports image sequences. For this, the resource property (that is, path and filename) needs to contain the wildcard “/.all.” (note the trailing dot). The producer then loads all image files matching the following file extensions from the path.
- some of the supported image file formats are:
- PNG (.png),
- JPEG (.jpg, jpeg),
- SVG (.svg),
- …as well as many more.
Feed the “kdenlivetitle” producer some XML and it will produce frames containing beautiful titles. The XML describing a title has to be directly included with this service in its “xmldata” property.
This producer has two names: “color” and “colour“. It simply produces frames of only a single color. The color and alpha information is encoded in the “resource” property of the producer. This resource property can take on these values:
- a 32bit hex value in textual form of RRGGBBAA. Here, RR is the 8bit red channel value ranging from “00” to “ff”. Similar, GG and BB encode the 8bit green and blue channel values, respectively. AA is an 8 bit alpha value, with “ff” denoting full opacity, and “00” meaning full transparency.
- few well-known colo(u)r names, in particular, “black” and “white”.
Note: Kdenlive uses the “colour”(!) producer for its timeline-internal lowest black track. In contrast, Kdenlive uses “color” producers for all the (project) bin color clips. Now that’s politically correct!