MLT News

RSS Subscribe to feed.

New Audio Visualization Filters
MLT developer, Brian, developed 4 new filters, available now in git master. The fft filter uses the fast Fourier transform to produce data for other filters. The dance filter moves, scales, and rotates an image or video in reaction to the audio characteristics. The lightshow filter alters the color of the image based on the audio. Lastly, the audiowaveform filter draws a waveform over the image.

These were all sponsored by the "Learn Your Lyrics" YouTube channel. They generate the videos using MLT through shell scripts that generate long melt command lines. You can see the fft, dance, and audiowaveform filters in action in this video:

(Fri, 19 Jun 2015 06:27:00 +0000)
Version 0.9.6 Released
A major regression slipped into the 0.9.4 release plus some other good fixes rolled in just afer that release prompting this new release. Please discontinue using version 0.9.4 and upgrade.(Mon, 02 Mar 2015 07:18:00 +0000)
version 0.9.4 released
This is a bugfix and minor enhancement release. Here are some of the notable changes and enhancements.


  • Added color_trc (transfer characteristic) property to mlt_consumer and mlt_frame.
  • Added Mlt::Profile::set_display_aspect(int, int).
  • Added mlt_pool_stat().
  • Added mlt_smpte_df and mlt_smpte_ndf to mlt_time_format for non-drop-frame timecode support.
  • Added Mlt::Tractor::Tractor(Mlt::Profile&).
  • Added mlt_frame_get_alpha().
  • Added default, copy, and assignment methods to Mlt::Frame.
  • Added Mlt::Filter::process(Mlt::Frame&).


  • Added support for color_trc property to avformat and opengl modules.
  • Performance improvements for composite and matte transitions.
  • Added fill, halign, and valign properties to affine transition and filter.
  • Added producer.* and consumer.* properties to consumer producer.
  • Fixes for libavformat and libavcodec v56.
  • Dropped support for FFmpeg < v1.0 and Libav < v9.
  • Added a lumakey filter.
  • Added a localtime property to dynamictext filter.
  • Added date/time format string support to dynamictext filter.
  • Added no_root property to xml consumer.
  • Added audio-only tone producer.
  • Added drop property to count producer.
  • Added caching to pango producer to improve performance.


  • Added WMV and WMA avformat consumer presets.
  • Added a ProRes-Kostya avformat consumer preset.
  • Changed VP9 WebM preset to use Opus audio codec.
  • Added 4K UHD and 2.5K QHD profiles.
  • Added x265-medium and x265-medium-pass1 avformat consumer presets.
  • Added a unit test for Mlt::Frame.
(Mon, 16 Feb 2015 19:17:00 +0000)
Meltytech Acquires Copyrights from Ushodaya
Ushodaya Enterprises Limited of India, the original sponsor of the MLT and Melted projects has assigned their copyrights to Daniel R. Dennedy, sole proprietor and CTO of Meltytech, LLC. What does that mean? Not much. There are no planned changes to project direction at this time, but it may provide some options in the future. It is just good to have the copyrights under control of active members of the project to make it possible to exercise future options. Many thanks to project co-founder, BGa, for facilitating this transaction.(Tue, 04 Nov 2014 01:32:00 +0000)
Synfig Studio uses MLT for cross-platform sound
Synfig Studio is a good, free, open source, cross-platform 2D animation program. They wanted to add audio support, but they needed more than just a hardware abstraction layer for audio output. They needed more than a multi-format/-codec library. They also wanted something that provides timing and mixing with a succinct API. They chose MLT.

(Tue, 28 Oct 2014 20:43:00 +0000)
version 0.9.2 released
Thanks to the combined effort of several contributors over the past year, there is a new bugfix and enhancement release 0.9.2 of MLT.


  • Added "boolean" parameter type and "argument" parameter attribute to service metadata schema.
  • Added mlt_properties_frames_to_time().
  • Added mlt_properties_time_to_frames().
  • Changed mlt_events_fire() to return the number of listeners.
  • Added consumer-thread-create and consumer-thread-join events.
  • Added LC_NUMERIC handling for Windows.
  • Added mlt_playlist_mix_out() and mlt_playlist_mix_in().
  • Added mlt_properties_from_utf8().


  • Renamed "qimage" module to "qt".
  • Added support for Qt 5.
  • Added qtext producer, which is now prefered by dynamictext filter over pango.
  • Added xml-nogl consumer.
  • Consolidated dgraft, burningtv, and rotoscoping into new plusgpl module.
  • Added vid.stab module with vidstab and deshake filters. This depends on external vid.stab library unlike its predecessors.
  • Rewrote opengl module.
  • Added loudness filter based on EBU R128.
  • Added rgblut filter to plus module.
  • Added luma-only liftgammagain filter to plusgpl module.
  • Added lift_gamma_gain filter to plus module.
  • Added support new keyframable animated properties to brightness, volume, panner, boxblur, wave, sepia, charcoal, burn, gamma, grain, dust, lines, tcolor, oldfilm.
  • Added movit.luma transition to opengl module.
  • Added cbrts consumer to plusgpl module.
  • Removed the "ppm" PPM-pipe producer.
  • Added more VITC functionality to decklink module.
  • Added matte transition to core module.


  • Deprecate videostab module with videostab and videostab filters. This will not be removed soon in order to keep old scripts and projects functional.
  • Deprecate the dv (libdv), kino, and vorbis modules. These are scheduled to be removed in next release.
(Sun, 29 Jun 2014 20:37:00 +0000)
New video stabilization and EBU R128 loudness filters
There are a few new filters in MLT git. The "videostab" filter is a new version based vid.stab replacing the old videostab2 filter. Because it uses an externally compiled version of vid.stab, you can use the latest and greatest version of vid.stab, which is not only faster but gives better quality results. In addition, while vidstab is a dual pass filter - first pass generates a .stab file, second pass reads it - there is a new single-pass "deshake" video filter that uses vid.stab's single-pass mode. It will not give as good results as dual pass, but it is handy for realtime/live applications. Thanks go to Jakub Ksiezniak, a new MLT contributor, and Brian Matherly for helping to get it into shape for merging.
Also, Brian contributed a new audio filter named "loudness" that uses libebur128 to provide better audio normalization because EBU R128 is based on perceived loudness and newer research than traditional RMS- and peak-based approaches.(Wed, 12 Feb 2014 04:18:00 +0000)
v0.9.0 released with new property animation API
Earlier in the year we announced the introduction of OpenGL-based image processing on the GPU. However, now it is finally available in a release version of the software. Not only that, but we have also added a new, properly integrated property animation API to replace the limited, awkward mlt_geometry API. Here are the features of the new API:
  • The time of a keyframe can be set using frame number, time clock string, or a timecode string.
  • A negative time value makes it relative to the end of an object's duration.
  • Keyframes support 3 forms of interpolation: discrete (no interpolation), linear, and a smooth Catmull-Rom  spline.
  • Supports a new mlt_rect propery type in addition to string (discrete only), integer, and floating point.
  • API for most apps is just a few new, simple methods on the Properties object.
  • Integrated with the OpenGL-based effects only at this time to ease the migration - will be extended to other plugins in the next version or two.
Above is a plot of the curve described by the following property value.
0|=50; 50|=100; 100=200; 200~=60; -7:00~=180; -2:00~=100; -1=220
This shows that it is possible to combine a number of things in the same curve. It starts out with discrete keyframes (|), switches to a linear interpolated keyframe (=), and ends with a few smooth spline keyframes (~) set using timecode relative to the end/width (-).

Here are other highlights of the release:
  • Improved pause behavior when using buffered rendering in mlt_consumer.
  • Added mlt_color type.
  • Deprecated mlt_geometry API.
  • Support for the latest versions of FFmpeg and Libav (but dropping support for 0.5 and 0.6 versions).
  • Added alpha channel output to avformat consumer.
  • Added reconnect and exit_on_disconnect properties to avformat producer.
  • Added qglsl consumer to use opengl with avformat, sdi, and decklink.
  • Added avsync module with blipflash producer and consumer for testing.
  • Added new "count" producer to gtk2 module.
  • Changed frei0r to use index-based property names making it impervious to param name changes (param name still accepted for compatibility). 
  • Added default parameter values to frei0r metadata.
  • Added more python example web services.
  • Started a unit test suite.
(Mon, 03 Jun 2013 04:16:00 +0000)

Older News

Topic revision: r5 - 2011-10-07 - DanDennedy
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2015 by Meltytech, LLC.
TWiki Appliance - Powered by TurnKey Linux