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.34.0 released

Nov 3, 2025

You can download it from GitHub.

This versions adds 10-bit video processing on the CPU, but you must ensure you are using compatible filters and transitions.

Framework

  • Added mlt_image_rgba64 format. This change touched core, avformat, and qt modules as well.
  • Added mlt_color_trc, mlt_color_primaries, and more mlt_colorspaces along with functions:
    • mlt_image_color_trc_name
    • mlt_image_color_trc_id
    • mlt_image_colorspace_name
    • mlt_image_colorspace_id
    • mlt_image_color_pri_name
    • mlt_image_color_pri_id
  • Fixed some minor memory leaks with cppcheck.

Modules

  • Added rgba and rgba64 formats to the luma transition.
  • Added rgba64 format to affine filter and transition.
  • Added rgba64 format to the qtblend transition.
  • Added support for FFmpeg 8 to the avformat module.
  • Fixed audio panner filter for 5.1 channel layout.
  • Fixed converting 10-bit full to limited range in avformat producer (regression in v7.30.0).
  • Fixed shadow not working for multi-line template titles in kdenlivetitle producer.
  • Fixed mask_apply filter with custom transition.
  • Added input_chmask & output_chmask properties to mono filter.
  • Added channel_mask property to LADSPA/LV2/VST2 filters.
  • Added channel_mask to the volume filter.
  • Added an outline video filter.
  • Fixed a deadlock on image with a % in the name in qimage producer.
  • Added scrubbing to the decklink consumer.
  • Fixed & not decoded to & in the xml producer.
  • Fixed converting BT.709 to BT.2020 in the avformat module.
  • Fixed building a ladspa module without JACK as dependency.
  • Deprecate a JACK Rack XML file in the jackrack and ladspa modules.
  • Added filter qtblend_mode.
  • Fixed incorrect alpha channel breaking optimization of qtblend.
  • Fixed pixel format gbrap (Ut Video with alpha channel) in the avformat producer.
  • Fixed opencv_tracker filter on cut playlist clips.
  • Fixed warning about missing color range for avfilters that use it (e.g. avfilter.colorspace).
  • Added typewriter properties to the qtext filter.
  • Fixed color distortion or a crash if using hwaccel with orientation rotation in avformat producer.

Other

  • Enable Qt 6 and disable Qt 5 modules in CMake by default.
  • Disable the SDL1 module in CMake by default.
  • Changed melt now exits with 1 if the producer is invalid.
  • Various changes to work with MSVC compiler.
  • Changed SVT-AV1 encode presets to VBR for Opus audio.
  • Fixed initializing Qt on the main thread in melt.
  • Documented the -progress2 option for melt.
  • Increased the minimum C++ version to C++20.
  • Converted many modules to use CMake find_package().
  • Added libgen.c and libgen.h for MSVC.

v7.32.0 released

May 7, 2025

You can download it from GitHub.

Framework

  • Added mlt_service_set_consumer() and `Mlt::Service::set_consumer().
  • Optimized mlt_multitrack to not request a frame from a producer that is both hidden and muted.

Modules

  • Fixed pixel format for VP8/VP9 streams in avformat producer.
  • Fixed yuva422p pixel format in avformat producer.
  • Added MLT_AVFORMAT_HWACCEL & MLT_AVFORMAT_HWACCEL_DEVICE environment variables to avformat producer.
  • Updated decklink module for recent hardware and drivers.
  • Added colorspace and color_trc (including HDR) properties to the decklink consumer.
  • Fixed silencing extra audio channel (e.g. 6 => 8) in decklink consumer.
  • Fixed 5.1 C/LFE channels swapped over HDMI in decklink consumer.
  • Fixed text outline had sharp angles in kdenlivetitle producer.
  • Fixed default gamma to be Rec. 709 for 10-bit Y’CbCr from movit module.
  • Added support for HLG gamma to movit module (requires ddennedy/movit fork).
  • Fixed opencv_tracker filter should require multiple keyframes to be ready.
  • Fixed OpenCV crash on rect <= 1 pixel in opencv_tracker filter.
  • Fixed aspect ratio in qtblend filter and transition.
  • Fixed QT_QPA_PLATFORM=offscreen not working in qt and glaxnimate modules.
  • Improved preview scaling in qtblend filter.
  • Fixed requesting huge images on multiple qtblend filters or transitions.
  • Fixed sdl2 consumer on macOS.
  • Fixed the strobe filter not working with movit.
  • Fixed color and gamma using timeremap link with movit.
  • Fixed consumer properties (e.g. channels) missing on qglsl consumer injected by the xml producer.

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.

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