MLT - Home
NEWS
FEATURES
DOCUMENTATION
FAQ
SUPPORT
PROJECTS
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.38.0 released
Apr 22, 2026
You can
download it from GitHub
The highlights of this version are basic, minimal support for OpenFX plugins and hardware
scaling for preview scaling with hwaccel decoding.
Framework
Added dynamic hash table for
mlt_properties
for better performance.
Fixed memory corruption in
mlt_pool
Added warning on file open failure when parsing in
mlt_properties
Modules
Added
basic
support for
OpenFX
filter
plugins.
OpenFX has many features. This is a summary of what is NOT yet included:
GPU rendering
exotic parameter types: Integer2D, Integer3D, Double3D, Custom, Bytes, Page, PushButton
plugin-driven keyframe animation; but MLT-driven does work
tile-, slice-, or frame-based multi-threading (only plugin internal threading)
multi-resolution
temporal clip access
overlays & dialogs
timeline queries (e.g.
getTime()
generator, transition, retimer
parametric curves
Added
hwaccel_scale
filter with preview scaling (scale_vaapi, scale_vulkan, scale_d3d11, scale_vt (macOS)).
Added an environment variable
MLT_AVFORMAT_HWACCEL_PPS
to provide a
limiter to hwaccel because transfering uncompressed video between memory
CPU and GPU memory is heavy.
PPS = maximum pixels per second. Anything over it skips hwaccel.
Added
lut
parameter to
avformat
producer.
Added
attached_pic
property to
avformat
consumer.
Added
movit.overlay_blend
video filter.
Added
compositing
property to
movit.overlay
transition.
Added constant-power crossfade to
mix
audio transition.
Added rounded corner support for
rect
in
kdenlivetitle
Added typewriter properties to
subtitle
filter.
Added underline and strikethrough to the
text
and
qtext
filters.
Changed
qtext
style
property to support family named styles.
Added anchor point support for arbitrary rotations in
qtblend
Allow relative paths for images in
kdenlivetitle
Updated Glaxnimate module to version 0.6.0.
Switched to
QImage
scaling when downscaling in
qtblend
Deprecated
obscure
and
watermark
filters.
Install the jackrack module’s blacklist files.
Fixed subtitle stream type metadata.
Fixed mutex initialization in
avformat
no-validate mode.
Fixed crash when using
linearblend
deinterlacer.
Fixed black bar with HEVC hwaccel decode and scale on Windows.
Fixed crash with hardware scaler and interlaced video.
Fixed converting 8-bit full to limited range with hwaccel.
Fixed alpha in 12-bit ProRes with alpha.
Fixed
movit
linear color not matching CPU filters.
Fixed
multi
consumer making extra linear color conversions.
Fixed regression writing raw FLAC.
Fixed
qtblend
filter returning unexpectedly large frames.
Fixed
qtext
outline encroaching on fill color.
Fixed wrong last+ frame when
eof=loop
in Glaxnimate.
Fixed
brightness
filter on track below a clip with transparency.
Other
Fixed crash during exit cleanup in
melt
Continued build improvements for MSVC.
A lot of metadata fixes and improvements.
Many fixes to API documentation.
Added C++ and Python to the API docs.
Added two 10-bit VP9 encoding presets.
v7.36.0 released
Dec 29, 2025
You can
download it from GitHub
This version adds image processing in linear color on the CPU (previously only Movit).
Plus, it extends 10-bit video processing on the CPU to many more services.
Framework
Added
mlt_image_default_colorspace()
Added
mlt_image_default_trc()
Added
mlt_image_default_primaries()
Added
mlt_color_convert_trc()
Added the
mlt_consumer
property
mlt_color_trc
to drive a new
color_transform
normalizer filter. This sets the color transfer
function to use for image/video effects. It is beneficial and
correct to use linear color for any pixel mixing whether for blending
or interpolation.
Removed
atexit(mlt_factory_close)
in
mlt_factory_init()
. Close the
factory yourself if you feel the need to (not generally needed when
exiting a process).
Prevent possible crash in
mlt_service_connect_producer()
Added
mlt_profile_is_valid()
and
Mlt::Profile::is_valid()
Fixed crash on invalid profile (CVE-2025-65834) in:
mlt_consumer_start()
mlt_factory_producer()
xml
producer
Modules
Drop support for Qt 5.
Fixed bad color in
luma
transition’s dissolve (regression in v7.34.0).
Fixed HLG HDR broken in
decklink
consumer (regression in v7.34.0).
Fixed warnings when flushing audio in the
avformat
consumer.
Added support for
hwaccel=vulkan
to the
avformat
producer.
Added a
color_transform
normalizer filter to the core module to convert
all image/video producers to and from linear color. It is abstract in the
core module and drives the following filters:
avfilter.zscale
sws_colortransform
avfilter.scale
Added filter
sws_colortransform
that is more efficient than
avfilter.swscale
but requires FFmpeg 8.
Changed the default property values of the
null
consumer:
real_time
: -1
terminate_on_pause
: 1
Changed the
luma
and
movit.luma
transitions to progress linearly with
linear
color_trc
Fixed the alpha channel dropped by the
xml-clip
producer.
Added
mlt_image_rgba64
format to:
avcolor_space
filter
avdeinterlace
filter
affine
filter and transition
audiolevelgraph
filter
audiospectrum
filter
audiowaveform
filter
autofade
filter
avformat
producer and consumers
box_blur
filter
brightness
filter
pillar_echo
filter
color
producer
dropshadow
filter
dynamictext
filter (when used with
qtext
frei0r.alpha0ps
filter
frei0r.alphagrad
filter
frei0r.alphaspot
filter
frei0r.bluescreen0r
filter
frei0r.select0r
filter
frei0r.transparency
filter
gpsgraphic
filter
gpstext
filter
gradientmap
filter
hslprimaries
filter
hslrange
filter
kdenlivetitle
producer
lift_gamma_gain
filter
lightshow
filter
mask_apply
(when used with
qtblend
movit.convert
filter
outline
filter
qtblend
filter and transition
qtcrop
filter
qtext
producer
shape
filter
spot_remover
filter
strobe
filter
subtitle
filter (when used with
qtext
swscale
filter
text
filter (when used with
qtext
timeremap
link
timer
filter (when used with
qtext
vqm
transition
Changed the
mask_apply
filter default transition to
qtblend
Removed the maximum for the
alpha
property on the
brightness
filter
so that you can
increase
the opacity of an existing alpha channel.
Fixed background image scaling in the
gpsgraphic
filter.
Fix audio artifacts with pcm_s24le in mkv in
avformat
producer.
Other
Removed bitrate and quality limits in the vp9 and webm
avformat
presets.
Fixed melt on Windows not reading file path/name with extended characters
(regression in v7.34.0).
Fixed building the ruby bindings with Ruby 3.0.
More fixes for MSVC.
Removed
win32/strptime.c
and replaced with Qt functions.
Stop showing
melt
usage on error exit.
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_colorspace
s 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
avfilter
s 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.
Featured Apps
Flowblade
Kdenlive
Shotcut
Subscribe to News
via RSS
About
MLT enables you to author, manage, and run multitrack audio/video compositions. Copyright © 2008-2026 by
Meltytech, LLC.
Social Links
US