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

v7.20.0 released

Oct 1, 2023

You can download it from GitHub.

Framework

  • Fixed “blank” in a playlist does not have audio normalization filters.
  • Fixed serializing mlt_color transparent black as “#00000000” when the property was set using an integer or mlt_color.
  • Fixed mlt_chain_set_source() would always fetch a frame from the producer even if it has “meta.media.frame_rate_num” and “meta.media.frame_rate_den” properties making things slow.
  • Fixed Mlt::Chain leaking memory.

Modules

  • Added a blank producer to the core module.
  • Added keywords to gpstext filter:
    • #gps_cadence#
    • #gps_grade_degrees#
    • #gps_grade_percentage#
    • #gps_temperature#
  • Added some color_styles to the gpsgraphic filter:
    • 10 = color by speed (max 100 km/h)
    • 11 = color by grade (max 90 degrees)
    • 12 = color by grade (max 20 degrees)
  • Added more unit formats to legend_unit property of gpsgraphic filter:
    • mmin or m/min
    • ftmin or ft/min
  • Added keywords to dynamictext filter:
    • #basename#
    • #filename#
  • Fixed installing filter_audioseam.yml.
  • Added an avlink link to the avformat module for FFmpeg filters that can benefit from future frames such as adeclick.
  • Added the preserve_alpha property to the box_blur filter.
  • Fixed loading service metadata for the qt6 and glaxnimate-qt6 modules.
  • Fixed a crash when changing the rotate property in avformat producer with interlace video.
  • Add astream and vstream properties to avformat producer. Unlike audio_index and video_index are absolute indices across the entire array of streams regardless their type, these new 0-based properties are relative to the type audio or video. For example, astream=1 is the second audio stream.
  • Fixed a possible crash in the avformat producer’s mlt_producer_probe virtual function.
  • Updated the glaxnimate module to version 0.5.4.
  • Fixed the sdl2 consumer crashing with the Linux radeonsi_dri driver and showing only all black with the Linux nvidia driver.

Other

  • Fix compiling on Android (not supported by the core developers).
  • Changed the avformat consumer FLAC preset to use the flac format.
  • Fixed the melt Shift+H and Shift+L keyboard shortcuts when the SDL2 window has focus.

v7.18.0 released

Jul 28, 2023

You can download it from GitHub.

Framework

  • Added mlt_audio_free_data().
  • Added meta.playlist.clip_position and meta.playlist.clip_length properties to mlt_playlist.
  • Fixed mlt_frame_get_audio fails on mlt_audio_none.

Modules

  • Added two audio filters to core module to be used on a playlist/track:
    • audioseam
    • autofade
  • Fixed a crash in vidstab filter on image format change.
  • Fixed font weight in qtext filter on Qt 6.
  • Fixed yuv420p not working in rescale filter.
  • Fixed text shadow outline in kdenlivetitle producer.
  • Fixed crash when changing the profile with count producer.
  • Fixed constructor corruption in frei0r module.
  • Fixed deinterlace link was added to invalid producer in xml producer.
  • Fixed producers not indicating progressive scan video:
    • kdenlivetitle
    • pango
    • qimage
    • qtext
  • Fixed video scan mode detection in avformat producers that only indicate on their container format and not on frames such as Ut Video in Matroska.
  • Fixed very large images in qimage producer on Qt 6.
  • Fixed seeking on clips that use speed_map in timeremap link.
  • Fixed a color level problem with sRGB inputs in the movit module.
  • Fixed avformat producer’s deallocation function for AVCodecContext.
  • Fixed field order of qtblend and frei0r.cairoblend transitions.
  • Changed the avformat producer seek_threshold default to 64.
  • Updated ebur128 filter to version 1.2.6.

v7.16.0 released

May 7, 2023

You can download it from GitHub.

Framework

  • Added a chain_normalizers.ini to the data directory.
  • Added New C functions to support deinterlacer links:
    • mlt_deinterlacer_name()
    • mlt_deinterlacer_id()
    • mlt_link_filter_init()
    • mlt_link_filter_metadata()
    • mlt_cache_put_frame_audio()
    • mlt_cache_put_frame_image()
    • mlt_frame_clone_audio()
    • mlt_frame_clone_image()
  • Added support for loading a filter as a link via mlt_link_filter_init().
  • Added enum mlt_deinterlacer with:
    • mlt_deinterlacer_none
    • mlt_deinterlacer_onefield
    • mlt_deinterlacer_linearblend
    • mlt_deinterlacer_weave
    • mlt_deinterlacer_bob
    • mlt_deinterlacer_greedy
    • mlt_deinterlacer_yadif_nospatial
    • mlt_deinterlacer_yadif
    • mlt_deinterlacer_bwdif
    • mlt_deinterlacer_estdif
    • mlt_deinterlacer_invalid
  • Added new 10-bit YUV members to enum mlt_image_format:
    • mlt_image_yuv420p10
    • mlt_image_yuv444p10
  • Fixed a deadlock and improved quality of start of playback when mlt_consumer property prefill is greater than 1.
  • Fixed a couple of data races in mlt_events and mlt_consumer.
  • Fixed a crash in mlt_frame_clone() with movit and the mask_start filter.

Modules

  • Fixed regressions in version 7.14.0:
    • memory and thread count usage in swresample and resample links
    • automatic profile support in melt
    • crash in count producer
  • Upgraded the glaxnimate git submodule to version 0.5.3.
  • Added avformat/avdeinterlace (default) and xine/deinterlace links.
  • Fixed deinterlacing in the multi and qglsl consumers.
  • Added 10-bit video support to movit.convert filter.
  • Several things in the avformat producer:
    • Fixed artifacts decoding raw FLAC audio.
    • Fixed a potential crash on mlt_producer_probe().
    • Fixed seeking on music with album art.
    • Fixed possible infinite loop on end-of-file.
    • Fixed a potential deadlock.
    • Fixed chroma bleeding on interlaced yuv420p.
    • Fixed color_range or force_full_range sometimes not working.
    • Fixed autorotate property not working with a chain.
    • Added audio caching.
    • Deprecated the mute_on_pause property.
  • Fixed FFmpeg version 6 compilation error.
  • Fixed rendering the text outline in kdenlivetitle producer.
  • Fixed 'movit.rect property animation.
  • Fixed corrupt video in crop filter when mlt_image_yuv420p requested.
  • Fixed possible null pointer crashes in some audio filters:
    • audiolevel
    • volume
    • loudness
  • Fixed a possible roi assert crash in opencv.tracker filter.
  • Added support for “Nano” algo to the opencv.tracker filter.
  • Added the property fix_background_alpha to the luma transition.

Other

  • Added -query links to melt command line.
  • Added avformat consumer presets for 10-bit video:
    • AV1
    • DNxHR-HQ
    • FFV1
    • ProRes 422
    • ProRes 444
    • ProRes HQ
    • x264-high10
    • x265-main10
  • Added a clang-format target to CMake and reformatted all code.
  • Added warnings as errors with some exceptions to CMake with Debug build type and gcc.
  • Fixed numerous warnings throughout the code.

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-2018 by Meltytech, LLC.

Social Links