Friday, November 23, 2012

Video Tutorial Series by Kris Occhipinti (metalx)

Prolific screen-caster and video tutorial maker MetalX has started a series on video editing on the command line featuring melt.


In case you do not like the embed, here is a link to the YouTube playlist.

Wednesday, November 14, 2012

version 0.8.6 released

This is a bugfix and minor enhancement release.
  • Added playlist-next event and PlaylistNextListener to Ruby binding
  • FFmpeg 1.0 and libAV master compatibility
  • Improvements to motion_est filter to generate keyframes for apps
  • Added audiolevel (measurement) filter

Friday, October 26, 2012

DVEO (Linsys) SDI driver

If you are using MLT  with the DVEO (formerly Linsys) SDI or ASI cards on Linux, you should know that the drivers stopped building somewhere between kernel 3.0 and 3.2. The Open Broadcast Encoder project made some simple fixes available on their github repo.

Tuesday, August 28, 2012

version 0.8.2 released

This is a bugfix and minor enhancement release.
  • Overhaul of A/V sync with libavformat-based inputs.
  • Fix a major memory leak introduced in previous release.
  • Fixes to problems revealed by Coverity Scan static analysis.
  • Improved encoding presets.
  • melt can now be built without SDL with define MELT_NOSDL, which is handy for running it as a child process on Windows and OS X.
  • melt can now be signaled to quit, which also makes it more useful as a child process.
Special thanks to Mikko Rapeli who provided many of the Coverity fixes.

Tuesday, June 26, 2012

Shotcut now available!

Shotcut is a new application from the lead developer of MLT. It will eventually become a full video editor, but currently it is just a media player. The emphasis of the work thus far has been to develop a solid foundation - both code and project - upon which to build and iterate. To learn more, head on over to its website.

Friday, June 1, 2012

version 0.8.0 released

The minor version is increased due to the addition of time properties! The soname version increased in the process because some mlt_property functions changed; however, very few if any apps actually directly use mlt_property preferring to use mlt_properties instead. In addition:
  • improve seek speed on AVCHD when using FFmpeg v0.9.1+ (sorry, not Libav!)
  • composite and dissolve speed improvements on x86-64
  • improve performance of caching in image producers
  • add device enumeration to decklink producer and consumer

announcing Flowblade Movie Editor

Flowblade icon
Janne Liljeblad recently announced the availability of Flowblade - a new video editor using MLT that he has quietly been working on since 2009!

It is written in Python and GTK+ and is released under the GPLv3 license. Flowblade employs a "film style" or "insert editing" paradigm, maybe best known from Avid products. Therefore, its UI and workflow is quite a bit different than OpenShot.

You can see a screencast video of it in action on Vimeo:

Wednesday, April 25, 2012

server reorganization

Turnkey Linux Hub

The MLT web/wiki and git server has moved out of the garage and into the cloud to offer better uptime, responsiveness, and collaboration. Turnkey Linux has a TWiki appliance, so we moved the web site to its hub service, which provides cloud-computing for its appliance images. This greatly simplifies management partly because it has many things related to security and backup already setup.

github - social coding
Then, we had to decide what to do about the git daemon and gitweb service - whether to migrate that to the hub instance as well or whether to use a popular git hosting service. GitHub has really become a great collaboration service with code reviewing, pull requests, and issue tracking, giving it an edge over others. Not to mention, so many developers are already registered and ready to fork. So, effective immediately the authoritative git repositories are now at

Not done yet. A new contributor has setup an automated build server that uses the build scripts, which are now being maintained in git instead of the wiki. The build server is primarily for quality assurance purposes at this point, but there are plans to offer nightly builds of popular MLT applications from this service. We have a little more work to expose that properly.

Monday, April 2, 2012

time properties

Support for time values in properties just landed in git. This means properties like in, out, and length that used to take and provide frame counts now also support timecode and clock values. This makes manual authoring and reading XML easier. For example,

$ melt color: out=:5.0 -consumer xml no_meta=1 time_format=smpte
returns the following XML that can also be parsed:
<mlt LC_NUMERIC="en_US.UTF-8" version="0.7.9" title="color:">
  <profile description="DV/DVD PAL" width="720" height="576" progressive="0" sample_aspect_num="16" sample_aspect_den="15" display_aspect_num="4" display_aspect_den="3" frame_rate_num="25" frame_rate_den="1" colorspace="601"/>
  <producer id="producer0" in="00:00:00:00" out="00:00:05:00">
    <property name="mlt_type">producer</property>
    <property name="length">00:10:00:00</property>
    <property name="eof">pause</property>
    <property name="resource"></property>
    <property name="aspect_ratio">1.066667</property>
    <property name="mlt_service">color</property>
  <playlist id="playlist0">
    <entry producer="producer0" in="00:00:00:00" out="00:00:05:00"/>
  <tractor id="tractor0" title="color:" global_feed="1" in="00:00:00:00" out="00:00:05:00">
    <track producer="playlist0"/>

Hour, minute, and second components are optional, but there must be at least one colon for a string value to be interpreted as time. If the last component contains a radix, then it is interpreted as a clock value instead of a SMPTE timecode. That means, in the above, ":5.0" means 5 seconds, which for 25 frames per seconds, yields a timecode of 00:00:05:00, which could be abbreviated as 5:00 or even 5:. Of course, the numeric locale is supported for period or comma as radix, as needed.

This is exposed through the Mlt::Properties API as well for applications. Variants of other functions that deal with time are slowly being added, but Mlt::Producer::get_length_time() was already added. User interfaces often need to show and accept time values, and this makes it easier to support that in your MLT application.

Lastly, another benefit, is that one can use the clock values in XML, and they will automatically adapt to changes in the profile framerate. Of course, you may lose frame accuracy if you do change the framerate, but that may not matter for some use cases.

Monday, February 13, 2012

version 0.7.8 released

Not much to say about this release. It mostly consists of bug fixes, but here is a short list of enhancements:
  • Added a "multi" consumer - multiple, simultaneous outputs 
  • Added framerate adaption to "consumer" producer and "multi" consumer 
  • Can now use YADIF deinterlacer with decklink producer 
  • Added "rtaudio" consumer for native audio support on multiple platforms 
  • Added ability to request image format closest to source (mlt_image_none) 
  • Added more audio formats 
  • Added vqm (video quality measurement) transition