MLT Multimedia Framework

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.

Recent News

v7.30.0 released

Jan 19, 2025

You can download it from GitHub.

Framework

  • Fixed Mlt::Producer::set_creation_time() not exported on i686.
  • Fixed Mlt::Properties::set(int64_t) symbol version.
  • Fixed mlt_factory_init() on Linux/BSD may fail to initialize when compiled with -DRELOCATABLE.
  • Added generic non-drop-frame timecode in mlt_property.c. Previously, it was only done for 30000/1001 and 60000/1001 frame rates, but 24000/1001 is especially important as well.
  • Added support for MLT XML embedded in chains. This, along with xml-clip producer handles mismatching frame rate between parent and child producers and facilites time-affecting links on the child.
  • Added mlt_image_full_range(const char *color_range) where any of the following strings return true (1): full, jpeg, pc.

Modules

  • Added xml-clip producer.
  • Fixed link in and out properties arenot serialized in the xml consumer.
  • Added hslprimaries and hslrange filters to the plus module.
  • Added a gradientmap filter to the plus module.
  • Fixed avfilter audio filters with FFmpeg 7.
  • Fixed incorrect frame rate for AVCHD (and possibly others) in avformat.
  • Fixed window_id property in consumer sdl2 by using SDL_CreateWindowFrom(), especially important for embedding in GTK+ or Qt.
  • Fixed text not rendering in transition vqm since Qt 6.
  • Added decimals keyword to gpstext filter and move RAW keyword check.
  • Fixed time_offset property handling in gpstext filter.
  • Fixed reading and writing SRT files with unicode in the path.
  • Fixed subtitle_feed filter on producers with an in point > 0.
  • Fixed opaque alpha channels become translucent in luma transition.
  • Fixed a crash in the mix transition with consumer producer.
  • Fixed freeze filter freezing too much.
  • Fixed avfilter.fillborders with preview scaling.
  • Fixed non-proportional scaling in qtblend transition and filter.
  • Fixed avfilter color distortion with mlt_image_rgb and mlt_image_rgba.
  • Extended support for colorspace=2020 consumer property and the BT.2020 colorspace in the avformat producer and consumer. This does not imply HDR, which is signaled through a color_trc property.
  • Added support for mlt_image_yuv420p10, mlt_image_yuv444p10, and mlt_image_yuv422p16 in avfilter, swscale, and rescale filters. This facilitates using these pixel formats end-to-end when using only FFmpeg producers, certain avfilters, and avformat consumer. This means it is possible to do 10-bit end-to-end on the CPU when being careful to select compatible components and options to avoid conversions. One can pass-through HDR; however, you must set the color_trc and pix_fmt properties on the avformat consumer (see ffmpeg -h full for these values). The avformat consumer automatically converts MLT colorspace (integer value) to FFmpeg’s colorspace and color_primaries (unless explicit) options.

Other

  • Cleaned up the examples in src/swig.
  • Changed the x264-medium preset to a higher quality.

v7.28.0 released

Sep 12, 2024

You can download it from GitHub.

This fixes a couple of major regressions in the previous version 7.26.0:

  • Fixed seeking and frozen video due by reverting “Improved performance with intra-only video and reducing the frame rate.”
  • Fixed using melt to render MLT XML with OpenGL effects from movit.

Other fixes and changes:

  • Deprecated the composite transition and the sdl and ndi modules.
  • Fixed Android camera video has the wrong frame rate (broken in v7.26.0).
  • Fixed audio not playing for audio-only DTS WMA.
  • Fixed using “https:” URLs in the xml producer.
  • Fixed crash on exit when running melt -query or melt -query links.
  • Added a transition property to the watermark filter. Now, it defaults to using affine.
  • Changed affine transition argument to set rect property if supplied.

v7.26.0 released

Aug 25, 2024

You can download it from GitHub.

This release adds support for subtitles and LV2 & VST2 audio plugins.

Framework

  • Fixed a double-free crash in Mlt::Service::profile().

Modules

  • Fixes and improvements to the avformat producer:
    • Changed to prefer r_frame_rate over avg_frame_rate.
    • Fixed lowres if set too high.
    • Fixed audio_index=all.
    • Fixed variable_frame_rate incorrectly set true on 59.94 fps in Matroska.
    • Improved performance with intra-only video and reducing the frame rate.
    • Fixed mono audio handling regression on FFmpeg 7.
    • Fixed audio samples may be dropped unexpectly esp. with uncompressed.
  • Fixed movit transitions with a non-movit filter on one of its inputs.
  • Fixed duration in the glaxnimate producer off by one frame.
  • Added dropshadow filter to the qt module.
  • Fixed resetting animation in kdenlivetitle producer.
  • Added support for LV2 and VST2 plugins in the jackrack module.
  • Fixed crash using av.declick audio filter on FFmpeg 7.
  • Added subtitle filter and producer and subtitle_feed filter to the plus module.
  • Added subtitle encoding to the avformat consumer (new properties beginning with “subtitle.”).
  • Fixed alang in the the avformat consumer.
  • Added #gps_power keyword to the gpstext filter.
  • Fixed tab handling in the kdenlivetitle producer.

Other

  • Added 8- and 10-bit encode presets for SVT-AV1.
  • Fixed building on OpenBSD.
  • Fixed building on musl libc.
  • Fixed consumer properties not updating the automatic profile on the melt command line.
  • Added -loglevel command line option to melt.

v7.24.0 released

Apr 27, 2024

You can download it from GitHub.

The highlight of this release is support for FFmpeg 7 and Ambsonic audio.

Framework

  • Fixed a small memory leak in mlt_repository.
  • Fixed a small memory leak in MltPushConsumer C++ class.
  • Block connecting a null producer to a service.
  • Include locale.h on any GNU libc platform.

Modules

  • Added a new spatialaudio module with filters:
    • ambisonic-decoder
    • ambisonic-encoder
  • Fixed building with FFmpeg 7.
  • Fixed text keywords do not work with non-ASCII filenames on Windows:
    • pixbuf producer
    • opencv_tracker filter
    • dynamictext filter
    • qimage producer
  • Added “meta.media.aspect_ratio” property to the avformat producer.
  • Fixed distort property not working in movit.rect filter.
  • Fixed frames dropping or repeating in the multi consumer.
  • Fixed the dynamic_loudness filter maximizing audio gain.
  • Fixed distortion in the mono filter.
  • Also check for WAYLAND_DISPLAY to detect a graphical session in the qt and glaxnimate modules.
  • Fixed the wave filter distorts if wave = 1 with preview scaling.
  • Added the read-only meta.media.%u.codec.layout property to avformat producer.
  • Set the channel_layout property on the frame for the noise and tone audio producers.
  • Fixed outline maximum for the text and dynamictext filters.

Other

  • Fixed crash when using -chain from melt.
  • Fixed a small memory leak on Windows fopen().

v7.22.0 released

Nov 28, 2023

You can download it from GitHub.

The highlight of this release is support animation easing functions via new keyframe types. Also, new versions of the smooth keyframe type is added that avoids overshoots and cusps.

Framework

  • Added new functions:
    • mlt_property_is_color()
    • mlt_property_is_numeric()
    • mlt_property_is_rect()
  • Many new keyframe types:
    • mlt_keyframe_smooth_loose - ~= (same as old mlt_keyframe_smooth - Unity Catmull-Rom spline)
    • mlt_keyframe_smooth_natural - $= (Centripetal Catmull-Rom spline with natural slope)
    • mlt_keyframe_smooth_tight - -= (Centripetal Catmull-Rom spline with 0 slope)
    • mlt_keyframe_sinusoidal_in - a=
    • mlt_keyframe_sinusoidal_out - b=
    • mlt_keyframe_sinusoidal_in_out - c=
    • mlt_keyframe_quadratic_in - d=
    • mlt_keyframe_quadratic_out - e=
    • mlt_keyframe_quadratic_in_out - f=
    • mlt_keyframe_cubic_in - g=
    • mlt_keyframe_cubic_out - h=
    • mlt_keyframe_cubic_in_out - i=
    • mlt_keyframe_quartic_in - j=
    • mlt_keyframe_quartic_out - k=
    • mlt_keyframe_quartic_in_out - l=
    • mlt_keyframe_quintic_in - m=
    • mlt_keyframe_quintic_out - n=
    • mlt_keyframe_quintic_in_out - o=
    • mlt_keyframe_exponential_in - p=
    • mlt_keyframe_exponential_out - q=
    • mlt_keyframe_exponential_in_out - r=
    • mlt_keyframe_circular_in - s=
    • mlt_keyframe_circular_out - t=
    • mlt_keyframe_circular_in_out - u=
    • mlt_keyframe_back_in - v=
    • mlt_keyframe_back_out - w=
    • mlt_keyframe_back_in_out - x=
    • mlt_keyframe_elastic_in - y=
    • mlt_keyframe_elastic_out - z=
    • mlt_keyframe_elastic_in_out - A=
    • mlt_keyframe_bounce_in - B=
    • mlt_keyframe_bounce_out - C=
    • mlt_keyframe_bounce_in_out - D=
  • Fixed missing support for mlt_service_transition in Mlt::Producer() C++ constructor.

Modules

  • Fixed rotoscoping filter crash on image with height = 0.
  • Fixed crashed due to qtblend transition requesting an image of 0 width or height.
  • Added support for RtAudio 6 in the rtaudio consumer.
  • Fixed createdate keyword deletes preceeding text in dynamictext filter.
  • Added opacity property to filters that use qtext:
    • dynamictext
    • gpstext
    • qtext
    • timer
  • Added fade_video, fade_audio, and fade_color properties to autofade filter.
  • Added backwards compatibility for changed filter names in frei0r v2.3.1:
    • frei0r.measure_pr0be
    • frei0r.measure_pr0file
    • frei0r.tehroxx0r
    • frei0r.alpha0ps_alpha0ps
    • frei0r.alpha0ps_alphagrad
    • frei0r.alpha0ps_alphaspot
    • frei0r.denoise_hqdn3d
  • Fixed a memory leak in avformat producer with consumer deinterlacer=yadif.
  • Fixed qimage producer color if consumer color_range=pc pix_fmt=yuv444p.

Other

  • Fixed ten_bit/ProRes 422 avformat preset produced ProRes 444.
  • Fixed YouTube avformat preset did not output high profile with some hardware encoders.

Search

Featured Apps

Flowblade

Kdenlive

Shotcut

Subscribe

Subscribe to Newsvia RSS.

About

MLT enables you to author, manage, and run multitrack audio/video compositions.
See our Hall of Fame
Copyright © 2008-2025 by Meltytech, LLC.

Social Links