MLT Multimedia Framework

 Kdenlive

Author, manage, and run multitrack audio/video compositions.

The engine of a non-linear video editor that can be used in all sorts of apps, not just desktop video editors.

MLT is an open source multimedia framework, designed and developed for television broadcasting. It provides a toolkit for broadcasters, video editors, media players, transcoders, web streamers and many more types of applications. The functionality of the system is provided via an assortment of ready to use tools, XML authoring components, and an extensible plug-in based API.

Download source code The easiest way to try out and learn MLT is by downloading Shotcut.

News Subscribe to RSS feed

version 0.9.2 released Sun, 29 Jun 2014 20:37:00 +0000
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.

Framework 


  • 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().

Modules

  • 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.

DEPRECATION WARNINGS

  • 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.

Post or view comments


New video stabilization and EBU R128 loudness filters Wed, 12 Feb 2014 04:18:00 +0000
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.

Post or view comments


v0.9.0 released with new property animation API Mon, 03 Jun 2013 04:16:00 +0000
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.

Post or view comments


MLT Adds GPU Image Processing Sat, 23 Feb 2013 07:17:00 +0000
OpenGL logo
For a few months, we have been working on a set of image processing filters and transitions that utilize the OpenGL Shader Language (GLSL) of your video card/chip. This means that not only are they very fast but also cross-platform and widely supported. GLSL is generally faster and better supported than OpenCL and NVIDIA CUDA because those technologies are rather new or vendor-specific and designed for more general purpose computing. The new filters are also high quality by using 16-bit linear floating point per color component. All of this means that you can apply more effects without a huge reduction in frame rate.

This work has now been merged into the master code branch and will be available in the next release. They have already been integrated into the Shotcut daily builds for all 3 major OS platforms! However, a caveat - there is not much to see there yet because Shotcut does not yet have filters. smile Nevertheless, it  has served as a feasibility exercise of the cross-platform integration. Meanwhile, one can open a clip, save as XML, edit the XML to put something like <filter mlt_service="movit.mirror"/> inside of the <producer></producer>, open the XML in Shotcut, and see the result. But first you will need to enable GPU Processing in the Settings menu.

What is currently available?

  • movit.blur
  • movit.convert (colorspace conversion)
  • movit.crop
  • movit.diffusion
  • movit.glow
  • movit.lift_gamma_gain (color correction)
  • movit.mirror
  • movit.opacity
  • movit.rect (position and scale)
  • movit.resample
  • movit.resize (pad)
  • movit.saturation
  • movit.sharpen
  • movit.vignette
  • movit.white_balance
  • movit.mix (transition)
  • movit.overlay (transition)
  • qglsl (a wrapper to multi consumer that uses Qt to abstract platform-specific OpenGL context)
More information can be found in the documentation section of the website.

    What still needs to be done?

    • A new threading model to improve concurrency between CPU and GPU
    • More work on qglsl to support more multi-consumer use cases
    • Keyframable parameters throughout

    Thanks

    We thank Christophe Thommeret for providing the proof-of-concept which provided many ideas about how to integrate something like this with MLT.
    We thank Steinar H. Gunderson for providing the new Movit library, which is an external dependency that provides all of the heavy lifting here.

    Post or view comments


    version 0.8.8 released Mon, 21 Jan 2013 06:03:00 +0000
    This is purely a bugfix/maintenance release. If you are using a very recent version of FFmpeg or libav that has  switched to using planar audio in its API you will need this.

    Post or view comments


    Older News

    Learn More

    Features

    Applications

    Documentation

    FAQ

    Online Support

    Build Tips & Scripts

    Source Code

    Project Management @ SourceForge.net. Fast, secure and Free Open Source software downloads
    (Bug Tracker, Patch Tracker, Mailing List)

    Roadmap

    Hall of Fame

    Google+

    Topic revision: r53 - 2014-06-28 - DanDennedy
     
    This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2014 by Meltytech, LLC.
    TWiki Appliance - Powered by TurnKey Linux